Mybatis學習日記-萬能Map
阿新 • • 發佈:2022-03-03
CRUD-萬能的Map--實現使用部分的屬性完成想要的結果
dao層的編寫:
1 package com.fu.dao; 2 3 import com.fu.pojo.User; 4 5 import java.util.List; 6 import java.util.Map; 7 8 public interface UserMapper { 9 10 //查詢所有的使用者 11 public List<User> getUserList(Map map); 12 }
dao層對應的xml編寫:
<?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.fu.dao.UserMapper"> <sql id="if-id"> <if test="id!=null"> id=#{id} </if> </sql> <select id="getUserList" resultType="user" parameterType="map"> select* from user <where> <include refid="if-id"></include> </where> </select> </mapper>
實體類pojo層:
package com.fu.pojo; import org.apache.ibatis.type.Alias; @Alias("user") public class User { private int id; private String name;private String password; public User(int id, String name, String password) { this.id = id; this.name = name; this.password = password; } public User() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } }
測試類的編寫:
package com.fu.pojo; import com.fu.dao.UserMapper; import com.fu.utils.MybatisUtils; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.HashMap; import java.util.List; public class UserMapperTest { @Test public void getUserListTest(){ //獲取SqlSession物件 SqlSession sqlSession = MybatisUtils.getSqlSession(); //獲取mapper UserMapper mapper = sqlSession.getMapper(UserMapper.class); HashMap<String, Object> map = new HashMap<>(); map.put("id",1); List<User> userList = mapper.getUserList(map); for (User user : userList) { System.out.println(user); } //關閉sqlSession物件,注意增,刪,改需要提交事務 sqlSession.close(); } }
公共類的編寫:
package com.fu.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } //對外提供一個獲取sqlSession的方法 public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(); } }