一个Java小白的学习之路 个人博客 youngljx.top
Mybatis和Spring Boot的整合的两种方式
快速生成代码工具 EasyCode
1:使用 mybatis-spring-boot-starter
首先创建工程时自动导入整合依赖:
<!--mybatis提供的整合spring的jar包 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<!-- 数据库链接依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
1.1:无配置文件使用注解
application.properties 添加相关配置
mybatis.type-aliases-package=实体包全限名,设置别名
配置数据源
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username = root
spring.datasource.password =qwert
*(springboot会自动加载spring.datasource.相关配置,数据源就会自动注入到sqlSessionFactory中,
sqlSessionFactory会自动注入到Mapper中)
在启动类中添加对mapper包统一扫描@MapperScan(""),或者直接在各Mapper类上面添加注解@Mapper
*开发Mapper
public interface UserMapper {
/*
sql语句写法遵循数据库书写规则
@Select 是查询类的注解,所有的查询均使用这个
@Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
@Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值
@Update 负责修改,也可以直接传入对象
@Delete 负责删除
*/
@Select("SELECT * FROM users")
@Results({
@Result(property = "userSex", column = "user_sex", javaType = UserSexEnum.class),
@Result(property = "nickName", column = "nick_name")
})
List<UserEntity> getAll();
@Select("SELECT * FROM users WHERE id = #{id}")
@Results({
@Result(property = "userSex", column = "user_sex", javaType = UserSexEnum.class),
@Result(property = "nickName", column = "nick_name")
})
UserEntity getOne(Long id);
@Insert("INSERT INTO users(userName,passWord,user_sex) VALUES(#{userName}, #{passWord}, #{userSex})")
void insert(UserEntity user);
@Update("UPDATE users SET userName=#{userName},nick_name=#{nickName} WHERE id =#{id}")
void update(UserEntity user);
@Delete("DELETE FROM users WHERE id =#{id}")
void delete(Long id);
}
1.2极简xml版本
极简xml版本保持映射文件的老传统,优化主要体现在不需要实现dao的实现层,系统会自动根据方法名在映射文件中找对应的sql.
application.properties如下配置
#1:加载mybatis配置文件,相应的src/main/resources目录下应有对应文件夹
#指明mybatis基础配置文件和实体类映射文件的地址
mybatis.config-locations=classpath:mybatis/config/mybatisConfig.xml
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml
#设置别名
mybatis.type-aliases-package=demoApplication.entity
#2:配置数据源
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username = root
spring.datasource.password =qwert
指定目录下的映射文件写同mybatis之前写法
简单总结一下,未完待续。