目录
1 目录结构
2 全局配置文件
2.1 application.properties(resources下,自动生成)
2.2 mybatis-config.xml(resources下,手动创建)
2.3 config文件夹(java包下,手动创建)
2.3.1 mapper文件夹
2.3.2 service文件夹
3 代码流程
3.1 第一步:Entity层
3.2 第二步:Dao层
3.3 第三步:Mapper配置文件
3.4 第四部:测试Dao层类
3.4 第五步:service层
3.5 第六步:controller层
4 运行效果
1 目录结构
注意:
1)Java包下的子文件夹需要手动创建
2)resources下的mapper文件夹和mybatis-config.xml文件需要手动创建。
2 全局配置文件
全局配置文件主要包括数据库配置、服务端口配置、事务配置等。
2.1 application.properties(resources下,自动生成)
application.properties是全局配置文件,通过修改此文件可以实现自定义配置,如端口、根路径等。
本模板仅配置数据源配置,配置如下:
#DataSource #数据库驱动(高版本mysql配置) jdbc.driver=com.mysql.cj.jdbc.Driver #数据库链接(高版本mysql配置) jdbc.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT #数据库用户名 jdbc.username=root #数据库密码 jdbc.password=1234 #Mybatis mybatis_config_file=mybatis-config.xml mapper_path=/mapper/**.xml # 要与包名一致 type_alias_package=com.example.demo.entity
2.2 mybatis-config.xml(resources下,手动创建)
此文件需要手动创建。名称可以自定义,需要与application.properties中一致。
配置如下:
<?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> <!-- 配置全局属性 --> <settings> <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 --> <setting name="useGeneratedKeys" value="true" /> <!-- 使用列标签替换列别名 默认:true --> <setting name="useColumnLabel" value="true" /> <!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} --> <setting name="mapUnderscoreToCamelCase" value="true" /> </settings> </configuration>
2.3 config文件夹(java包下,手动创建)
本项目中,config文件夹下包含两个子文件夹mapper和service
2.3.1 mapper文件夹
mapper文件夹中为数据源的相关配置,主要实现全局配置文件Application.properties中的配置生效。
1)DataSourceConfiguration(数据配置类)
代码如下:
package com.example.demo.config.mapper;
import java.beans.PropertyVetoException;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 配置datasource到ioc容器里面
*
* @author xiangze
*
*/
@Configuration
// 配置mybatis mapper的扫描路径
@MapperScan("com.example.demo.dao")
public class DataSourceConfiguration {
@Value("${jdbc.driver}")
private String jdbcDriver;
@Value("${jdbc.url}")
private String jdbcUrl;
@Value("${jdbc.username}")
private String jdbcUsername;
@Value("${jdbc.password}")
private String jdbcPassword;
/**
* 生成与spring-dao.xml对应的bean dataSource
*
* @return
* @throws PropertyVetoException
*/
@Bean(name = "dataSource")
public ComboPooledDataSource createDataSource() throws PropertyVetoException {
// 生成datasource实例
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 跟配置文件一样设置以下信息
// 驱动
dataSource.setDriverClass(jdbcDriver);
// 数据库连接URL
dataSource.setJdbcUrl(jdbcUrl);
// 设置用户名
dataSource.setUser(jdbcUsername);
// 设置用户密码
dataSource.setPassword(jdbcPassword);
// 配置c3p0连接池的私有属性
// 连接池最大线程数
dataSource.setMaxPoolSize(30);
// 连接池最小线程数
dataSource.setMinPoolSize(10);
// 关闭连接后不自动commit
dataSource.setAutoCommitOnClose(false);
// 连接超时时间
dataSource.setCheckoutTimeout(10000);
// 连接失败重试次数
dataSource.setAcquireRetryAttempts(2);
return dataSource;
}
}