-
新建Springboot项目
-
添加部分依赖
-
idea中配置maven
-
可删除部分无用文件(个人爱好)
-
当前目录结构图(可将application.properties重命名为application.yml,idea快捷键为shift+F6重命名)
-
pom.xml中加入数据库连接池druid
-
application.yml中配置数据库信息(此时可以启动项目,检验是否成功启动)
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://填写IP:3306/填写database?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: 填写密码xxx
- idea连接数据库,方便直接生成pojo表
- idea中选择数据库的表,右键生成pojo类
- idea的settings勾选此行,用于pojo类生成id
- pojo类实现序列化Serializable接口,并快捷键生成serialVersionUID
- pojo类加上三个注解(可省略写部分方法)
- 新建mapper类
- resources中新建mapper文件夹,新建*mapper.xml文件
<?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.ab.mapper.StudentMapper">
<!--select
id:与StudentMapper接口中的方法名保持一致
resultType: 结果类型(在application.xml中配置别名)
-->
<select id="selectAllStudent" resultType="student">
select *
from student
</select>
<!--insert
parameterType: 参数类型
useGeneratedKeys: 使用生成的密钥(true/false)
数据库字段和pojo类变量要进行驼峰命名, 蛇形命名转换 在application.yml中mybatis下配置
-->
<insert id="insertStudent" parameterType="student" keyProperty="id" keyColumn="id" useGeneratedKeys="true">
INSERT INTO student (id, auth_text, cid, first_name, id_card, last_name, mobile, uuid)
VALUES (#{student.id}, #{student.authText}, #{student.cid}, #{student.firstName},
#{student.idCard}, #{student.lastName}, #{student.mobile}, #{student.uuid})
</insert>
<!--update-->
<update id="updateStudent" keyColumn="id" keyProperty="id" parameterType="student" useGeneratedKeys="true">
update student set mobile = #{student.mobile}, first_name = #{student.firstName} where id = #{student.id}
</update>
<!--delete-->
<delete id="deleteStudent" parameterType="java.lang.Long">
delete from student where id = #{id}
</delete>
</mapper>
- application.yml中加入mybatis部分配置
mybatis:
type-aliases-package: com.ab.pojo # 此处配置别名
mapper-locations: classpath:mapper/*Mapper.xml # xml路径
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台sql运行的log打印
map-underscore-to-camel-case: true # 开启下划线(蛇形)命名转驼峰命名
- 新建@MybatisTest测试类,用于增、删、改、查 (也可以用@SpringBootTest 来测试。)
@ExtendWith(SpringExtension.class) // SpringExtension 将 Spring TestContext Framework 集成到 JUnit 5 的 Jupiter 编程模型中。要使用此扩展
@MybatisTest // mybatis测试注解: pom.xml中需要mybatis-spring-boot-starter-test依赖
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
// 可以应用于测试类以配置要使用的测试数据库而不是应用程序定义或自动配置的 DataSource 的注释。
public class StudentMapperTest {
@Autowired
private StudentMapper studentMapper;
// 1. select
@Test
public void selectAllStudent() {
List<Student> students = studentMapper.selectAllStudent();
students.forEach(student -> System.out.println(student.getId() + ":" + student.getFirstName()));
}
// 2. insert
@Test
@Rollback(value = false) // 回滚
public void insertStudent() {
Student student = new Student();
int i = 1;
// for (int i = 0; i < 5; i++) {
student.setAuthText("123");
Random random = new Random();
Integer i1 = random.nextInt(10);
student.setCid(i1.longValue());
student.setFirstName("tom" + (i + 1));
student.setLastName("cat" + (i + 1));
int i2 = random.nextInt(10);
int i3 = random.nextInt(10);
int i4 = random.nextInt(10);
student.setIdCard("1234567890123" + i4 + i1 + i2 + i3 + i);
student.setMobile("123456" + i4 + i1 + i2 + i3 + i);
student.setUuid(UUID.randomUUID().toString());
// insert student
studentMapper.insertStudent(student);
// }
}
// 3. 改
@Test
@Rollback(value = false)
public void updateStudent() {
Student student = new Student();
student.setId(3L);
student.setMobile("0123456789");
student.setFirstName("姓氏");
studentMapper.updateStudent(student);
}
// 4. 删
@Test
@Rollback(value = false)
public void deleteStudent() {
Long id = 2L;
studentMapper.deleteStudent(id);
}
}
感谢观看哟!!!
先写到这里啦,溜溜球了,哈哈哈!