import com.tong.mapper.UserMapper;
import com.tong.pojo.User;
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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class TestUserMapper4 {
@Test
public void testCache1() throws IOException {
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
SqlSession session = factory.openSession();
UserMapper mapper1 = session.getMapper(UserMapper.class);
UserMapper mapper2 = session.getMapper(UserMapper.class);
User user1 = mapper1.findById(1);
System.out.println(user1.hashCode());
System.out.println("-------------------------------------------");
User user2 = mapper2.findById(1);
System.out.println(user2.hashCode());
}
@Test
public void testCache2() throws IOException {
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
SqlSession session1 = factory.openSession();
SqlSession session2 = factory.openSession();
UserMapper mapper1 = session1.getMapper(UserMapper.class);
UserMapper mapper2 = session2.getMapper(UserMapper.class);
User user1 = mapper1.findById(1);
System.out.println(user1.hashCode());
System.out.println("-------------------------------------------");
User user2 = mapper2.findById(1);
System.out.println(user2.hashCode());
}
@Test
public void testCache3() throws IOException {
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
SqlSession session = factory.openSession();
UserMapper mapper1 = session.getMapper(UserMapper.class);
UserMapper mapper2 = session.getMapper(UserMapper.class);
User user1 = mapper1.findById(1);
System.out.println(user1.hashCode());
// session.close();
// session.clearCache();
// session.commit();
mapper1.delete(2);
System.out.println("-------------------------------------------");
User user2 = mapper2.findById(1);
System.out.println(user2.hashCode());
}
@Test
public void testCache4() throws IOException {
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(is);
SqlSession session1 = factory.openSession();
SqlSession session2 = factory.openSession();
UserMapper mapper1 = session1.getMapper(UserMapper.class);
UserMapper mapper2 = session2.getMapper(UserMapper.class);
User user1 = mapper1.findById(1);
System.out.println(user1);
System.out.println(user1.hashCode());
// 让一级缓存失效
session1.commit();
System.out.println("-------------------------------------------");
User user2 = mapper2.findById(1);
System.out.println(user2);
System.out.println(user2.hashCode());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
MyBatis 是一个开源的持久层框架,它为 Java 程序提供了一种优雅的方式来访问数据库。相较于传统的 JDBC 编程,MyBatis 提供了更简洁、更灵活的数据库访问方式,并且能够有效地减少与数据库相关的样板代码。其核心思想是将 SQL 语句从 Java 代码中分离出来,在 XML 或注解中进行配置,从而实现了 SQL 与 Java 代码的分离。 以下是 MyBatis 的一些主要特点和功能: SQL 映射配置:MyBatis 使用 XML 文件或注解来描述 SQL 语句和 Java 方法之间的映射关系。这种分离的方式使得 SQL 语句的维护和修改更加方便,同时也提高了代码的可读性。 参数映射:MyBatis 支持将 Java 对象与 SQL 参数进行映射,降低了手动编写参数绑定的工作量。 结果集映射:MyBatis 能够将查询结果自动映射到 Java 对象上,无需手动解析和转换结果集。 动态 SQL:MyBatis 提供了强大的动态 SQL 功能,可以根据条件动态生成不同的 SQL 语句,减少了代码冗余和提高了灵活性。 缓存支持:MyBatis 提供了一级缓存和二级
资源推荐
资源详情
资源评论
收起资源包目录
mybatisDemo1.rar (51个子文件)
mybatisDemo1
pom.xml 2KB
src
test
java
TestUserMapper3.java 3KB
TestUserMapper4.java 4KB
TestTeacherMapper.java 2KB
TestUserMapper2.java 3KB
TestUserMapper.java 3KB
main
resources
SqlMapConfig.xml 2KB
db.properties 105B
log4j.properties 609B
com
tong
mapper
UserMapper2.xml 3KB
UserMapper.xml 3KB
TeacherMapper.xml 1KB
java
com
tong
mapper
TeacherMapper.java 264B
UserMapper.java 1KB
UserMapper2.java 997B
pojo
Teacher.java 602B
PageQuery.java 607B
User.java 1KB
.idea
checkstyleidea.tmp
qaplug_profiles.xml 41KB
libraries
Maven__org_mybatis_mybatis_3_5_7.xml 791B
Maven__mysql_mysql_connector_java_8_0_26.xml 865B
Maven__log4j_log4j_1_2_12.xml 760B
Maven__com_google_protobuf_protobuf_java_3_11_4.xml 872B
Maven__org_hamcrest_hamcrest_core_1_1.xml 823B
Maven__junit_junit_4_10.xml 746B
workspace.xml 3KB
misc.xml 734B
inspectionProfiles
Project_Default.xml 1KB
compiler.xml 649B
checkstyle-idea.xml 626B
modules.xml 271B
$PROJECT_FILE$ 364B
aws.xml 294B
target
classes
SqlMapConfig.xml 2KB
db.properties 105B
log4j.properties 609B
com
itbaizhan
mapper
UserMapper2.xml 3KB
UserMapper.xml 3KB
UserMapper.class 1KB
TeacherMapper.xml 1KB
UserMapper2.class 888B
TeacherMapper.class 393B
pojo
User.class 2KB
PageQuery.class 816B
Teacher.class 1KB
test-classes
TestTeacherMapper.class 3KB
TestUserMapper3.class 5KB
TestUserMapper.class 3KB
TestUserMapper4.class 3KB
TestUserMapper2.class 5KB
generated-test-sources
test-annotations
generated-sources
annotations
mybatisDemo1.iml 1KB
共 51 条
- 1
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微软常用运行库 游戏运行库 VC++各个版本
- 微信小程序开发教程.pptx
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 锐捷网络认证中心网络管理.pdf
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- SD8233LF是一款用于单按键触摸及接近感应开关,其用途是替代传统的机械型开关芯片IC
- 基于YOLOv5的烟雾火焰检测算法研究
- 基于STM32的联合调试侦听设备解决方案原理图PCB源文件调试工具视频(大赛作品)
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功