前言:
此刻我们对“java建层”大体比较注意,我们都想要知道一些“java建层”的相关资讯。那么小编在网摘上搜集了一些关于“java建层””的相关资讯,希望小伙伴们能喜欢,我们一起来了解一下吧!序
欢迎来到全网最完整的Java系列教程!!! 本教程将包含基础知识、进阶知识、常用框架等,循序渐进地分享Java中必须掌握的知识和技术。跟着老K的教程每天学习一点,你会发现入门Java没有想象中那么难。
在所有Java和数据库相关的框架中,说MyBatis是最基础和最重要的框架之一,想必没有人会有异议。
对于刚刚跨过Java基础大门的小伙伴来说,MyBatis虽然重要,但它的语法和配置与Java往往是最麻烦、最难以理解的部分。
本期,我们就一起从零开始,讲解如何使用MyBatis这个Java必备的持久层框架吧。
阅读可能晦涩,建议收藏,等有空或者有需要的时候拿出来查看。
一、MyBatis配置
首先,在IDEA中用maven新建一个项目即可,具体可以参考:
Java项目工程管理神器,构建框架必用 | Java常用框架精讲(二)
创建完项目后,得到的目录结构如下:
KoderMyBatis是我起的项目名称,实际情况会根据创建项目时的项目名称有所不同;target是项目的解码文件,新创建项目时不存在,需要运行过代码后才会生成。1. pom.xml的配置
和所有的maven项目一样,创建好项目后,我们首先要在pom.xml中配置要项目依赖:
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency></dependencies>在pom.xml的dependencies里,添加本次项目用到的三个依赖:mybatis、mysql以及junit;mybatis是持久层框架,用来管理java项目的数据交互;mysql下的mysql-connector-java是mysql向java开放的接口框架;junit是java常用的单元测试框架,如有了解详细只是可以跳转到这里:
Java工程师必学测试用例,手把手教你使用Junit|Java框架精讲(三)
如果同步下载遇阻,可以使用国内的镜像,之前的文章中有提到,有需要的小伙伴可以在之前的文章里找 ,链接放在文末了,这里就不展开了。2. config配置
mybatis除了需要在pom.xml里导入依赖库,还需要在resources目录下面创建一个配置文件,一般我们取这个配置文件的名称为mybatis-config.xml;
mybatis-config.xml的路径位置在:./src/main/resources/下。
通常的配置信息如下:
<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ";><configuration> <settings> <setting name="mapUnderscoreToCamelCase" value="True"/> </settings> <environments default="dev"> <environment id="dev"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments></configuration><!DOCTYPE>的标签是标准配置,来自于mybatis官网,地址:<configuration>是mabits的配置标签,自定义的所有配置都卸载这个标签下;<setting>中是参数设置,本例中通过mapUnderscoreToCamelCase设置了驼峰变量名的自动转换;<enviroments>由一个或多个<enviroment>组成,每个<enviroment>都配置一个环境变量,本例中只有一个<enviroment><transactionManager>中对数据库交互对象进行了设置,本例中将类型设置为JDBC;<dataSource>是用来配置信息源的,默认类型是线程池POOLED,属性driver,url,username,password 分别用来配置链接实例、数据库参数、用户名以及密码。此处的信息员属性(即dataSource > property标签)中的设置仅作为示例,项目中需根据自己实际情况配置,如出现连接失败,请重点查看信息源配置是否与当前项目吻合。
通过以上新建项目、配置pom依赖、以及mybatis-config的配置,我们已经完成了MyBatis使用前的必要配置了。
二、调用MyBatis实例
完成了基本配置后,我们接下来要完成MyBatis对mysql数据库的链接。
1. 创建实例的基本逻辑
我们先梳理一下MyBatis连接的基本逻辑代码:
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.Reader;import java.sql.Connection;public class MyBatis { public static void main(String[] args) { // 1. 创建sqlSession工厂类 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); // 2. 通过工厂类创建session,并创建连结 SqlSession sqlSession = sqlSessionFactory.openSession(); Connection connection = sqlSession.getConnection(); // 3. 执行CRUD任务 // ... // 4. 关闭session sqlSession.close(); }}SqlSessionFactory是创建SqlSession的工厂类,需要读取我们之前在mybatis-config.xml中配置的信息(即“一、MyBatis配置 - 2. config配置”中提及的部分)通过SqlSessionFactoryBuilder的build方法可以创建SqlSessionFactory工厂类;通过SqlSessionFactory的openSession可以开启一个应用会话,用来连接数据库;通过SqlSession的getConnection可以创建数据库连接实例;任何crud完成后,都记得用close方法关闭session释放资源2. 优化代码逻辑,贴近实战
完成了思路的梳理,我们接下来在测试类中完善代码逻辑。
我们在./src/test/java/路径下创建MyBatisTest.java文件,文件代码如下:
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 org.junit.Test;import java.io.IOException;import java.io.Reader;import java.sql.Connection;public class MyBatisTest { @Test public void testSqlSessionFactory() throws IOException { Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession sqlSession = null; try { sqlSession = sqlSessionFactory.openSession(); Connection connection = sqlSession.getConnection(); System.out.println(connection); } catch (Exception e) { e.printStackTrace(); } finally { if (sqlSession != null) { sqlSession.close(); } } }}前几行import是依赖库的导入,基本操作不作解释了;@Test是junit的语法,表示当前方法是测试方法,对于测试用例和Junit有困惑的,可以到这里学习一下:
Java工程师必学测试用例,手把手教你使用Junit|Java框架精讲(三)
考虑到SqlSession存在获取失败的情况,所以用try...catch...包裹,捕获运行时异常的情况;当sqlSession创建失败时,sqlSession.close()方法会执行失败,所以在finally代码块里进行判断在执行释放资源的操作。
以上就是MyBatis创建连接实例的基本操作,也是本文主要介绍的内容。
当然,MyBatis作为Java开发中重要的组成部分和通用的持久层框架,相关的知识肯定不止于此,本文仅作为抛砖引玉,后续会有更多相关和有趣的知识点讲解,敬请关注!
如果你对老K分享的内容有任何疑问,欢迎随时在评论区留言或者私信我。
正在学习的小伙伴记得给老K一个赞哦,你的支持是我持续输出课程内容最大的动力!
阅读推荐
我也分享过关于如何学习Java的文章,有需要的小伙伴可以点击下方链接获取:
IT大佬推荐!学习Java的最优路径 分享多个阶段的学习资源 建议收藏
结束语
我是专注于开发领域的@老K玩代码,会持续生产关于如何学习编程语言的优质内容。
如果你想学习Java编程,或者想精进你的Java编程能力,可以关注我。
如果你对开发、编程有任何疑问或者有想了解的内容,而我暂时没有写到的,也欢迎随时来找我聊聊。
#头条创作挑战赛#
标签: #java建层