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();
// 查询所有花朵
List
flowerList = 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();
Map
flowerMap = 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等容器框架,可以进一步提升应用程序的维护性和扩展性。

上一篇:Mybatis接口绑定与动态SQL
下一篇:mybatis中的日志

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月23日 20时40分22秒