一、概念
MyBatis是一款ORM(Object Relationship Mapping 对象关系映射)框架
二、如何使用
1.新建maven项目,导入依赖:
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.20</version> </dependency> </dependencies>
2.新建数据表
create table user ( id int primary key auto_increment, username varchar(11) not null, password varchar(11) default '' );
3.新建数据表对应的实体类User:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency>
在建实体类前先引一下lombok来简化一下实体类的编写
package com.viewts.entity; import lombok.Data; @Data public class User { private long id; private String username; private String password; }
4.创建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> <!-- 配置MyBatis运行环境 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务管理 --> <transactionManager type="JDBC"></transactionManager> <!-- POOLED配置JDBC数据源连接池 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/demo"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> </configuration>
注意:我这里的mysql默认用户密码为空。
5.编写mapper文件:
<?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="com.viewts.mapper.UserMapper"> <!-- 新建用户 --> <insert id="insertUser" parameterType="com.viewts.entity.User"> insert into user values (null, #{username}, #{password}) </insert> </mapper>
6.在config.xml中注册UserMapper:
<!-- 注册UserMapper --> <mappers> <!-- resource指文件路径 --> <mapper resource="com/viewts/mapper/UserMapper.xml"></mapper> </mappers>
7.调用MyBatis的原生接口
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>*.xml</include> <include>*.properties</include> </includes> </resource> </resources> </build>
这里先处理一个细节,由于我们的mapper文件不是定义在resources目录下的,因此需要修改配置文件,**表示当前目录及其子目录。
然后新建测试类:
public class AppTest { @Test public void test01() { InputStream inputStream = AppTest.class.getClassLoader().getResourceAsStream("config.xml"); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); String statement = "com.viewts.mapper.UserMapper.insertUser"; User user = new User(233L, "viewts", "111111"); sqlSession.insert(statement, user); sqlSession.commit(); } }
8.运行,可以看到数据库表中插入了一条新纪录。