本文共 3602 字,大约阅读时间需要 12 分钟。
MyBatis 是一个基于 Java 的持久层框架,核心目标是简化数据库开发流程。它通过封装 JDBC API,减少了手动操作数据库的繁琐性。开发者只需关注 SQL 语句本身,而无需处理连接、事务等底层细节。
传统的 JDBC 开发存在以下问题:
MyBatis 提供的解决方案:
这些功能 MyBatis 已经实现,无需额外开发,开发者可以直接使用。
注册 JDBC 驱动:
Class.forName("com.mysql.jdbc.Driver");获取数据库连接:
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/test", "root", "1234");preparing Statement:
PreparedStatement statement = connection.prepareStatement("select id from user");执行查询:
ResultSet resultSet = statement.executeQuery();
处理结果集:
while (resultSet.next()) { // 处理结果}释放资源:
resultSet.close();statement.close();connection.close();
SqlMapConfig.xml 是 MyBatis 的核心配置文件,主要包含以下配置项:
environments 标签:
事务管理器(transactionManager)类型有两种:
数据源(dataSource)类型有三种:
mapper 标签:
properties 标签:
typeAliases 标签:
ORM(Object Relational Mapping,对象关系映射)是数据库和对象之间的映射工具。通过 ORM,开发者无需直接处理复杂 SQL 语句,仅需操作对象即可完成数据库操作。
SqlSessionFactory:
build 方法加载核心配置文件:InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory = builder.build(resourceAsStream);SqlSession:
SqlSession sqlSession = factory.openSession();Listusers = sqlSession.selectList("UserAction.selectUsers");
常用操作:
selectList、selectOneinsertupdatedelete事务管理:
commit()rollback()所需 jar 包:
创建 User 表:
CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(255)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
User 类:
package domain;public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}UserMapper.xml:
insert into user (id, name) values(#{id}, #{name});
SqlMapConfig.xml:
测试类:
package Test;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.util.List;public class TestMyBatis { @Test public void testSelect() throws IOException { InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession session = factory.openSession(); List users = session.selectList("UserAction.selectUsers"); System.out.println(users); session.close(); }} 通过以上步骤,可以快速上手 MyBatis,简化数据库开发流程。MyBatis 提供了强大的 ORM 功能,减少了手动操作数据库的复杂性,提高了开发效率。
转载地址:http://jckfz.baihongyu.com/