登录网址: http://start.spring.io/ 进行简单的设置,自动生成Springboot项目
org.projectlombok
lombok
org.slf4j
log4j-over-slf4j
com.oracle
ojdbc6
11.2.0.1.0
mysql
mysql-connector-java
runtime
com.mchange
c3p0
0.9.5.2
org.springframework.boot
spring-boot-devtools
org.springframework.boot
spring-boot-maven-plugin
true
maven-compiler-plugin
1.8
在resource目录下添加application-c3p0.xml文件,该文件是c3p0连接池的配置.如下:
#使用自定义的c3p0连接池配置:oracle
spring.datasource.c3p0.driverClass=oracle.jdbc.driver.OracleDriver
spring.datasource.c3p0.jdbcUrl=jdbc:oracle:thin:@172.117.45.13:1521:oratest
spring.datasource.c3p0.user=root
spring.datasource.c3p0.password=best
#MySQL
#spring.datasource.c3p0.driverClass=com.mysql.jdbc.Driver
#spring.datasource.c3p0.jdbcUrl=jdbc:mysql://localhost:3306/springboot
#spring.datasource.c3p0.user=root
#spring.datasource.c3p0.password=mlsama
#spring.datasource.c3p0.maxPoolSize=30
#spring.datasource.c3p0.minPoolSize=10
#spring.datasource.c3p0.initialPoolSize=10
##连接池大小管理
##初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default:3(规范值:20,可根据系统链路总体性能进行更改)
spring.datasource.c3p0.initialPoolSize=5
##连接池中保留的最小连接数。Default:3(规范值:20,可根据系统链路总体性能进行更改)
spring.datasource.c3p0.minPoolSize=5
##连接池中保留的最大连接数。Default:15(规范值:100~500之间,可根据系统链路总体性能进行更改)
spring.datasource.c3p0.maxPoolSize=10
##当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default:3(规范值:5,无特殊情况不建议修改)
spring.datasource.c3p0.acquireIncrement=5
##重连接相关规范
##从数据库获取新连接失败后重复尝试的次数。Default:30
spring.datasource.c3p0.acquireRetryAttempts=30
##两次连接中间隔时间,单位毫秒。Default:1000
spring.datasource.c3p0.acquireRetryDelay=1000
##当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒。Default:0(不建议此配置使用)
#spring.datasource.c3p0.checkoutTimeout=0
##连接池的大小和连接的生存时间管理规范
##连接的最大空闲时间,单位秒,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接。如果为0,则永远不会断开连接,即回收此连接。Default:0(规范值:120,无特殊情况不建议修改)
spring.datasource.c3p0.maxIdleTime=120
##配置连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃掉。当然正在使用的连接不会马上断开,而是等待 它close再断开。配置为0的时候则不会对连接的生存时间进行限制。(规范值:0,除非使用其他类型数据库)
spring.datasource.c3p0.maxConnectionAge=0
##配置PreparedStatement缓存规范
##连接池为数据源缓存的PreparedStatement的总数。default: 0
spring.datasource.c3p0.maxStatements=100
##定义了连接池内单个连接所拥有的最大缓存statements数。Default:0(规范值:5,无特殊情况不建议修改)
spring.datasource.c3p0.maxStatementsPerConnection=5
##配置连接测试
##SQL检测语句。Default:null
spring.datasource.c3p0.preferredTestQuery=SELECT SYSDATE FROM DUAL
##用来配置测试空闲连接的间隔时间,单位秒。测试方式还是上面的两种之一,因为它保证连接池会每隔一定时间对空闲连接进行一次测试,从而保证有效的空闲连接能每隔一定时间访问一次数据库,为0则不测试。Default:0
spring.datasource.c3p0.idleConnectionTestPeriod=120
##c3p0是异步操作的,缓慢的JDBC操作通过进程完成。扩展这些操作可以有效的提升性能通过多线程实现多个操作同时被执行。Default:3
spring.datasource.c3p0.numHelperThreads=3
在application.properties文件中添加如下内容:
#修改端口
server.port=8888
#导入application-c3p0.properties文件,按application-xxxx.properties格式起名,导入时只要写xxxx就好
spring.profiles.active=c3p0
#mybaties配置 导入文件需要 classpath:
#类型别名扫描基础包
mybatis.typeAliasesPackage=com.mlsama.springbootoracle.pojo
#SQL语句映射文件
mybatis.mapperLocations=classpath:mappers/**/*Mapper.xml
#核心配置文件
mybatis.configLocation=classpath:mybatis-config.xml
#springMVC的配置
#视图前缀
spring.mvc.view.prefix=/html/
#视图后缀
spring.mvc.view.suffix=.html
在resource目录下创建这个文件,这是mybatis全局配置文件,进行一些全局属性的配置
在主包下创建包config并创建类DataSourceConfiguration,具体如下:
/**
* 自定义数据源: c3p0
*
* @author mlsama
* @version Id: DataSourceConfiguration.java, v 0.1 2018/7/24 15:32 Tisson Exp $$
*/
@Configuration //声明为配置类,相当于标签
public class DataSourceConfiguration {
@Bean(name = "dataSource") //对象及名称,相当于标签
@Primary //主要的候选者
//配置属性,prefix : 前缀 spring.datasource固定
@ConfigurationProperties(prefix = "spring.datasource.c3p0")
public DataSource createDataSource(){
return DataSourceBuilder.create() // 创建数据源构建对象
.type(ComboPooledDataSource.class) // 设置数据源类型
.build(); // 构建数据源对象
}
}
启动类不需要修改也可以运行,但是运行时会打印多余的日记,可以手动设置关闭.
// 代表为SpringBoot应用的运行主类,默认扫描该类所在包下的所有包
@SpringBootApplication(scanBasePackages = {"com.mlsama.springbootoracle"})
//@ImportResource(locations = {"classpath:application.xml","xxxx"}) //引入配置文件,是个数组,可引入多个
public class SpringbootOracleApplication {
public static void main(String[] args) {
/** 创建SpringApplication应用对象 */
SpringApplication springApplication =
new SpringApplication(SpringbootOracleApplication.class);
/** 设置横幅模式(设置关闭) */
springApplication.setBannerMode(Banner.Mode.OFF);
/** 运行 */
springApplication.run(args);
}
}
@Data
public class Deallog {
/** 系统流水号 */
private String logSeq;
/** 消息码 */
private String mti;
/** 交易处理码 */
private String tradeCode;
/** 主账号 */
private String account;
/** 交易金额 */
private String amount;
/** 交易日期 YYYYMMDD */
private String tradeDate;
/** 交易时间 hhmmss*/
private String tradeTime;
/** 外系统流水号 */
private String extSeq;
}
@Controller
@RequestMapping("/deallog")
public class DeallogController {
//引入manager
@Autowired
private DeallogManager deallogManager;
/**
* 显示查询结果
* @return json格式的数据
*/
@GetMapping("/showDeallogs") //路径
@ResponseBody //json格式
public List showDeallogs(){
return deallogManager.queryDeallogs();
}
}
@Service
public class DeallogManager {
//注入api
@Autowired
private DeallogService deallogService;
@Transactional(readOnly = false)
public List queryDeallogs(){
return deallogService.findDeallogs();
}
}
API :
public interface DeallogService {
List findDeallogs();
}
service :
@Service
public class DeallogServiceImpl implements DeallogService {
//注入mapper接口
@Autowired
private DeallogMapper deallogMapper;
@Override
public List findDeallogs() {
return deallogMapper.findDeallogs();
}
}
@Mapper //注明是mapper接口
public interface DeallogMapper {
List findDeallogs();
}
至此,一个简单的web项目已经完成.总的结构如下:
运行启动类,访问: http://127.0.0.1:8888/deallog/showDeallogs
至此,基础的Springboot项目已经完成,可以进行业务功能的开发了.