先來簡單回顧一下以前的準備步驟:java
數據庫
,並加入數據Maven
項目依賴
Pojo
類和Dao
類Mybatis
工具類mybatis.xml
完成以上步驟以後,就能夠進行測試了。git
具體能夠查看本博客文章:Mybatis-01
sql
查詢
操做數據庫
public interface UserDao { //經過id查user public List<user> getUserByID(int id); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <select id="getUserByID" resultType="pojo.user" parameterType="int"> select * from mybatis.user where id=#{id} </select> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession對象 SqlSession sqlSession = mybatis_util.getSqlSession(); //執行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); List<user> userList = mapper.getUserByID(1); //查詢id=1的user for (user user : userList) { System.out.println(user); } //關閉SqlSession sqlSession.close(); } }
查看id=1
的user:mybatis
插入
操做app
public interface UserDao { public int insertuser(user user); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <insert id="insertuser" parameterType="pojo.user"> insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd}) </insert> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession對象 SqlSession sqlSession = mybatis_util.getSqlSession(); //執行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); user user1 = new user(4, "李", "1456"); int i = mapper.insertuser(user1); System.out.println(i); sqlSession.commit(); //不一樣於查詢 增刪改都須要提交事務 List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //關閉SqlSession sqlSession.close(); } }
建立一個新user
,id:一、name:李、pwd:1456,經過sql操做,加入數據庫。工具
i
輸出1
,說明成功。測試
最後輸出所有,查看數據庫中所有user
。ui
public interface UserDao { public int deluser(int id); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <delete id="deluser" parameterType="int"> delete from mybatis.user where id = #{id} </delete> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession對象 SqlSession sqlSession = mybatis_util.getSqlSession(); //執行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); int i = mapper.deluser(2); System.out.println(i); sqlSession.commit(); //不一樣於查詢 增刪改都須要提交事務 List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //關閉SqlSession sqlSession.close(); } }
刪除id=2
的user。spa
i
輸出1
,說明成功。
最後輸出所有,查看數據庫中所有user
。
public interface UserDao { public int updateuser(user user); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <update id="updateuser" parameterType="pojo.user"> update mybatis.user set name = #{name},pwd=#{pwd} where id = #{id} </update> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession對象 SqlSession sqlSession = mybatis_util.getSqlSession(); //執行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); user user1 = new user(4, "李1", "145600"); int i = mapper.updateuser(user1); System.out.println(i); sqlSession.commit(); List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //關閉SqlSession sqlSession.close(); } }
更新id=4
的user。
i
輸出1
,說明成功。
最後輸出所有,查看數據庫中所有user
。
標籤
不要匹配錯誤,對應的id
、parameterType
、resultType
不能夠錯誤mybatis配置文件
必定要綁定mapper
符合規範
手動加入
資源文件
未打開,配置文件中加入<build></build>
內容實體類,或者數據庫中的表,字段或者參數過多,咱們應當考慮使用Map
即:parameterType="map"
insert
操做進行舉例:
public interface UserDao { public int insertuser(Map<String,Object> map); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.Dao.UserDao"> <insert id="insertuser" parameterType="map"> insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd}) </insert> </mapper>
public class Test { @org.junit.Test public void test(){ //第一步:得到SqlSession對象 SqlSession sqlSession = mybatis_util.getSqlSession(); //執行SQL UserDao mapper = sqlSession.getMapper(UserDao.class); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("id",5); map.put("name","map"); map.put("pwd","1111"); int i = mapper.insertuser(map); System.out.println(i); sqlSession.commit(); List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } //關閉SqlSession sqlSession.close(); } }
建立一個Map
,在其中加入對應的數據
,經過sql操做,加入數據庫。
i
輸出1
,說明成功。
最後輸出所有,查看數據庫中所有user
。
在此,不進行具體操做,再次舉例兩中方式:
該功能只是更改sql語句
,並在傳值時加入%
便可。
sql語句:
<select id="getUserByID" resultType="pojo.user" parameterType="string"> select * from mybatis.user where name like #{name} </select>
Test類:
List<user> userList = mapper.getUserByName("%張%");
該功能只是更改sql語句
,在語句中加入%
,並正常傳值時便可。
sql語句:
<select id="getUserByID" resultType="pojo.user" parameterType="string"> select * from mybatis.user where name like "%"#{name}"%" </select>
Test類:
List<user> userList = mapper.getUserByName("張");
上述兩種操做,均可以查出對姓名中含有張
的進行查詢。
%
的不一樣含義:
abc結尾
的全部字符串;abc 開頭
的全部字符串;全部包含abc
的字符串;