MyBatis HelloWorld

本文详细介绍了MyBatis框架的基本使用方法,包括配置全局文件、创建SQL映射文件、使用接口式编程进行数据库操作,以及如何通过SqlSession进行资源管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis HelloWorld

1 HelloWorld简单版

  • 创建一张测试表
  • 创建对应的javaBean
  • 创建mybatis配置文件,sql映射文件
  • 测试
MyBatis操作数据库

1、创建MyBatis全局配置文件

  • MyBatis 的全局配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息、如数据库连接池信息等。指导着MyBatis进行工作。我们可以参照官方文件的配置示例。

2、创建SQL映射文件

  • 映射文件的作用就相当于是定义Dao接口的实现类如何工作。这也是我们使用MyBatis时编写的最多的文件。
测试
  1. 根据全局配置文件,利用SqlSessionFactoryBuilder创建SqlSessionFactory
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
  1. 使用SqlSessionFactory获取sqlSession对象。一个SqlSession对象代表和数据库的一次会话
SqlSession openSession = factory.opSession();
  1. 使用SqlSession根据方法id进行操作
SqlSession openSession = factory.openSession();
		
try {
		Object one = openSession.selectOne("com.atguigu.mybatis.dao.EmployeeMapper.getEmpById", 1);
		System.out.println(one);
} finally {
		openSession.close();
}

2 HelloWorld-接口式编程

  • 创建一个Dao接口
  • 修改Mapper文件
  • 测试
使用SqlSession获取映射器进行操作
SqlSession openSession = factory.openSession();
try {
	// 3.获取接口的实现类对象
	// 会为接口自动创建一个代理对象,代理对象去执行增删改查方法
	EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
	Employee empById = mapper.getEmpById(1);
	System.out.println(empById);
} finally {
	openSession.close();
}
SqlSession
  • SqlSession 的实例不是线程安全的,因此是不能被共享的。
  • SqlSession每次使用完成后需要正确关闭,这个关闭操作是必须的
  • SqlSession可以直接调用方法的id进行数据库操作,但是我们一般还是推荐使用SqlSession获取到Dao接口的代理类,执行代理对象的方法,可以更安全的进行类型检查操作

总结

  1. 接口式编程
    原生: Dao ====> DaoImpl
    mybatis: Mapper ====> xxMapper.xml
  2. SqlSession代表和数据库的一次会话;用完必须关闭;
  3. SqlSession和connection一样她都是非线程安全。每次使用都应该去获取新的对象。
  4. mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。
    (将接口和xml进行绑定)EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);
  5. 两个重要的配置文件:
    mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等…系统运行环境信息
    sql映射文件:保存了每一个sql语句的映射信息: 将sql抽取出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值