目录
一、创建springboot工程并引入mybatis相关依赖
1.这里是这个项目,如有需要可点击此链接:idea创建springboot工程,并引入mybatis依赖
2.让项目更简洁
3.最终目录
二、准备一个数据库和要查询的表
1.数据库和user表
2.sql语句
三、创建实体类
1.创建包pojo,和实体类User
2.声明属性
3.get、set方法、构造器、tostring方法(快捷键生成)
4.代码:User.java
四、配置mybatis(数据库连接信息)
1.找到工程自带的文件(application.properties)
2.配置数据库连接信息
3.代码:application.properties
五、编写sql语句(注解、xml)
1.创建接口mapper
2.将sql语句写到注解中
六、测试
1.打开工程生成的测试文件
2.编写测试方法
3.运行测试方法
4.查看控制台
一、创建springboot工程并引入mybatis相关依赖
1.这里是这个项目,如有需要可点击此链接:idea创建springboot工程,并引入mybatis依赖
2.让项目更简洁
3.最终目录
二、准备一个数据库和要查询的表
这里使用的idea中自带的数据库图形化工具,如有需要可查看此链接:
idea中数据库图形化工具的使用
1.数据库和user表
2.sql语句
create table user(
id int unsigned primary key auto_increment comment 'ID',
name varchar(100) comment '姓名',
age tinyint unsigned comment '年龄',
gender tinyint unsigned comment '性别, 1:男, 2:女',
phone varchar(11) comment '手机号'
) comment '用户表';
insert into user(id, name, age, gender, phone) VALUES (null,'喜羊羊',5,'1','13000000000');
insert into user(id, name, age, gender, phone) VALUES (null,'美羊羊',4,'2','13000000001');
insert into user(id, name, age, gender, phone) VALUES (null,'懒羊羊',3,'1','13000000002');
insert into user(id, name, age, gender, phone) VALUES (null,'暖羊羊',6,'2','13000000003');
insert into user(id, name, age, gender, phone) VALUES (null,'沸羊羊',7,'1','13000000004');
insert into user(id, name, age, gender, phone) VALUES (null,'慢羊羊',13,'1','13000000005');
三、创建实体类
1.创建包pojo,和实体类User
2.声明属性
User实体类中的属性和数据库中的字段一 一对应
3.get、set方法、构造器、tostring方法(快捷键生成)
4.代码:User.java
package com.example.springbootmybatisdemo.pojo;
/**
* User实体类
*/
public class User {
private Integer id; //id
private String name; //姓名
private Short age; //年龄
private Short gender; //性别
private String phone; //电话
//有参构造
public User(Integer id, String name, Short age, Short gender, String phone) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
}
//无参构造
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Short getAge() {
return age;
}
public void setAge(Short age) {
this.age = age;
}
public Short getGender() {
return gender;
}
public void setGender(Short gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
//toString方法
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender=" + gender +
", phone='" + phone + '\'' +
'}';
}
}
四、配置mybatis(数据库连接信息)
1.找到工程自带的文件(application.properties)
2.配置数据库连接信息
3.代码:application.properties
#配置数据库连接信息------四要素
#1.驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#2.数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#3.连接数据库的用户名
spring.datasource.username=root
#4.连接数据库的密码
spring.datasource.password=123456
五、编写sql语句(注解、xml)
1.创建接口mapper
2.将sql语句写到注解中
代码:UserMapper.interface
package com.example.springbootmybatisdemo.mapper;
import com.example.springbootmybatisdemo.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
//加上注解代表当前是mybatis当中的一个Mapper接口
//在运行时,会自动生成该接口的实现类对象(动态代理对象),并且框架会将该对象交给IOC容器管理
@Mapper
public interface UserMapper {
/**
* 需要在接口中定义方法:
* 1.因为接口中的这个方法要给别人调用,所有用public修饰方法
* 2.查询的用户有很多个,每条记录会封装为一个用户对象,因为有多条记录,所以封装到一个List集合中,所以返回值类型是List
* 3.集合中的泛型就是封装的一个个User对象
* 4.定义方法名:list
* 5.在方法名上加上注解:因为是查询操作,所以是select注解
* 6.Select注解的value属性中指定要查询的sql语句:"select * from User"
*/
/**
* 查询全部用户信息
*/
@Select("select * from User")
public List<User> list();
}
六、测试
1.打开工程生成的测试文件
2.编写测试方法
package com.example.springbootmybatisdemo;
import com.example.springbootmybatisdemo.mapper.UserMapper;
import com.example.springbootmybatisdemo.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest //springboot整合单元测试的注解
class SpringbootMybatisDemoApplicationTests {
@Autowired //依赖注入
private UserMapper userMapper;
/**
* 查询全部用户信息
*/
@Test
public void selectAllList(){
/**
* 1.在selectAllList方法中调用UserMapper中的list()方法,查询全部用户信息
* 2.因为UserMapper是一个接口,不能直接创建接口的对象,但是在UserMapper接口中加上了@Mapper注解,
* 会生成代理对象,并交给ioc容器管理,因此它会成为容器中的一个bean对象,我们可以不创建对象而通过依赖注入的方式使用接口中的方法
* 3.要使用容器中的bean对象,可以通过依赖注入的方式将bean对象注入
* 4.怎么注入:需要在测试类中声明一个UserMapper类型的对象,再加上@Autowired注解完成依赖注入
*/
//5.完成依赖注入后,就可以直接通过userMapper调用UserMapper接口中的list方法,来查询用户的所有信息
//6.将返回值(List<User>)交给一个List集合保存
List<User> userList = userMapper.list();
//7.遍历输出userList集合中的每个User对象
//拿到集合userList,通过stream流将集合变成流,调用forEach方法输出集合中的User对象
userList.stream().forEach(user -> {
System.out.println(user);
});
}
}
3.运行测试方法
4.查看控制台
其他:虽然能运行成功,但是我好像出了点问题,先保留
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended