springboot学习(三):使用c3p0连接池集成mybatis及mybatis自动代码生成插件

#说明
springboot集成mybatis和使用c3p0连接池,当初学习时过程还是比较艰难的,以翟永超的博客为基础,再找各种资料博客进行学习,还有在学习mybatis自动代码生成插件时,遇到的问题也不少,今天在这里进行回顾总结下。
#正文
构建springboot项目,添加依赖mybatis和mysql-connector-java,start.spring.io在构建也不支持c3p0的自动添加,需要到maven资源库找c3p0的依赖。这里同样放到本地的tomcat中运行,添加web依赖。使用自动插件,要在pom.xml中添加插件

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!--c3p0-->
		<dependency>
			<groupId>com.mchange</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.5.2</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<!--mybatis generator 自动生成代码-->
	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
				<filtering>false</filtering>
			</resource>
		</resources>

		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.2</version>
				<configuration>
					<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
					<overwrite>true</overwrite>
					<verbose>true</verbose>
				</configuration>
			</plugin>
		</plugins>
	</build>

创建好项目后,需要对c3p0和mybatis进行配置,首先在application.properties文件中配置mysql

c3p0.datasource.driverClass=com.mysql.jdbc.Driver
c3p0.datasource.jdbcUrl=jdbc:mysql://localhost:3306/springboot
c3p0.datasource.user=root
c3p0.datasource.password=123
c3p0.datasource.minPoolSize=3
c3p0.datasource.maxPoolSize=100
c3p0.datasource.initialPoolSize=3

##DataSourceConfig

@Configuration
public class DataSourceConfig {

    @ConfigurationProperties(prefix = "c3p0.datasource")
    @Primary
    @Bean(name = "dataSource")
    public DataSource dataSource(){
        return DataSourceBuilder.create().type(com.mchange.v2.c3p0.ComboPooledDataSource.class).build();
    }
}

##MybatisConfig

@Configuration
@MapperScan(basePackages = {"com.example.mybatis.dao"})
public class MybatisConfig {

    @Autowired
    private DataSource dataSource;

    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactoryBean sqlSessionFactory(ApplicationContext applicationContext) throws IOException {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setTypeAliasesPackage("com.example.mybatis.bean");
        Resource[] resources = new PathMatchingResourcePatternResolver()
                .getResources("classpath*:com/example/mybatis/mapper/*Mapper.xml");
        sessionFactory.setMapperLocations(resources);

        return sessionFactory;
    }
}

配置好c3p0和mybatis后,需要对插件进行配置,创建generatorConfig.xml
更详细的配置请见:http://www.mybatis.org/generator/configreference/xmlconfig.html

<?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="./src/main/resources/lib/mysql-connector-java-5.1.25-bin.jar"></classPathEntry>
    <context id="DB2Tables" targetRuntime="Mybatis3">
        <commentGenerator>
            <!--是否不生成注释 默认为false 当不指定时也会生成注释,true不生成  true时所有代码合并将不能使用-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/springboot"
                        userId="root"
                        password="123"
        />
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--实体类生成的包名和位置-->
        <javaModelGenerator targetPackage="com.example.mybatis.bean" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--映射文件生成的包名和位置-->
        <sqlMapGenerator targetPackage="com.example.mybatis.mapper"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!--DAO生成的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mybatis.dao"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="t_teacher" domainObjectName="Teacher" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
        <!--<table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
    </context>
</generatorConfiguration>

配置好后需要在maven的插件中执行,也可以创建maven执行快捷方式
这里写图片描述
这里写图片描述
这里写图片描述

源码地址:https://github.com/Edenwds/springboot_study/tree/master/mybatis

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值