MyBatis-测试"删改查"功能

封装SqlSession方法

SqlSessionUtil.java

package com.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 getSqlSession(){
        SqlSession sqlSession = null;
        try {
            //获取核心配置文件的输入流
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            //获取sqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            //获取sqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
            //获取sqlSession对象
            sqlSession = sqlSessionFactory.openSession(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sqlSession;
    }
}

UserMapper接口

public interface UserMapper {
    int insertUser();
    void updateUser();
    void deleteUser();
}

UserMapper.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.mybatis.mapper.UserMapper">
    <!--int insertUser();-->
    <insert id="insertUser">
        insert into t_user values(null,'admin','123456',23,'男','12345@qq.com')
    </insert>
    
    <!--void updateUser();-->
    <update id="updateUser">
        update t_user set username="root",password="123" where id=4
    </update>

    <!--void deleteUser();-->
    <delete id="deleteUser">
        delete from t_user where id=7
    </delete>
</mapper>

测试类 MyBatisTest.java

/*
测试更新功能
 */
@Test
public void updateTest(){
    SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    mapper.updateUser();
    sqlSession.close();
}
/*
测试删除功能
 */
@Test
public void deleteTest(){
    SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    mapper.deleteUser();
    sqlSession.close();
}

查询功能:

UserMapper接口

public interface UserMapper {
    User getUserById();
    List<User> getUserAll();
}

UserMapper.xml

在查询中添加resultType/resultMap:

resultType:设置结果类型,即查询的数据要转换为的Java类型

resultMap:自定义映射,处理多对一后者一对多的映射关系

<!--User getUserById();-->
<select id="getUserById" resultType="com.mybatis.pojo.User">
    select * from t_user where id = 5
</select>

<!--User getUserAll();-->
<select id="getUserAll" resultType="com.mybatis.pojo.User">
    select * from t_user
</select>

测试类

/*
根据id查询信息
 */
@Test
public void getUserTest(){
    SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    User userById = mapper.getUserById();
    System.out.println(userById);
    sqlSession.close();
}
/*
查询所有的信息
 */
@Test
public void getUserAllTest(){
    SqlSession sqlSession = SqlSessionUtil.getSqlSession();
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    List<User> userList = mapper.getUserAll();
    userList.forEach(System.out::println);
    sqlSession.close();
}
posted @   浑浑噩噩一只小迷七  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示