一、新建项目
使用IDEA,新建项目
注意:这里创建的是Maven项目
二、数据准备
因为Mybatis是操作数据库的框架,需要操作数据库,这里我们选用Mysql数据库,使用数据库脚本初始化一下数据。
-- 如果数据库不存在则创建数据库
CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARSET utf8;
-- 切换数据库
USE demo;
-- 创建表
CREATE TABLE T_USER(
ID INT PRIMARY KEY,
USERNAME VARCHAR(32) NOT NULL,
AGE INT NOT NULL
);
上面的脚本是创建一个名称为demo的数据库,并在库中新建一个T_USER表。
三、引入Mybatis
在pom文件中添加mybatis依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
这里使用的是3.4.5版本,如果想使用mybatis的其他版本可以在Maven仓库中查询。
由于要连接数据库进行使用,这里引入Mysql的驱动,在Mysql数据库上进行操作数据:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
四、配置Mybatis
在resources下新建mybatis-config.xml配置文件,并完成配置
<?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="${driver}"/>
<property name="url" value="jdbc:mysql://${ip}:${port}/${database}?useUnicode=true&useSSL=false&characterEncoding=utf8"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>
需要根据实际环境替换配置中的变量:
${driver}:数据库驱动,mysql的数据库驱动是org.gjt.mm.mysql.Driver
${ip}:数据库的IP地址
${port}:数据库的端口
${username}:连接数据库的用户名
${password}:连接数据库的密码
五、读取数据库信息
// 读取mybatis配置文件
InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("mybatis-config.xml");
// 根据配置创建SqlSession工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
SqlSession sqlSession = null;
try {
// 创建SqlSession
sqlSession = sqlSessionFactory.openSession();
// 获取连接
Connection connection = sqlSession.getConnection();
// 获取数据库元数据
DatabaseMetaData databaseMetaData = connection.getMetaData();
// 获取数据库名称
System.out.println("database product name: " + databaseMetaData.getDatabaseProductName());
// 获取数据库版本
System.out.println("database product version: " + databaseMetaData.getDatabaseProductVersion());
// 获取数据库主版本
System.out.println("database major version: " + databaseMetaData.getDatabaseMajorVersion());
// 获取数据库小版本
System.out.println("database minor version: " + databaseMetaData.getDatabaseMinorVersion());
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭会话
if(Objects.nonNull(sqlSession)) {
sqlSession.close();
}
}
注意:SqlSession对象需要关闭,不然会一直占用数据库连接
上面的代码运行的结果如下:
结果中打印的内容与我的数据库信息相符。