Mybatis官方中文文档地址:mybatis – MyBatis 3 | 简介
导入依赖
下面配置导入依赖
代码语言:javascript复制<?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>mybatis</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>mybatis1</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!--数据库连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
Mybatis核心配置文件
命名:习惯命名为 mybatis-config.xml(习惯命名,非强制) 位置:resources文件夹下
加粗代表文件,正常代表文件夹
- main
- java.com.mlzx.
- entity
- User
- mapper
- UserMapper
- entity
- recources
- mappers
- UserMapper.xml
- mybatis-config.xml
- mappers
- java.com.mlzx.
先放Mybaits核心配置文件。
代码语言:javascript复制<!-- 声明xml的版本号和编码类型-->
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 设置mybatis约束 -->
<!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"/> //事务管理器,类型JDBC
<dataSource type="POOLED"> //数据源,pooled表示数据库连接池
<property name="driver" value="com.mysql.jdbc.Driver"/> //驱动名称
//链接地址
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
//数据库账号和密码(按实际情况来)
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 引入映射文件-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
创建数据库表
通过下面这个sql,创建一个数据库表 t_user
代码语言:javascript复制CREATE TABLE IF NOT EXISTS `t_user` (
`id` int(20) NOT NULL,
`username` varchar(30) DEFAULT NULL,
`password` varchar(30) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`email` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8;
创建实体类
通过反射实现实体类中属性和数据库中字段的对应。
在entity中创建了User实体类。(未添加get和set方法,请自行添加)
代码语言:javascript复制package com.mlzx.entity;
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
private String sex;
private String email;
}
添加Mapper
添加对应的mapper接口,作用类似于dao层的数据,主要是对数据库进行操作。
代码语言:javascript复制package com.mlzx.mapper;
public interface UserMapper {
//添加用户
int addUser();
}
添加实体类的配置
一个实体类,就有一个对应的xml配置文件与其对应。
例如上面实体类中对应的配置 文件,就是UserMapper.xml与之对应。
使用mybatis要注意两点 1:配置文件中namespace要和mapper接口的全类名一致。(com.mlzx.mapper.UserMapper)
2、配置文件中id要和实体类方法名一样。(addUser)
配置文件如下所示
代码语言:javascript复制<?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.mlzx.mapper.UserMapper">
<insert id="addUser">
insert into t_user value(1, 'admin', '12345', 23, '男','1234@qq.com')
</insert>
</mapper>
测试上面这个增加功能
在Test中写下面这个测试代码
代码语言:javascript复制package com.mlzx.mapper;
import com.mlzx.entity.User;
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 org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class UserMapperTest {
@Test
public void testAddUser() throws IOException {
//加载核心配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
//获取sqlsession,其中sqlSession代表Java程序和数据库之间的对话
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取mapper接口对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//测试功能,其中res代表的是受影响的行数
int res = userMapper.addUser();
//提交事务
sqlSession.commit();
System.out.println("result:" res);
}
}
实验效果如图
如果有什么问题,请在评论中告诉我。