SpringBoot框架整合MyBatis

添加 MyBatis 启动依赖

参考官网mybatis.org/spring,找到Spring Boot菜单选项.基于菜单项找到MyBatis启动依赖,一定要设置版本,Spring Boot 中没有设置 MyBatis 的版本(否则pom.xml文件会报错)


     org.mybatis.spring.boot
     mybatis-spring-boot-starter
     2.2.1

 我们添加了 MyBatis 依赖以后,Spring 框架启动时会对 MyBatis 进行自动配置。例如 SqlSessionFactory 工厂对象的创建。

Mybatis 简易配置

在application.properties中对MyBatis进行配置

其中#log的内容是日志

配置 MyBatis 中的 sql 日志的输出:(com.cy 为我们写的项目的根包)

spring.datasource.url=jdbc:mysql:///dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

mybatis.configuration.default-statement-timeout=30
mybatis.configuration.map-underscore-to-camel-case=true

#log
logging.level.com.cy=debug

MySql脚本

drop database if exists dbgoods;
create database dbgoods default character set utf8;
use dbgoods;
create table tb_goods(
     id bigint primary key auto_increment,
     name varchar(100) not null,
     remark text,
     createdTime datetime not null
)engine=InnoDB;
insert into tb_goods values (null,'java','very good',now());
insert into tb_goods values (null,'mysql','RDBMS',now());
insert into tb_goods values (null,'Oracle','RDBMS',now());
insert into tb_goods values (null,'java','very good',now());
insert into tb_goods values (null,'mysql','RDBMS',now());
insert into tb_goods values (null,'Oracle','RDBMS',now());
insert into tb_goods values (null,'java','very good',now());
insert into tb_goods values (null,'mysql','RDBMS',now());
insert into tb_goods values (null,'Oracle','RDBMS',now());
insert into tb_goods values (null,'java','very good',now());
insert into tb_goods values (null,'mysql','RDBMS',now());
insert into tb_goods values (null,'Oracle','RDBMS',now());

定义商品业务数据层接口及业务方法

package com.cy.pj.goods.dao;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;

/**
 * DAO:数据访问对象
 * GoodsDao:商品表对应的数据访问对象
 * @Mapper 注解用于描述数据层接口,由MyBatis框架定义,通过此注解描述的接口,
 * 系统底层会为其创建实现类,并且会创建其实现类对象,然后交由Spring管理
 */
@Mapper
public interface GoodsDao {
	/**
	 * 基于id执行商品数据的删除操作
	 * @param id
	 * @return 删除的行数
	 */
	@Delete("delete from tb_goods where id = #{id}")
	int deleteById(Integer id);
}

其中:@Mapper 是由 MyBatis 框架中定义的一个描述数据层接口的的注解(所有的注解只起到一个描述性的作用),用于告诉 Spring 框架此接口的实现由 MyBatis 创建,并将其实现类对象存储到 Spring 容器.

定义测试类,对 GoodsDao 对象进行应用测试

@SpringBootTest
public class GoodsDaoTests {    
   @Autowired
   private GoodsDao goodsDao;//实现类从哪里来

        @Test
        public void testDeleteById() {
                int rows=goodsDao.deleteById(10);
                System.out.println("rows="+rows);
        }
}

 

你可能感兴趣的:(java学习,Spring,数据库,spring,boot,java,spring)