Spring Boot整合MyBatis

1.基础环境搭建
实现Spring Boot与数据访问层框架的整合,主要是引入对应的依赖启动器和数据库的相关参数设置。
(1) 数据准备
在MySQL中创建一个新的数据库,在新建的数据库中新建两个表,并预先插入几条测试数据。
示例:

# 创建数据库
CREATE DATABASE springbootdata;
# 选择使用数据库
USE springbootdata;
# 创建表t_article并插入相关数据
DROP TABLE IF EXISTS `t_article`;
CREATE TABLE `t_article` (
  `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '文章id',
  `title` varchar(200) DEFAULT NULL COMMENT '文章标题',
  `content` longtext COMMENT '文章内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
INSERT INTO `t_article` VALUES ('1', 'Spring Boot基础入门', '从入门到精通讲解...');
INSERT INTO `t_article` VALUES ('2', 'Spring Cloud基础入门', '从入门到精通讲解...');
# 创建表t_comment并插入相关数据
DROP TABLE IF EXISTS `t_comment`;
CREATE TABLE `t_comment` (
  `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '评论id',
  `content` longtext COMMENT '评论内容',
  `author` varchar(200) DEFAULT NULL COMMENT '评论作者',
  `a_id` int(20) DEFAULT NULL COMMENT '关联的文章id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `t_comment` VALUES ('1', '很全、很详细', '狂奔的蜗牛', '1');
INSERT INTO `t_comment` VALUES ('2', '赞一个', 'tom', '1');
INSERT INTO `t_comment` VALUES ('3', '很详细', 'kitty', '1');
INSERT INTO `t_comment` VALUES ('4', '很好,非常详细', '张三', '1');
INSERT INTO `t_comment` VALUES ('5', '很不错', '张杨', '2');

(2) 创建项目,引入相应启动器
创建一个名为chapter03_blog的项目,并在Dependencies依赖中选择MySQL和MyBatis的依赖。并根据自己的需要修改依赖的版本。
编写数据库表对应的实体类,在项目中新建一个com.example.domain包,在包中新建两个实体类Comment和Article
(3) 编写配置文件
在application.properties配置文件中,进行数据库连接配置。然后在pom.xml中添加druid数据源的依赖启动器。
需要说明的是,上述配置的druid的依赖启动器内部已经初始化了部分运行参数,如果需要修改,要在全局配置文件中进行配置。
配置完成后可以在测试类中编写一个测试方法测试数据库连接是否成功。
示例:

	@Resource
    private DataSource druidDataSourse;
    @Test
    public void DbsContent()
    {
        System.out.println(druidDataSourse);
    }

2.使用注解的方式整合MyBatis
(1) 创建Mapper接口文件。在项目中新建一个com.example.mapper的包,在包下新建一个对数据库表t_comment数据操作的接口CommentMapper

@Mapper
public interface CommentMapper {
    @Select("SELECT * FROM t_comment WHERE id=#{id}")
    public Comment findById(int id);
    @Insert("INSERT INTO t_comment(content,author,a_id)" +
            "values (#{content},#{author},#{aId})")
    public int insertComment(Comment comment);
    @Update("UPDATE t_comment SET CONTENT=#{content} WHERE id=#{id}")
    public int updateComment(Comment comment);
    @Delete("DELETE FROM t_comment WHERE id=#{id}")
    public int deleteComment(Comment comment);

在测试类中编写单元测试进行接口方法测试。

    @Resource
    private CommentMapper commentMapper;
    @Test
    public void selectComment()
    {
        Comment comment = commentMapper.findById(1);
        System.out.println(comment);
    }

执行测试方法selectComment(),控制台的输出结果如下
在这里插入图片描述
控制台中查询的Comment的aId属性为null,没有映射成功。这是因为编写的实体类Comment中使用了驼峰命名方式将t_comment表中的a_id字段设计成了aId属性,所以无法正确映射查询结果。可以在全局配置文件中添加开启驼峰命名匹配映射配置,mybatis.configuration.map-underscore-to-camel-case=true来解决这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值