简介
在现代的 Java 开发中,持久层框架是不可或缺的一部分。MyBatis 是一个优秀的持久层框架,它简化了数据库操作,提供了强大的 SQL 控制能力。本篇博客将带你快速入门 MyBatis,让你快速上手并开始使用这个强大的框架。
Mybatis主要对jdbc代码进行了优化:
1.硬编码 -> 配置文件
可维护性:将数据库连接信息、SQL语句等从代码中硬编码改为配置文件中配置,使得配置更易于修改和管理,降低了修改配置的风险。在项目部署时候,可以不重新部署的情况下,进行配置的修改。
灵活性:通过配置文件,可以在不修改代码的情况下调整数据访问的行为,实现灵活性配置。
可重用性:配置文件可以被多个数据访问模块或组件共享,提高了配置信息的复用性。
举例
数据源配置:将数据库连接信息(如URL、用户名、密码)从代码中硬编码改为MyBatis配置文件中配置,可以方便地修改数据库连接信息而不用修改代码。
SQL语句配置:将SQL语句从代码中硬编码改为MyBatis的Mapper XML文件中配置,可以方便地修改SQL语句而不用修改代码。
2操作繁琐 ->自动完成
好处:
提高效率:MyBatis提供了自动映射功能,可以将查询结果自动映射到Java对象中,减少了手动处理结果集的工作,提高数据访问的效率。
减少失误:MyBatis的参数映射功能可以帮助开发人员减少参数传递的错误,提高数据访问的准确性。
简化开发:MyBatis的注解和XML配置方式可以帮助开发人员简化数据访问层的开发,提高开发效率。
举例:
自动映射结果集:MyBatis可以自动将查询结果映射到Java对象中,减少了手动处理结果集的工作,简化了数据访问代码。
动态SQL:MyBatis提供了动态SQL的功能,可以根据条件动态生成SQL语句,减少了手动拼接SQL语句的工作,提高了开发效率。
通过将配置信息从代码中分离出来,并利用MyBatis的自动映射和动态SQL功能提高数据访问效率,可以使数据访问层的开发工作更加高效、可维护和可靠。这种方式有助于提升数据访问层的质量和效率。
1. 环境搭建
- 引入 MyBatis 和 Mysql 的依赖
<!-- mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.14</version> </dependency> <!-- mysql的依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>
- 配置 MyBatis 的数据源
<?xml version="1.0" encoding="UTF-8" ?> <!--引用的 DTD 文件指定了 MyBatis 配置文件的结构和元素约束, 确保配置文件按照规定的格式编写,这样 MyBatis 解析器就能正确地读取和理解配置文件的内容。--> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 定义了数据库连接的环境配置, 将 development 开发环境作为默认环境。--> <environments default="development"> <environment id="development"> <!-- 表示使用 JDBC 进行事务管理--> <transactionManager type="JDBC"/> <!-- 表示使用连接池来管理数据库连接--> <dataSource type="POOLED"> <!-- 数据库连接信息--> <property name="driver" value="com.mysql.cj.jdbc.Driver" /> <property name="url" value="jdbc:mysql://8.130.10.216:3306/amount" /> <property name="username" value="root" /> <property name="password" value="521Hx1314" /> </dataSource> </environment> </environments><!-- 结束数据源和环境配置的定义--> <!-- 指定了一个 XML 格式的映射文件 amountMapper.xml 的位置。--> <!-- 加载sql的映射文件--> <mappers> <mapper resource="AmountMapper.xml"/> </mappers> </configuration>
- 编写 MyBatis 的mpper配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace开启命名空间--> <mapper namespace="test"> <select id="selectAccount" resultType="org.example.pojo.Account" > select * from account; </select> </mapper>
2.创建SqlSession对象执行sql语句
package org.example; 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.io.InputStream; import java.util.List; public class App { public static void main( String[] args ) { //1.加载mybatis的核心配置文件,获取SqlSessionFactory String resource = "mybatis_config.xml"; try { // 用于获取类路径下资源的输入流 用于加载 MyBatis 的配置文件或映射文件等资源。 InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //2.获取SqlSession对象,用于执行sql语句 SqlSession sqlSession = sqlSessionFactory.openSession(); //3.执行sql List<Object> accounts = sqlSession.selectList("test.selectAccount"); System.out.println(accounts); sqlSession.close(); } catch (IOException e) { throw new RuntimeException(e); } } }
结语
通过本篇博客,你应该对如何快速入门 MyBatis 有了一个清晰的了解。希望这篇指南能够帮助你快速上手 MyBatis,并在你的项目中发挥它强大的功能。
如果你需要更详细的内容或有其他问题,欢迎留言讨论。祝你在学习和使用 MyBatis 的过程中取得成功!