天天看点

使用Mybatis实现数据库的增删改查实例

文章目录

Mapper接口本质就是原来的Dao接口,只是为了方便我们的书写。一个mapper接口对应一个mapper映射文件。

目录结构:

使用Mybatis实现数据库的增删改查实例

编写接口

将UserMapper更名为UserDao,说明本质

代码上没有做很多的修改,还是沿用了上一篇博客的代码,只是添加了一些功能,修改的文件如下:

修改对应的mapper映射文件的namespace属性,对应上接口。

UserDao接口
           
package com.MLXH.dao;

import com.MLXH.pojo.User;

import java.util.List;

public interface UserDao {
    //获取所有的用户
    List<User> selectUser();
    //通过id获取用户信息
    User selectUserById(int id);
    //增加一个用户
    int addUser(User user);
    //用过id删除一个用户
    int delUserById(int id);
    //修改用户信息
    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对应的Mapper接口类-->
<mapper namespace="com.MLXH.dao.UserDao">
    <!--select的id对应方法名,type对应的返回结果的类型,中间编写sql语句-->
    <select id="selectUser" resultType="com.MLXH.pojo.User"><!--resultType="com.MLXH.pojo.User"-->
        select  * from user
    </select>
    <!--通过id查询用户信息-->
    <select id="selectUserById" resultType="com.MLXH.pojo.User">
        select * from user where id=#{id}
    </select>
    <!--创建一个用户-->
    <insert id="addUser" parameterType="com.MLXH.pojo.User">
        insert into user (id,name,pwd) values(#{id},#{name},#{pwd})
    </insert>
    <!--通过id删除一个用户-->
    <delete id="delUserById">
        delete from user where id=#{id}
    </delete>
    <!--更新一个用户信息-->
    <update id="updateUser" parameterType="com.MLXH.pojo.User">
        update user set id=#{id},name=#{name},pwd=#{pwd} where id=#{id}
    </update>
</mapper>
           
UserMapperTest.java
           
package com.MLXH.dao;

import com.MLXH.pojo.User;
import com.MLXH.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;

import java.util.List;

public class UserMapperTest {
    @Test
    //查询用户
    public void selectUser(){
        //1.拿到sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = MyBatisUtils.getSqlSessionFactory();
        //2.通过sqlSessionFactory对象的openSession方法闯进一个sqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3.通过sqlSession获得mapper对象,参数为映射文件对应的接口类的class独享
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        //4.通过Mapper对象来执行操作
        List<User> users = mapper.selectUser();
        for (User user : users) {
            System.out.println(user);
        }
    }
    @Test
    //通过id查询用户信息
    public void selectUserById(){
        SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        User user = mapper.selectUserById(1);
        sqlSession.commit();
        sqlSession.close();
        System.out.println(user);
    }
    @Test
    //添加一个用户
    public void addUser(){
        SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        User user = new User(4,"暮凌寒雪","456789");
        mapper.addUser(user);
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    //通过id删除一个用户
    public void delUserById(){
        SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        mapper.delUserById(4);
        sqlSession.commit();
        sqlSession.close();
    }
    @Test
    //更新用户信息
    public void updateUser(){
        SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession();
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        User user=new User(1,"暮凌寒雪","123456");
        mapper.updateUser(user);
        sqlSession.commit();
        sqlSession.close();
    }
}
           

继续阅读