MyBatis
ORMapping: Object Relationship Mapping对象关系映射
Object:对象指⾯向对象
Relationship:关系指关系型数据库
Mapping:Java到MySQL的映射,开发者可以以⾯向对象的思想来管理数据库。
如何使⽤:
一、新建Maven⼯程,pom.xml,引入相关依赖:
1.由于本项目要连接数据库以及对程序进行测试,所以需要在项目的pom.xml文件中导入MySQL驱动包、Junit测试包、MyBatis的核心包等相关依赖,
2.由于ider不会自动编译src/main/java目录下的xml文件,所以<build></build>是将项目中src/main/java目录下的xml文件等资源文件编译进classes文件夹中
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
2.新建数据表:创建一个名为mybatis的数据库
use mybatis;
create tablet_account(
idintprimary key auto_increment,
usernamevarchar(11),
passwordvarchar(11),
ageint
)
3.新建与数据表对应的实体类 :在项目的src/mian/java目录下创建包com.xxx.pojo,在com.xxx.pojo下创建Account类,该类用于封装Account对象的属性
此处使用了@Data注解,记得在pom.xml里引入lombok,引入之前先在idea下载的工具lombok
packagecom.southwind.entity;
importlombok.Data;
@Data
public classAccount{
privatelongid;
privateStringusername;
privateStringpassword;
privateintage;
}
4.创建数据库连接信息配置文件
#mysql数据库连接配置
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&useSSL=false
mysql.username=root
mysql.password=1qazxsw2
5.创建数据库连接配置文件:
在项目的src/mian/resources目录下创建数据库连接的配置文件,命名为“db.properties”,该文件中配置数据库的连接参数
#mysql数据库连接配置
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&useSSL=false
mysql.username=root
mysql.password=1qazxsw2
6.在项目的src/mian/resources目录下创建 MyBatis的核心配置⽂件“mybatis-config.xml” ,主要用于项目的环境配置,如数据库连接相关配置等,“mybatis-config.xml”的⽂件名可⾃定义,通常命名为“mybatis-config.xml”
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPEconfiguration
PUBLIC"-//mybatis.org//DTDConfig 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--加载db.properties路径下的属性文件-->
<propertiesresource="db.properties"/>
<!--配置MyBatis运⾏环境-->
<environmentsdefault="development">
<environmentid="development">
<!--配置JDBC事务管理-->
<transactionManagertype="JDBC"></transactionManager>
<!-- POOLED配置JDBC数据源连接池-->
<dataSourcetype="POOLED">
<propertyname="driver"value="${mysql.driver}"/>
<propertyname="url"value="${mysql.url}"/>
<propertyname="username"value="${mysql.username}"/>
<propertyname="password"value="${mysql.password}"/>
</dataSource>
</environment>
</environments>
</configuration>
注意:default是加载文件是默认的 environments,因为可能有多个environments,想让谁默认就把它的id写在default后
7.创建映射文件:
第一种方法 :使用原生接口
步骤:
(1)在src/mian/resources目录下创建一个mapper文件夹,在mapprr文件夹下创建映射文件AccountMapper.xml,该文件主要用于配置SQL语句和java对象之间的映射,是sql语句查询出来的数据能够被封装成java对象。
注意:一个项目可以有多个映射文件,每个实体类都可以有其相对应的映射文件。
映射文件命名:POJO实体类+Mapper.xml ,例如User实体类的映射文件名称就为:UserMapper.xml
<?xml version="1.0"encoding="UTF-8"?>
<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mappernamespace="com.southwind.entity.Account"><!--namespace通常设置为对应实体类的全限定类名-->
<insertid="findById"parameterType="com.southwind.entity.Account">
insert into t_account(username,password,age) values(#{username},#{password},#{age})
</insert>
</mapper>
namespace通常设置为对应实体类的全限定类名,例如:namespace="com.southwind.entity.Accoun"。
id 是实际调⽤MyBatis⽅法时需要⽤到的参数。 id="接口中的方法"
parameterType是调⽤对应⽅法时参数的数据类型。 parameterType="传入的参数类型"
resultType和接⼝中对应⽅法的返回值类型⼀致。 resultType="包.类名" //返回实体类对象
insert标签表示执⾏添加操作。
select标签表示执⾏查询操作。
update标签表示执⾏更新操作。
delete标签表示执⾏删除操作。
(2)在全局配置⽂件confifig.xml中注册AccountMapper.xml
加入:
<!--注册AccountMapper.xml -->
<mappers>
<mapperresource="mapper\AccountMapper.xml"/>
</mappers>

(3)调⽤MyBatis的原⽣接⼝执⾏添加操作。