1. Mybatis框架部署
1.1创建maven项目
1.2 在项目中添加mybatis依赖
https://mvnrepository.com/
在pom.xml中添加依赖
把别人的包导入进来,就可以使用别人包里面的类了
<dependencies>
<!-- Mybatis核心 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.3</version>
</dependency>
</dependencies>
刷新一下,第一个
1.3 创建MyBatis的核心配置文件
习惯上命名为mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求。将来整合Spring
之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
制作模板,这样以后就可以直接激活模板
<?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=""/>
<property name="url" value=""/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
- 在resources中创建此xml
- 在mybatis-config.xml文件配置数据库连接信息
2.Mybatis框架使用
2.1创建数据表
记得在你对应的数据库(不要弄错了名字)创建表
create table tb_students(
sid int primary key auto_increment,
stu_num char(5) not null unique,
stu_name varchar(20) not null,
stu_gender char(2) not null,
stu_age int not null
);
2.2创建实体类student.java
创建必备的两个文件。在pojo文件下,建造student类,信息与数据库表中信息一致
导入lombok依赖,简化我们操作(记得把插件也装了)
@Getter / @Setter
这个不用多说了吧
@ToString
帮助生成toString,还有一些细节参数可供设置
@EqualsAndHashCode
帮助重写equals和hashCode
@NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor
帮助生成构造函数
@Data
生成@ToString @EqualsAndHashCode @Getter @RequiredArgsConstructor以及非final字段的@Setter
不用的话就要自己一个个生成实现方法
2.3 创建DAO接口,定义操作方法
2.4创建DAO接口的映射文件
- 在resources目录下,新建名为mappers的文件夹
- 在mappers中新建名为StudentMapper的xml映射文件(根据模板创建)
第一次可以点这个,然后复制粘贴
也可以直接new 模板
<?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="">
</mapper>
mapper文件相当于DAO接口的实现类,namespace属性指定实现DAO接口的全限定名(报名+类名)
使用mybatisX插件即可直接alt+enter接口中的方法,xml就会出现对应的映射
然后在里面填入sql语句
2.5 将映射文件配置到主配置文件(mybatis-config)
映射文件写完后,是需要添加到主配置文件的都在同一个包下,复制到mappers的source里面
3.单元测试
3.1添加单元测试依赖
<!-- junit测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
3.2 创建单元测试类
测试类
package com.can.dao;
import com.can.pojo.Student;
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;
/**
* @author: 14995
* @date: 2022/2/27 22:24
* @description:
*/
public class studentDAOTest {
@Test
public void insertStudent() {
try {
//加载mybatis配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//创建builder
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//会话工厂,连接工厂
SqlSessionFactory factory = builder.build(is);
//sqlsession 代表数据库的连接,也代表数据库的连接对象
//会话(连接)
SqlSession sqlSession = factory.openSession();
StudentDAO studentDAO = sqlSession.getMapper(StudentDAO.class);
// System.out.println(studentDAO);
int i = studentDAO.insertStudent(new Student(0,"10002","java少年","男",24));
//需要手动提交
sqlSession.commit();
System.out.println(i);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void deleteStudent() {
}
}
出现的问题
Unknown initial character set index ‘255’ received from server. Initial client character
解决方法
参考:https://www.bilibili.com/video/BV15Q4y1m78a?p=6