MyBatis学习笔记【IDEA工具】
什么是MyBatis?:
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
开发我的第一个MyBatis程序
跟着杜神学MyBatis
1. 项目准备
-
新建Maven项目【点我学习Maven的下载与配置】
- 添加空的Moudle,然后配置Maven
- Settings->Build,Excution,Deployment->Build Tools->Maven
- 更改Maven_home path(指定本地Maven)
- 使用本地Maven的配置文件【User settings file:Maven中conf下】
-
配置JDK
- File->Project Structure
2. resources目录
放在这个目录当中的,一般都是资源文件,配置文件。直接放到resources目录下的资源,等同于放到了类的根路径下。
3. 包结构
4. 开发步骤
第一步:打包方式jar
<!--在pom.xml文件编写打包方式jar-->
<packaging>jar</packaging>
第二步:引入依赖
-
mybatis依赖
-
<!--在pom.xml文件编写MyBatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.10</version> </dependency>
-
-
mysql依赖
-
<!--在pom.xml文件编写MySql驱动依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency>
-
第三步:编写mybatis核心配置文件:mybatis-config.xml
-
一般情况下放到类的根路径下(resources中)
-
文件内容可从mybatis中文网入门教程中复制【从 XML 中构建 SqlSessionFactory】
-
配置数据库连接信息
-
<?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"> <!--jdbc的jar包是5及5之前的数据库连接驱动名称:com.mysql.jdbc.Driver--> <!--jdbc的jar包是6及6之后的数据库连接驱动名称:com.mysql.cj.jdbc.Driver--> <property name="driver" value="${driver}"/> <!--url:指定数据库的标识符,jdbc:mysql://localhost:【端口号】/【数据库名称】--> <property name="url" value="${url}"/> <!--mysql数据库的用户名及密码--> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>
第四步:编写XxxxMapper.xml文件
-
在这个配置文件中编写SQL语句
-
编写CarMapper.xml文件,配置信息从入门教程中映射SQL语句中复制【探究已映射的 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="sdf"> <!--insert语句,id是这条语句唯一标识--> <insert id="insertCar"> insert into t_car(id,car_num,brand,guide_price,produce_time,car_type) values (null,'1003','丰田霸道','30.00','2022-10-01','燃油车') </insert> </mapper>
第五步:在mybatis-config.xml中指定XxxxMapper.xml文件的路径
- resource会从类的根路径下查找
-
<mappers> <!--执行XXXXMapper.xml文件的路径--> <!--resources属性自动会从类的根路径下查找资源--> <mapper resource="CarMapper.xml"/> </mappers>
第六步:编写mybatis程序(使用mybatis类库、编写mybatis程序、连接数据库增删改查)
-
在mybatis中负责执行SQL语句的对象->SqlSession:是Java程序和数据库之间的一次会话。
-
如何获取SqlSession对象?
- 需要先获取SqlSessionFactory工厂来生产SqlSession
-
如何获取SqlSessionFactory对象?
- 需要先获取SqlSessionFactoryBuilder对象
通过SqlSessionFactoryBuilder对象的build方法,获取一个SqlSessionFactory对象
- 需要先获取SqlSessionFactoryBuilder对象
-
mybatis的核心对象总结:
- SqlSessionFactoryBuilder --> SqlSessionFactory --> SqlSession
-
package pers.weiney.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.IOException; /** * @author Weiney * @ToDo 正规完整版的mybatis程序 * @create 2022-11-20 21:53 */ public class MyBatisCompleteTest { public static void main(String[] args) { SqlSession sqlSession = null; try { SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml")); sqlSession = sqlSessionFactory.openSession(); // 执行SQL语句,处理相关业务 int count = sqlSession.insert("insertCar"); System.out.println(count); // 执行到这里,没有发生异常,提交事务,终止事务 sqlSession.commit(); } catch (Exception e) { // 发生异常最好回滚事务 if (sqlSession != null) { sqlSession.rollback(); } e.printStackTrace(); } finally { // 关闭会话 if (sqlSession != null) { sqlSession.close(); } } } }
5. 从 XML 中构建 SqlSessionFactory
- mybatis中的重要对象:SqlSessionFactory
- SqlSessionFactory对象的创建需要XML(mybatis-config.xml)
6. mybatis中有两个主要的配置文件:
- mybatis-config.xml,这是核心配置文件,主要配置连接数据库的信息等(只需一个)
- XxxxMapper.xml,这个文件是专门用来编写SQL语句的配置文件。(一个表一个)
qlSessionFactory - SqlSessionFactory对象的创建需要XML(mybatis-config.xml)
7. mybatis中有两个主要的配置文件:
- mybatis-config.xml,这是核心配置文件,主要配置连接数据库的信息等(只需一个)
- XxxxMapper.xml,这个文件是专门用来编写SQL语句的配置文件。(一个表一个)
例:t_user表对应一个UserMapper.xml;t_student表对应一个StudentMapper.xml