开发步骤
1. 配置 maven 的 pom.xml 文件
一. 打包方式:<packaging>jar</packaging>
二. 引入依赖: mybatis、mysql驱动、junit、logback 等
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Base</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 第一步 打包方式-->
<packaging>jar</packaging>
<!-- 第二步 引入依赖-->
<dependencies>
<!-- mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!-- mysql 驱动依赖-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
2. 在类的根目录 或者 resources 目录 创建 mybatis 的配置文件 :
mybatis-config.xml
(核心配置文件,主要配置连接数据库的信息,只有一个)
XxxxMapper.xml
(编写SQL语句的配置文件,一个表对应一个)
3. 配置mybatis-config.xml
初始化:
内容参考: https://mybatis.net.cn/getting-started.html,或下面代码**
<?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="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
修改
<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/dext"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 引入XxxMapping.xml 配置文件, resource属性默认从 类的根目录查找-->
<mapper resource="CarMapper.xml"/>
</mappers>
</configuration>
4. 配置XxxxMapper.xml
初始化
可复制 https://mybatis.net.cn/getting-started.html 中探究已映射的 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="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
修改
在 mapper
标签中写增删改查的sql 语句, 下面以新增为例,
标签的id 是这条语句的唯一标识, 这个id 代表了这个sql语句
<mapper namespace="asdfad">
<insert id="insertCar">
insert into t_car(id, car_num,brand,guide_price,produce_time,car_type)
values(null, '1003', '长安cs35', 30.0, '2000-10-11','燃油车')
</insert>
<delete id=""></delete>
<update id=""></update>
<select id=""></select>
</mapper>
5.编写mybatis 程序
package com.study.mybatis.test;
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.InputStream;
public class MybatisBaseTest {
public static void main(String[] args) throws Exception {
// 获取 SqlSessionFactoryBuilder 对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
// 获取 SqlSessionFactory 对象
SqlSessionFactory SqlSessionFactory = sqlSessionFactoryBuilder.build(is);
// 获取 SqlSession 对象
SqlSession sqlSession = SqlSessionFactory.openSession();
// 通过 SqlSession 执行SQL 语句
int count = sqlSession.insert("insertCar"); // 括号内 为 CarMapper.xml 中 CRUD 语句的 id
System.out.println( "插入了几条记录" + count);
// 手动提交
sqlSession.commit();
}
}
开发细节
- mybatis中 sql 语句结尾的分号可以省略
insert into t_car(id, car_num,brand,guide_price,produce_time,car_type)
values(null, '1003', '长安cs35', 30.0, '2000-10-11','燃油车')
-
Resource 这个单词 大部分情况下资源加载的位置从类的根路径开始
<mapper resource="CarMapper.xml"/>
image.png
3.<transactionManager type="JDBC"/> 事务管理机制的type 值有两个 JDBC(采用jdbc管理事务)、MANAGED(不处理事务,交给第三方处理)