MyBatis 的主要功能是帮助持久层管理数据库,接下来我们利用 MyBatis 连接一下我们的数据库,实现入门程序
前期准备
使用环境:
-
jdk 17
-
maven 3.6.1
-
mybatis 3.5.10
-
mysql 8.0.31
-
idea 2021.1
需要准备:
-
一个 Maven 工程模块
-
一个可以访问的数据库
实现功能:
向数据库中的一张表中插入一条记录,这是处理前的数据库表
第一步,在 Maven 中引入依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
</dependencies>
添加这两个依赖即可,一个是 JDBC 的,一个是 mybatis 的。若idea下载依赖失败,可以手动下载 jar 包后添加到自己设置的本地仓库路径中,然后再点击设置中的 File -> Inv… Cache… 清空缓存后重启 idea
第二步,在 Mapper.xml 文件中编写 sql 语句
在 resource 目录下创建 **Mapper.xml 文件,一个表对应一个 Mapper.xml 文件
<?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="text">
<!-- 在这里写sql语句-->
<select id="insert">
insert into t_birthday values("mybatis",5,"3-5-10")
</select>
</mapper>
第三步,在 mybatis-config.xml 中申明数据库
在 resource 目录下创建 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="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/learnbase"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 这里关联 Mapper.xml-->
<mapper resource="birthdayMapper.xml"/>
</mappers>
</configuration>
这里的数据库配置信息写自己本地的数据库配置
第四步,通过 mybatis 对象执行 sql
public class Main {
public static void main(String[] args) throws Exception{
SqlSessionFactoryBuilder sqlSessionFactoryBuilder1 = new SqlSessionFactoryBuilder();
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory build = sqlSessionFactoryBuilder1.build(is);
SqlSession sqlSession = build.openSession();
sqlSession.insert("insert");
sqlSession.commit();
}
}
当前目录结构:
执行后数据库查询结果:
`