您的位置:首页 > 编程语言 > Java开发

springboot 系统学习3 mybatis

2017-10-22 18:36 183 查看
本文主要讲一下springboot 集成mybatis的一些步骤

后天默认有两个数据库哦

首先贴一下配置文件

druid:
type: com.alibaba.druid.pool.DruidDataSource
smaug:
driver-class-name: com.mysql.cj.jdbc.Driver
initial-size: 10
min-idle: 1
max-active: 10
test-on-borrow: true
demo:
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&allowMultiQueries=true&useSSL=false
username: root
password: 123456
article:
url: jdbc:mysql://localhost:3306/xiaoyun?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&allowMultiQueries=true&useSSL=false
username: root
password: 123456


数据库配置类

先写一个集成父类

package smaug.cloud.provider.dbConfig;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
* Created by naonao on 17/10/15.
*/
@Configuration
public class DbConfigConst {

@Value("${druid.smaug.driver-class-name}")
public String driverClassName = "com.mysql.cj.jdbc.Driver";

@Value("${druid.smaug.initial-size}")
public int initialSize;

@Value("${druid.smaug.min-idle}")
public int minIdle;

@Value("${druid.smaug.max-active}")
public int maxActive;

@Value("${druid.smaug.test-on-borrow}")
public boolean testOnBorrow;

/**
* demo 数据库
*/
@Value("${druid.smaug.demo.url}")
public String demoUrl;

@Value("${druid.smaug.demo.username}")
public String demoUsername;

@Value("${druid.smaug.demo.password}")
public String demoPassword;

/**
*
*/
@Value("${druid.smaug.article.url}")
public String articleUrl;

@Value("${druid.smaug.article.username}")
public String articleUsername;

@Value("${druid.smaug.article.password}")
public String articlePassword;

}


package smaug.cloud.provider.dbConfig;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;

/**
* Created by naonao on 17/8/5.
*/
@Configuration
@MapperScan(basePackages = ArticleDBConfig.MAPPER_PACKAGE, sqlSessionFactoryRef = "articleSqlSessionFactory")
public class ArticleDBConfig extends DbConfigConst{

/**
* mapper 地址
*/
public static final String MAPPER_PACKAGE = "smaug.cloud.provider.mapper.article";

public static final String XML_PACKAGE = "classpath:mybatis/article/*.xml";

@Bean(name = "articleDBSource")
@Primary
public DataSource articleDBSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(articleUrl);
dataSource.setUsername(articleUsername);
dataSource.setPassword(articlePassword);
dataSource.setEnable(true);
dataSource.setMaxActive(1000);
return dataSource;
}

@Bean(name = "articleTransactionManager")
@Primary
public DataSourceTransactionManager articleTransactionManager() {
return new DataSourceTransactionManager(articleDBSource());
}

@Bean(name = "articleSqlSessionFactory")
@Primary
public SqlSessio
4000
nFactory articleSqlSessionFactory(@Qualifier("articleDBSource") DataSource articleDBSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(articleDBSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(ArticleDBConfig.XML_PACKAGE));
return sessionFactory.getObject();
}
}


package smaug.cloud.provider.dbConfig;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import javax.sql.DataSource;

/**
* Created by naonao on 17/7/16.
*/
@Configuration
@MapperScan(basePackages = UserDBConfig.MAPPER_PACKAGE, sqlSessionFactoryRef = "demoSqlSessionFactory")
public class UserDBConfig extends DbConfigConst {
/**
* mybatis 实体类
*/
public static final String MAPPER_PACKAGE = "smaug.cloud.provider.mappers.demo";

/**
* sql xml
*/
public static final String MAPPER_LOCATION = "classpath:mybatis/demo/*.xml";

@Bean(name = "demoDBSource")
public DataSource demoDBSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(demoUrl);
dataSource.setUsername(demoUsername);
dataSource.setPassword(demoPassword);
dataSource.setEnable(true);
dataSource.setMaxActive(1000);
return dataSource;
}

@Bean(name = "demoTransactionManager")
public DataSourceTransactionManager demoTransactionManager() {
return new DataSourceTransactionManager(demoDBSource());
}

@Bean(name = "demoSqlSessionFactory")
public SqlSessionFactory demoSqlSessionFactory(@Qualifier("demoDBSource") DataSource demoDBSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(demoDBSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(UserDBConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}


然后贴上 mybatis自动生成的代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--数据库驱动-->
<classPathEntry
location="/Users/cindy/.gradle/caches/modules-2/files-2.1/mysql/mysql-connector-java/5.1.35/b6ac941b7288376a7e8bc6490264bbd4427fb94e/mysql-connector-java-5.1.35.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/xiaoyun?useUnicode=true&useSSL=false&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&allowMultiQueries=true"
userId="root" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="smaug.cloud.data.entity.article" targetProject="../../../../src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->

<sqlMapGenerator targetPackage="../../mybatis/article" targetProject="../../resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="smaug.cloud.data.mapper.article"
targetProject="../../../../src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>

<!--生成对应表及类名-->
<table tableName="article" domainObjectName="ArticleEntity"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false">
<generatedKey column="D_ID" sqlStatement="MYSQL" identity="true"/>
<columnRenamingRule searchString="^D_" replaceString=""/>
</table>
</context>
</generatorConfiguration>


好了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: