目录
①首先我们要在application.properties文件中进行MyBatis的配置:
②我们要根据需要操作的数据库创建对应的类,同时构建Setter()、Getter()、toString()、有参和无参构造等方法。以类User为例:
一、SpringBoot中安装MyBatis:
我们可以在创建SpringBoot工程的时候增加选择两个依赖即可:
安装完成后就可以在pom文件中找到如下依赖:
这就证明可以开始使用MyBatis了。
二、MyBatis的简单使用:
①首先我们要在application.properties文件中进行MyBatis的配置:
需要注意的是,我们要根据操作的数据库进行配置,如ip地址(localhost)、数据库名称(Mybatis)、密码(123456)。
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123456
②我们要根据需要操作的数据库创建对应的类,同时构建Setter()、Getter()、toString()、有参和无参构造等方法。以类User为例:
文件目录:
完整User类代码:
package com.myproject.mybatis.pojo;
public class User {
private Integer id;
private String name;
private Short age;
private Short gender;
private String phone;
public User() {
}
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;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender=" + gender +
", phone='" + phone + '\'' +
'}';
}
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;
}
}
数据库代码:
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,'小王',55,'1','18800000000');
insert into user(id, name, age, gender, phone) VALUES (null,'小金',45,'1','18800000001');
insert into user(id, name, age, gender, phone) VALUES (null,'小青',38,'1','18800000002');
insert into user(id, name, age, gender, phone) VALUES (null,'小紫',42,'2','18800000003');
insert into user(id, name, age, gender, phone) VALUES (null,'小左',37,'1','18800000004');
insert into user(id, name, age, gender, phone) VALUES (null,'小右',48,'1','18800000005');
③构建mapperUser接口(具体文件位置见上文):
完整代码:(重点关注@Mapper的使用!!!!)
package com.myproject.mybatis.Mapper;
import com.myproject.mybatis.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper //运行时自动生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理
public interface mapperUser {
//填写需要的SQL语句:
@Select("select * from user")
public List<User> user();
}
④在测试类中进行运行测试:
完整代码:
package com.myproject.mybatis;
import com.myproject.mybatis.Mapper.mapperUser;
import com.myproject.mybatis.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
class MyBatisApplicationTests {
@Autowired // 依赖注入!!!!相当于实例化接口
private mapperUser mapper;
@Test
public void SqlTest(){
// 构建一个可以装获取到数据的List
List<User> userList = mapper.user();
// 遍历输出
userList.stream().forEach(user ->{
System.out.println(user);
});
}
}
三、运行时报错:
具体原因并不能完全确定,但可以通过以下方式尝试
1、依赖注入时:
使用 @Autowired(required=false).。
2、注意每个文件上方的package位置是否与目录对应。只能放在启动类及其子类目录中
3、配置数据库时,数据库使用、密码设置、ip设置、密码设置是否正确。
4、在pom中调整Mybatis的版本为2.3.1。
目前也只能搜集到上述解决方案。