java - spring boot 引入 mybatis

1. 无配置文件注解版

在引入 mybatis 之前,确保 spring boot 能正常使用

  • 1.添加依赖
<!-- Spring Boot Mybatis 依赖 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot}</version>
</dependency>
<!-- MySQL 连接驱动依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>${mysql-connector}</version>
</dependency>
    1. 在 application.properties 文件中配置数据库
## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/endorse
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  • 3.定义和使用 sql 语句构建 dao
@Mapper
@Repository
public interface BannerDao  {

    @Select("SELECT * FROM banner")
    List<Banner> findBanner(); // Banner 只是个简单的 domain 省略代码

}
  • 4.在 controller 中使用
@RestController
public class BannerController {

    @Autowired
    BannerDao bannerDao;

    @RequestMapping(value = "/banner", method = RequestMethod.GET)
    public List<Banner> getBannerInfo() {
        List<Banner> banner = bannerDao.findBanner();
        System.out.println(banner);
        return banner;
    }

}
Paste_Image.png

在 dao 中不加 @Repository 在类名上会报如下错误,加上就可以了

Paste_Image.png

具体原因可以看 这里

2. 极简 xml 版本

    1. 首先在 .properties 文件中指定配置
    mybatis.config-locations=classpath:mybatis/mybatis-config.xml
    mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
    mybatis.type-aliases-package=com.xiaocai.endorse.domain
    
image.png
    1. 设置基本配置
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
          "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <typeAliases>
            <typeAlias alias="Integer" type="java.lang.Integer" />
            <typeAlias alias="Long" type="java.lang.Long" />
            <typeAlias alias="HashMap" type="java.util.HashMap" />
            <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
            <typeAlias alias="ArrayList" type="java.util.ArrayList" />
            <typeAlias alias="LinkedList" type="java.util.LinkedList" />
        </typeAliases>
    </configuration>
    
image.png
    1. 添加映射文件
      这里就举个最简单的例子:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.xiaocai.endorse.dao.UserMapper">
    
    
        <insert id="insert" parameterType="com.xiaocai.endorse.domain.UserEntity">
            INSERT INTO
            users
            (phone,userName,PASSWORD,userSex)
            VALUES
            (#{phone},#{userName}, #{passWord}, #{userSex})
        </insert>
    
    
    </mapper>
    
    image.png
    1. 在对应的 java 类中
    @Repository
    public interface UserMapper {
        Long insert(UserEntity user);
    }
    
image.png

需要注意方法名要与 mapper 中的 id 一样。

    1. 在 Controller 中使用
    @RestController
    public class UserController {
    
        @Autowired
        UserMapper userMapper;
    
        @RequestMapping("/insertUser")
        public String insertUser(UserEntity userEntity) {
            Long insert = userMapper.insert(userEntity);
    
            if (insert != null && insert > 0) {
                return JsonHelper.success(insert);
            } else {
                return JsonHelper.error(1, "插入失败");
            }
        }
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,948评论 2 8
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,664评论 0 4
  • Java数据持久化之mybatis 一. mybatis简介 1.1 原始的JDBC操作: Java 通过 Jav...
    小Q逛逛阅读 4,965评论 0 16
  • Spring 技术笔记Day 1 预热知识一、 基本术语Blob类型,二进制对象Object Graph:对象图...
    OchardBird阅读 1,004评论 0 2
  • MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、...
    七寸知架构阅读 6,740评论 6 56