MyBatis删改查和封装SqlSession会话对象工具类减少代码重复

该文章展示了如何使用MyBatis进行数据库操作,包括通过SqlSessionUtil工具类获取SqlSession,使用UserMapper接口进行用户信息的更新、删除和查询。Mapper接口与XML映射文件配合,定义了SQL语句,而测试类则执行了这些操作。
摘要由CSDN通过智能技术生成

1. SqlSession会话对象工具类

package com.atguigu.mybatis.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 SqlSessionUtil {
    public static SqlSession getSession() {
        SqlSession sqlSession=null;
        try {
            //获取核心配置文件的输入流
            InputStream is = Resources.getResourceAsStream("mybatis-cofig.xml");

            //获取SqlSessionFactoryBuilder
     SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);

            //获取SqlSeesion对象
            sqlSession= sqlSessionFactory.openSession(true);

        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return sqlSession;
    }
}

2.实体类

3. 数据修改和删除

       1)接口

public interface UserMapper {
    //修改
    void updateUser();
    //删除
    void deleteUser();

}

       2)映射文件

<?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的内容要和mapper接口全类名保持一致-->
<mapper namespace="com.atguigu.mybatis.mapper.UserMapper">

<!--    void updateUser();-->
    <update id="updateUser">
        update t_user set username='root' ,password='1234' where id=2
    </update>
<!--    void deleteUser();-->
    <delete id="deleteUser">
        delete from t_user where id=2
    </delete>


</mapper>

    3)测试类

//修改 
@Test
    public void testUpdate(){
        SqlSession session = SqlSessionUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.updateUser();
        session.close();
    }
//删除
    @Test
    public void testDelete(){
        SqlSession session = SqlSessionUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        mapper.deleteUser();
        session.close();
    }

4. 查询功能

     1)接口

 //查询
    User getUserById();


    //查询所有的用户信息
    List<User> getAllUser();

     2)映射文件

            查询功能:需要把当前查询出来的数据转换为一个java类型设置出来

        resultType结果类型:设置当前查询出来的数据转换为java类型(字段名和属性名一致)

        resultMap自定义映射:字段名和属性名不一致,需要用到自定义映射,或者一对多,多对一

               两种属性不能同时设置。

   <?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的内容要和mapper接口全类名保持一致-->
<mapper namespace="com.atguigu.mybatis.mapper.UserMapper">

  <!--     User getUserById();-->
    <select id="getUserById" resultType="com.atguigu.mybatis.pojo.User">
        select * from t_user where id=1
    </select>
    
  <!--    是先转换实体类类型对象之后,在放到集合里面的,所以结果类型也是User实体类对象-->
  <!--        List<User> getAllUser();-->
    <select id="getAllUser" resultType="com.atguigu.mybatis.pojo.User">
        select * from t_user
    </select>

</mapper>

   3)测试类

//查询一条记录 
@Test
    public void testGetUserById(){
        SqlSession session = SqlSessionUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        User userById = mapper.getUserById();
        System.out.println(userById);
    }
//查询所有记录
    @Test
    public void testGetAllUser(){
        SqlSession session = SqlSessionUtil.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> allUser = mapper.getAllUser();
        for (User user:allUser){
            System.out.println(user);
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值