使用单个mybatis框架进行mysql数据库的操作?
简述
先来说一下数据库连接的演变,刚开始的时候,最原生的连接并操作mysql数据库的办法是使用JDBC技术,这种技术相对来说写的源码比较多,比较繁杂;
后来就出现了JDBCTmplate;
再后来就出现了mybatis框架,mybatis框架进行mysql数据库操作还是比较简便的。
可以去mybatis中文官网看一下最简单的连接示例,地址:https://mybatis.net.cn/getting-started.html
连接并操作mysql数据库只有mybatis框架就可以了吗?
不行。mybatis框架只不过是让操作数据库更加简便了而已,但是它内部并不能提供连接mysql数据库的jar包,如果我们想要连接mysql数据库,必须还要引入mysql驱动包,所以,正常情况下使用mybatis连接并操作数据库,需要两个jar包,如下图:
jar包依赖代码如下:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
那么接下来就是怎样使用mybatis框架结合mysql驱动去连接并操作mysql数据库了?
首先需要写一个mybatis的配置文件,如下图:
代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/kml"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/LogScriptMapper.xml"/>
</mappers>
</configuration>
然后写mapper.xml映射文件,这个文件的作用是定义sql语句,如下图:
代码如下:
<?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">
<mapper namespace="com.sh.game.mapper.LogScriptMapper">
<select id="selectById" resultType="com.sh.game.DO.LogScriptDO">
select * from log_script where id = #{id}
</select>
</mapper>
当然我们需要在本地mysql数据库里面建立一个数据库,并且在数据库里面建立一张表,这个过程就不演示了,这里看一下表结构,如下图:
mybatis并不是直接操作sql语句的,虽然我们在mapper.xml映射文件中已经写好了sql语句,但是我们不能直接操作,而是需要写一个与其名字相同的动态代理接口进行操作,如下图:
里面的每一个方法都对应一个sql语句,想要对数据库进行什么样的sql操作,我们直接调用动态代理接口LogScriptMapper中的方法就行。
然后写一个与数据库对接的DO类,如下图:
最后,一切写好之后,就要进行最终的测试了,测试如下图:
代码如下:
/**
* @author xuan
* @create 2023/10/19
*/
public class Test01 {
public static void main(String[] args) throws IOException {
String rootPathOfMybatisConfig = "config/mybatis.xml";
InputStream inputStream = Resources.getResourceAsStream(rootPathOfMybatisConfig);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
try (SqlSession session = sqlSessionFactory.openSession()) {
LogScriptMapper logScriptMapper = session.getMapper(LogScriptMapper.class);
LogScriptDO logScriptDO = logScriptMapper.selectById(1);
System.out.println(logScriptDO);
}
}
}
看一下输出结果,如下图:
至此,使用"mysql-connector-java连接数据库驱动和mybatis操作mysql数据库框架" 这两个优秀技术连接并操作数据库就完美成功了。