Spring Boot 与 mybatis配置方法

网友投稿 281 2023-05-09


Spring Boot 与 mybatis配置方法

1.首先,spring boot 配置mybatis需要的全部依赖如下:

org.springframework.boot

spring-boot-starter-parent

1.5.1.RELEASE

org.springframework.boot

spring-boot-starter-web

1.5.1.RELEASE

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.2.0

com.oracle

ojdbc6

11.2.0.4.0-atlassian-hosted&lhttp://t;/version>

这里主要说一下上边的数据库驱动包,oracle和mysql引入不同的依赖,千万不要忘记。如果忘记引入,会报找不到驱动类异常。

2.然后,在application.properties 配置文件里添加如下内容:

##数据库连接信息

spring.datasource.url=jdbc:oracle:thin:@//192.168.1.171:1521/orcl

spring.datasource.username=znxd

spring.datasource.password=znxd

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

##指向mapper的xml文件位置

mybatis.mapper-locations=classpath:mapper/*Mapper.xml

上边以spring.datasource 开头的内容其实有很多,具体,在application.properties 文件里输入后看看能点出的内容就知道了qYHicGAXhX。

springboot默认会把spring.datasource开头的信息收纳,进行DataSource对象的配置,进而进行sqlSessionFactory的配置等相关数据库连接的配置,所以其他很多人会说写什么配置类,那些我感觉没有必要的。(配置druid需要配一个@Bean,下一篇会说到)

当然如果是特别详细的qYHicGAXhX,而在application.properties文件里又通过spring.datasource 点不出相关的配置,那可能需要配置类什么的。

mybatis.mapper-locations 所指向的位置是从src/main/resource开始的,前边需要加上classpath,它指向的是你的mapper.xml文件放置的位置。

3.我是mybatis通过数据库表逆向工程生成的实体类、mapper等,先把项目具体的放置结构贴出来如下:

对于上图的解释如下:

启动类必须放在项目中相对其他类的最高处,前边文章说过,spring boot没有传统的spring 项目配置的 标签,它扫描bean的方式就是从启动类依次向下扫描进默认的内置tomcat容器的。

上图service放置的位置比其实现类放置的位置高,如果有两个service A和B,实现类里有Aimpl和Bimpl,如果有Aimpl调用B的情况,有可能会在启动容器报“a field named ‘B' not found”貌似这种错误,说明容器扫描顺序有误。

这种情况的最好的解决办法,就应该像我将service放在高处,容器启动先扫描进service,然后再扫描impl,这样在实现类扫描的时候就肯定能找到service,也就不会出现这种错误了。

另一种解决办法是在引入service时多添加一个注解:@Lazy

@Autowired

@Lazy //这样就会延迟加载,上图不需要,这里只是解释这注解

LogsUserActiveMapper logsUserActiveMapper;

总之,如果出现调用与被调用关系,一定要记得,被调用者要首先被扫描进spring boot内置容器,也就是被调用者的包位置要放的较高一些(位置至少也待相平)。

3.service实现类上需要加一个@Service 注解。这个可能不需要,我一直没有试试。

4.spring boot+mybatis除了这些要求,还需要在启动类处添加一个注解@MapperScan,如下:

package cloud.kafka;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication

@EnableTransactionManagement //如果mybatis中service实现类中加入事务注解,需要此处添加该注解

@MapperScan("cloud.kaqYHicGAXhXfka.mapper") //扫描的是mapper.xml中namespace指向值的包位置

public class KafkaLogApplication {

public static void main(String[] args){

SpringApplication.run(KafkaLogApplication.class, args);

}

}

如下是我的mapper.xml里namespace的值

这样就完成mybatis的配置了,下一篇会说spring boot+mybatis事务配置、druid配置、分页插件配置。

以上所述是给大家介绍的Spring Boot 与 mybatis配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue中保存用户登录状态实例代码
下一篇:java二维码生成的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~