mybatis映射器接口形式的增删改查

mybatis映射器接口形式的增删改

//接口
package com.csdn.mapper;

import com.csdn.bean.User;

public interface UserMapper {
    void insertUserWithId(User user);
    void insertUserByParam(int id, String name, String password);
}

//子配置文件
<?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.csdn.mapper.UserMapper">
    <insert id="insertUserWithId">
        insert into t_person values (#{id},#{name},#{password})
    </insert>
    <insert id="insertUserByParam">
                                      # 传如进来的参数和param的顺序对应
        insert into t_person values (#{param1}, #{param2}, #{param3})
    </insert>
</mapper>
package com.csdn.mapper;

import com.csdn.bean.User;
import com.csdn.util.DBUtil;
import org.apache.ibatis.session.SqlSession;

import java.io.IOException;

/**
 * @ClassName
 * @Description TODO
 * @Author sudi
 * @Date 2020/5/3 17:29
 */
public class UserMapperTest {
    public void insertUser(User user) throws IOException {
        SqlSession sqlSession = null;
        try {
            sqlSession = new DBUtil().getSqlSession();
        

		//使用sqlSession中原生方法是只能携带两个参数
        // 但使用映射器接口的话可以传递任意多个参数
        //这就是使用映射器接口的好处
            sqlSession.insert("insertUserWithId",user);
            sqlSession.commit();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }
    }

    public void insertUserByParam(int id, String name ,String password) throws IOException {
        SqlSession sqlSession = null;
        try {
            sqlSession = new DBUtil().getSqlSession();
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            //使用sqlSession中原生方法是只能携带两个参数
            // 但使用映射器接口的话可以传递任意多个参数
            //这就是使用映射器接口的好处
            userMapper.insertUserByParam(id, name, password);
            sqlSession.commit();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }
    }

    public static void main(String[] args) throws IOException {
        UserMapperTest userMapperTest = new UserMapperTest();
        userMapperTest.insertUser(new User(4,"name","password"));
        userMapperTest.insertUserByParam(3,"name","password");
    }
}

删和改不做演示,因为和增一样的方法。

mybatis映射器接口形式的查

//接口
package com.csdn.mapper;

import com.csdn.bean.User;

import java.util.List;

public interface UserMapper {
    User selectUserById(int id);
    List<User> selectAll();
}

//子配置文件
<?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.csdn.mapper.UserMapper">
    <select id="selectUserById" resultType="com.csdn.bean.User">
        select id, name, password from t_person where id = #{id}
    </select>
    <select id="selectAll" resultType="com.csdn.bean.User">
        select id ,name, password from t_person
    </select>
</mapper>
package com.csdn.mapper;

import com.csdn.bean.User;
import com.csdn.util.DBUtil;
import org.apache.ibatis.session.SqlSession;

import java.io.IOException;
import java.util.List;

/**
 * @ClassName
 * @Description TODO
 * @Author sudi
 * @Date 2020/5/3 17:29
 */
public class UserMapperTest {

    public User selectUserById(int id) throws IOException {
        SqlSession sqlSession = null;
        try {
            sqlSession = new DBUtil().getSqlSession();
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            User user = userMapper.selectUserById(id);
            return user;
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }
    }

    public List<User> selectAll() throws IOException {
        SqlSession sqlSession = null;
        try {
            sqlSession = new DBUtil().getSqlSession();
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            return userMapper.selectAll();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
        }
    }

    public static void main(String[] args) throws IOException {
        UserMapperTest userMapperTest = new UserMapperTest();
//        userMapperTest.insertUser(new User(4,"name","password"));
//        userMapperTest.insertUserByParam(3,"name","password");
        //若是查询结果查询到了两条则会报错
        //因为底层源码使用的是selectOne()这个方法
        User user = userMapperTest.selectUserById(1);
        System.out.println(user);
        //查询多条则用List集合
        List<User> users = userMapperTest.selectAll();
        System.out.println(users);
    }
}

猜你喜欢

转载自blog.csdn.net/qq1350975694/article/details/105906377