Springboot Mybatis 整合步骤

俗话说的好,开具一张图,代码都是拷,首先来介绍一下项目目录结构:

 

 

springboot 和 mybatis整合,

大致分为一下几个步骤

  1.     配置数据源, 由于本项目采用的是yml文件配置的,所以话不多说,请直接看下图所示
server:
  port: 8002
spring:
  datasource:
#    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mongo?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8&serverTimezone=UTC
    username: root
    password: 123456

 

driverClassName:这个为代码驱动类名,老版本的为:com.mysql.jdbc.Driver,由于我用的是较为新版本的驱动,这里可以不填写,springboot会自动帮你注入到项目中去,最好还是写一下,新版的为:com.mysql.cj.jdbc.Driver

url:数据库连接的地址,serverTimezone=UTC这里重点说一下,这个配置,其他的请自行配置,这里加上这个是因为我们mysql默认安装时是按照美国时间装的,国内的不加上的话,会报时区错误。

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1558) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1623) at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2468)

user:数据库用户名

password:用户密码,这里特别说明一下,yml文件配置的时候,如果密码带有冒号":"时,你得用单引号将密码包围,免得yml格式报错,yml文件默认冒号后面,是需要添加一个空格符的。

引入mybatisjar包。maven的pom文件中添加mybatis必须要的依赖文件

<!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>

上面的第一步基础环境配置好了,接下来,就简单介绍两种,springboot 配置mybatis的思路,随各人爱好,任君取舍。

第一种,编写一个MybatisConfig.class

 

package com.louis.mango.config; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; /** * Mybatis配置 * @author Louis * @date Jan 11, 2019 */ @Configuration @MapperScan("com.louis.mango.dao.**") // 扫描DAO public class MybatisConfig { @Autowired //自动加载数据源 private DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); sessionFactory.setTypeAliasesPackage("com.louis.mango.model.**"); // 扫描Model PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sessionFactory.setMapperLocations(resolver.getResources("classpath*:**/sqlmap/*.xml")); // 扫描映射文件 return sessionFactory.getObject(); } }

在启动类里面添加扫描model层的数据

 

第二种 通过直接在yml文件中去添加mybatis配置,个人更倾向这种,毕竟程序员是为了,简化我们的操作,创造出提升效率的工具,当然我们本着一个能偷懒就偷懒的原则,深知底层原理,简化操作。

server:
  port: 8002
spring:
  datasource:
#    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mongo?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8&serverTimezone=UTC
    username: root
    password: 123456
 ## 该配置节点为独立的节点,有很多同学容易将这个配置放在spring的节点下,导致配置无法被识别
        mybatis:
          mapper-locations: classpath:mapper/*.xml  #注意:一定要对应mapper映射xml文件的所在路径
          type-aliases-package: com.louis.mango.model  # 注意:对应实体类的路径

 

第二也得在启动类里面取添加对应的扫描实体类文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值