Mybatis学习日记-万能Map
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 ListgetUserList(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">
<--namespace为对应的接口名字,id为接口的方法名,resultType为sql执行语句返回的类型,parameterType为传入参数的类型-->
<if test="id!=null"> id=#{id} if>
实体类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); HashMapmap = new HashMap<>(); map.put("id",1); List 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(); } }