在yml文件中添加数据库的相关数据,也就是之前spring创建工厂所需的datasource,写上本地数据库的相关数据。
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC
username: root
password: 123456
创建一个Book类来封装数据库里面的数据,创建getset方法,和重写tostring方法
public class Book {
private Integer id;
private String type;
private String name;
private String description;
@Override
public String toString() {
return "Book{" +
"id=" + id +
", type='" + type + '\'' +
", name='" + name + '\'' +
", description='" + description + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
在创建一个dao层来添加一些方法,本次实验就添加了一个根据id查数据的方法,并且要在dao层的接口上添加@Mapper来让spring扫描到并知道这是一个dao层。
@Mapper
public interface BookDao {
@Select("select * from tbl_book where id = #{id}")
public Book getById(Integer id);
}
再在测试类中自动注入Dao层接口,并且调用里面的getById方法查询数据库中的数据:
@SpringBootTest
class SpringBoot0202MybatisApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.getById(2));
}
}
查询结果如图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/47a3cf6e31cd5d03ddef33d45b9d2e0a.png)
第二种调用Mybatis plus 来连接数据库
首先要导入mybatis的依赖坐标版本根据自己相关依赖选择:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
我们重新创建了一个springnboot模块,复制了上一个模块的框架,保留了dao层以及封装的实体类,但是跟mybatis不一样的是在dao层的接口中不需要自己添加方法只需要继承BaseMapper<Book>(这里的Book还是之前我们创建的封装实体类)
@Mapper
public interface BookDao extends BaseMapper<Book> {
}
再去测试类中调用dao层接口,调用方法的时候就会发现,mybatis plus已经帮我们写好了方法,我们直接能拿来调用。
@SpringBootTest
class SpringBoot0203MybatisPlusApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void contextLoads() {
System.out.println(bookDao.selectById(2));
}
}
测试结果发现存在报错Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'db1.book' doesn't exist:
![](https://i-blog.csdnimg.cn/blog_migrate/254efad47ca8dbfc4933afbf20365480.png)
这个报错原因就是mybatis自动帮我们映射了,但是映射的表名是book但是我们在自己的数据库的表名跟这个自动映射的不一样,所以我们要将映射的改为我们自己数据库的表明,这里可以在yml里面配置(这里映射的为book,但是本地表明为tbl_book所以我们添加一个前缀就可以,这样映射的数据表名前面都会添加tbl_):
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
再次测试是否成功查询,查询成功:
![](https://i-blog.csdnimg.cn/blog_migrate/0cf832e32bdaeaa444fc10b066f135db.png)
总结:
mybatis plus是我们国人大牛开发的巨好用的框架,多学习一下里面的内容,使用起来非常方便。