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();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结