1. 程式人生 > 其它 >Mybatis學習日記-萬能Map

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 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();
    }
}