
Mybatis初级使用(入门)
发布日期:2021-05-14 13:45:02
浏览次数:19
分类:精选文章
本文共 4222 字,大约阅读时间需要 14 分钟。
MyBatis入门讲解
一、MyBatis简介
1. 简介
MyBatis(原名iBatis)是一个开源免费的持有类数据访问框架,于2010年首次开源,2013年迁至Github。它通过将SQL映射与Java对象之间建立关联,简化了代码耦合度,为数据访问层提供了一种更高效的解决方案。
2. 作用
MyBatis主要作为数据访问层框架,通过对JDBC进行封装,帮助开发人员更高效地与数据库进行交互。其核心功能包括:
- 2.1 数据库连接管理:通过配置文件管理数据库连接配置。
- 2.2 SQL映射:将动态SQL语句与Java对象关联,并通过简单的API调用执行。
- 2.3 事务管理:支持Serializable级别的事务传播,确保数据操作的原子性。
- 2.4 垂直扩展:可与Spring、EJB等其他框架无缝集成,支持多种事务管理方式。
二、环境搭建
1. 导入依赖
首先需要导入MyBatis相关的依赖。您可以通过Maven进行依赖管理,或者在项目的pom.xml中添加以下内容:
org.apache.mybatis mybatis 3.x.xx
2. 配置全局配置文件
创建一个名为mybatis-config.xml
的文件,内容如下:
3. 配置对应的Mapper文件
创建FlowerMapper.xml
文件,内容如下:
4. 测试类代码示例
以下是简单的测试类代码:
public class Test { public static void main(String[] args) throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); // 查询所有花朵 ListflowerList = session.selectList("com.test.mapper.FlowerMapper.selAll"); for (Flower flower : flowerList) { System.out.println(flower); } // 关闭会话 session.close(); }}
三、使用MyBatis执行增删改查操作
1. 插入操作
在插入操作中,可通过session.insert()
方法执行,并通过commit()
手动提交事务。以下是一个示例:
public class Insert { public static void main(String[] args) throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); People p = new People(); p.setName("测试"); p.setAge(20); int index = session.insert("com.test.mapper.PeopleMapper.inst", p); session.commit(); session.close(); System.out.println(index); System.out.println(p); }}
2. 查询操作
MyBatis支持三种查询方式:
selectList()
:返回List形式的数据。selectOne()
:返回单个对象。selectMap()
:返回Map形式的数据(键由指定字段决定)。
以下是一个使用selectMap()
方法查询的示例:
public class Test { public static void main(String[] args) throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); MapflowerMap = session.selectMap("com.test.mapper.FlowerMapper.selMap", "name"); for (Entry entry : flowerMap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } session.close(); }}
3. 事务操作
在进行增删改操作时,务务必须手动提交事务。以下是一个包含事务操作的示例类代码:
public class Transaction { public static void main(String[] args) throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); SqlSession session = factory.openSession(); try { // 假设People表有一个自增的ID字段,设置useGeneratedKeys="true" People p = new People(); p.setName("测试"); int index = session.insert("com.test.mapper.PeopleMapper.inst", p); System.out.println("插入操作执行,返回值:" + index); session.commit(); System.out.println("事务已成功提交"); } catch (Exception e) { System.out.println("事务处理异常:" + e.getMessage()); } finally { session.close(); } }}
四、参数传递与日志配置
在使用MyBatis进行数据库操作时,参数传递支持多种方式。一种常见的做法是使用#{key}
语法在XML配置中定义参数。以下是一个简单的示例:
为了确保MyBatis运行的稳定性,可以通过设置合适的日志级别来调试和监控程序运行。常用的日志框架包括LOG4J等。
五、总结
MyBatis通过将数据库操作与业务逻辑代码分离,为Java开发人员提供了一种更加简洁、灵活的数据访问方式。通过合理配置,并结合Spring等容器框架,可以进一步提升应用程序的维护性和扩展性。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月23日 20时40分22秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android进阶解密读书笔记1——第1章:Android系统架构
2019-03-11
Android进阶解密读书笔记2——第2章:Android系统启动——第1、2小节
2019-03-11
Java 位运算符表示多种状态
2019-03-11
Android Studio获取发布版SHA1(下载JDK)
2019-03-11
GreenDao之注解
2019-03-11
Android使用Font Awesome
2019-03-11
Android Studio添加多国语言
2019-03-11
主线程中Looper的轮询死循环为何没有阻塞主线程?
2019-03-11
Gradle实战四:Jenkins持续集成
2019-03-11
OkHttp3源码解析--设计模式
2019-03-11
使用RestTemplate,显示请求信息,响应信息
2019-03-11
linux监控系统WGCLOUD,网络拓扑图
2019-03-11
wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
2019-03-11
为什么WGCLOUD安装完后,启动服务端打不开网页
2019-03-11
wgcloud网络监控出现负值
2019-03-11
performSelector系列方法的研究
2019-03-11
WidgetKit初探
2019-03-11