SpringBoot:整合MyBatis ---- 18

ssss如果想学好一门技术,当然要去看官方文档。myBatis-starter 配置分析是:myBatis官方文档
在这里插入图片描述

整合MyBatis

myBatis-starter 配置分析

sdsdsss引入starter:

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>

sdsdsddsddsdsdsds在这里插入图片描述
ssss①、自动配置分析
ssdsdsdsdsdsdsdsdsdss在这里插入图片描述
sdsdsss分析1:myBatis自动配置前所需的组件:

@Configuration
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})	//自动配置了 SqlSessionFactory
@ConditionalOnSingleCandidate(DataSource.class)				// 容器中有且仅有一个数据源
@EnableConfigurationProperties({MybatisProperties.class}) // 绑定配置项 @ConfigurationProperties(prefix = "mybatis")
@AutoConfigureAfter({DataSourceAutoConfiguration.class, MybatisLanguageDriverAutoConfiguration.class})
public class MybatisAutoConfiguration implements InitializingBean {

sdsdsss分析2:myBatis自动配置了 SqlSessionTemplate,SqlSessionTemplate 继承了 SqlSession
sdsdss在这里插入图片描述
sdsdsdsdsddsdsdss在这里插入图片描述
sdsdsss分析3:@Import(AutoConfiguredMapperScannerRegistrar.class) .通过这个类我们可以直到,只要我们写的操作MyBatis的接口标注了 @Mapper 就会被自动扫描进来
sdssdsddss在这里插入图片描述
在这里插入图片描述

纯配置模式的myBatis使用:

ssss①、创建接口和所需操作的表对应的类 ssssdsd在这里插入图片描述sdsdsdss在这里插入图片描述
ssdsdsddsddsdsdsdsss在这里插入图片描述

@Mapper
public interface   AdminMapper { public Admin getAcct(Long id);  //操作方法}
===================================================================================
@Data
public class Admin {
    private Long id;
    private String username;
    private String password;
}

ssss②、创建全局配置文件和sql映射文件
ssdsdsddsdsdsdddsdsdsdsdsdss在这里插入图片描述

<?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>

</configuration>
================================================================================================================
<?xml version="1.0" encoding="UTF-8" ?>				//sql映射文件
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.webadmin.mapper.AdminMapper">
    <!--    public Admin getAcct(Long id); -->
    <select id="getAcct" resultType="com.atguigu.webadmin.bean.Admin">
        select * from  admin where  id=#{id}
    </select>
</mapper>

ssss③、创建Service层调用DAO和Controller层测试在这里插入图片描述sdsss在这里插入图片描述

@Service
public class AdminService {
    @Autowired
    AdminMapper adminMapper;

    public Admin getAcctById(Long id){
        return adminMapper.getAcct(id);
    }
}
===============================================================================================
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Autowired
    AdminService adminService;

    @ResponseBody
    @GetMapping("/admin")
    public Admin getById(@RequestParam("id") Long id){
        return adminService.getAcctById(id);
    }

ssss④、以上都是传统myBatis操作步骤,现在需要结合SpringBoot:

#配置ybatis规则
mybatis:
  config-location: classpath:mybatis/mybatis-config.xml    #xml  全局配置文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml  #sql映射文件位置

ssss⑤、测试发送:http://localhost:8080/admin?id=1,结果显示:在这里插入图片描述

sdsdsss【注】:通过SpringBoot配置文件修改全局配置(推荐使用):

sdsddssss配置 mybatis.configuration下面的所有,就是相当于改mybatis全局配置文件中的值

sdsddssss通过SpringBoot配置文件修改全局配置就不用再单独创建mybatis的全局配置文件mybatis-config.xml:

#配置ybatis规则
mybatis:
#  config-location: classpath:mybatis/mybatis-config.xml    #xml  全局配置文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml  #sql映射文件位置
  
  # 指定mybatis全局配置文件中的相关配置
  configuration:
    map-underscore-to-camel-case: true

纯注解模式

ssssLet’s create a MyBatis Spring Boot Application quickly using the SPRING INITIALIZR.
ssd在这里插入图片描述
ssss代码实现:

@Mapper
public interface CityMapper {
    @Select("select * from city where id=#{id}")
    public City getById(Long id);
    @Insert(" insert into city (`name`,`state`,`country`) values(#{name}, # {state }, #{country})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    public void insert(City city);
}

ssss混合模式:
sssdsdsdsdss①、简单方法直接注解方式ssss②、复杂方法编写mapper.xml进行绑定映射

myBatis的最佳使用:

ssss①、引入mybatis-starter

ssss②、配置application.yaml中,指定mapper-location位置即可

ssss③、编写Mapper接口并标注@Mapper注解

ssss④、简单方法直接注解方式

ssss⑤、复杂方法编写 xxxxmapper.xml 进行绑定映射

sdss【注】:在主配置类上添加@MapperScan(“com.njupt.admin.mapper”) 简化,其他的接口就可以不用标注@Mapper 注解

@MapperScan("com.atguigu.webadmin.mapper") 
@SpringBootApplication 
public class Boot06MybatisApplication { 
	public static void main(String[] args) { 
		SpringApplication.run(Boot06MybatisApplication.class, args); 
	} 
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值