今年年初遇到一个对接ERP与WMS的项目,只做后端数据同步,不进行页面展示,简而言之就是我们接收ERP http请求传送过来的数据然后转存到自己的数据库并将数据同步到WMS系统的数据库中,(ps:我也比较奇怪为什么不直接用http请求进行对接,而来中间再转存一次)。由于项目较小又不需要前端展示就直接只用SpringJDBC进行数据库操作,项目涉及的内容包括http请求接口的开发、多数据库操作,本文先拉出来整理下SpringJDBC的直接使用。
SpringJDBC的使用目前来看非常简单,主要就是三个步骤。
一、maven加载所需要的jar包;
一、Spring配置文件进行数据源与jdbctemple的配置;
二、直接在数据访问层使用。
以下是spring配置文件的内容:<!-- 引入属性文件 -->
<context:property-placeholder location="classpath:config.properties" />
<!-- 自动扫描dao和service包( 自动注入) -->
<context:component-scan base-package="com.zh.demo" />
<!-- 数据连接池C3P0 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.jdbcUrl}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
这里的注意点在于spring的数据源配置,不直接使用DriverManagerDataSource的原因是由于其没有实现连接池的机制,因此使用C3P0,这时需要加载c3p0的支持JAR包;
另外在数据访问层进行数据操作时如下:
public class BaseDaoImpl implements BaseDao{
@Autowired
private JdbcTemplate jdbcTemplate;
/**
* sql = "insert into user (name,age) values(?,?)"
* */
public void addBySql(String sql,final Object[] params) {
//--------------methods01------------------------------------//
jdbcTemplate.execute(sql);
//-----------------or methods02------------------------------//
//just like updateBySql
}
/**
* sql = “update table_name set name=?,age=?”
* */
public void updateBySql(String sql,final Object[] params) {
//--------------methods01------------------------------------//
jdbcTemplate.update(sql,
new PreparedStatementSetter() {
public void setValues(PreparedStatement ps)
throws SQLException {
ps.setInt(1, Integer.parseInt(params[0].toString()));
}
});
//-----------------or methods02------------------------------//
//jdbcTemplate.update(sql, params);
}
/**
* sql = "delete user where id =? and name = ?;"
* */
public void deleteBySql(String sql,final Object[] params) {
//----------just like update---------------//
jdbcTemplate.update(sql, params);
}
/**
* RowMapper接口封装返回集合,可自定义
* */
public List<UserEntity> getQueryBySql(String sql) {
return (List<UserEntity>) jdbcTemplate.query(sql,
new BeanPropertyRowMapper<UserEntity>(UserEntity.class));
}
}
因为Spring配置文件中已经配置,可以直接依赖注入jdbcTemplate;
另外也可以继承JdbcDaoSupport类,来使用jdbcTemplate,
public class BaseDaoImpl2 extends JdbcDaoSupport implements BaseDao{
public void addBySql(String sql,final Object[] params) {
this.getJdbcTemplate().update(sql);
}
}
。
这两个类进一步论证一个接口可以有多个实现类,谁实例化则调用哪个实现类中的方法。
具体的代码例子与测试文件可以下载附件参考,欢迎大家斧正。
另外对于jdbcTemplate的事务控制就是使用Spring对于事务的控制,具体内容会在后续文章中补充说明。
分享到:
相关推荐
在本篇博客“小码农的代码(三)----------SpringJDBC多数据源应用”中,博主探讨了如何在Spring框架中实现对多个数据库的数据源切换。SpringJDBC是Spring框架的一部分,它提供了对Java Database Connectivity (JDBC...
本篇文章我们将深入探讨Spring JDBC事务控制,这是Spring框架中处理数据持久化的一个关键特性。Spring JDBC提供了对数据库事务的高级封装,使得开发者能够方便、高效地管理事务,而无需过多关注底层实现细节。 首先...
1. **依赖添加**:在`pom.xml`中引入SpringBoot和Sharding-JDBC的相关依赖,包括`spring-boot-starter-jdbc`和`sharding-jdbc-spring-boot-starter`。 2. **配置ShardingRule**:在`application.properties`或`...
在Java编程语言中,`Timer`...在本压缩包文件中,虽然没有具体代码,但提及了Spring JDBC,这通常用于数据库操作。在使用Spring定时任务时,结合Spring JDBC,可以定时执行数据库的读写操作,如数据同步、报表生成等。
它作为一个JDBC驱动,可以在不修改任何业务代码的情况下,直接插入到原有数据库访问层。这使得ShardingJDBC易于集成到现有的项目中。 **5. 分片策略** 在ShardingJDBC中,分片策略是核心组件之一。开发者可以自定义...
9. **spring-jdbc-5.0.6.RELEASE.jar**:Spring JDBC模块简化了数据库操作,提供了一套抽象层,使得开发者无需直接处理JDBC API。它包括了事务管理、数据库连接池集成以及SQL语句的执行和结果映射。 10. **spring-...
ClickHouse是一个高性能的列式数据库管理系统(Column-Oriented DBMS),专为在线分析处理(OLAP)设计,而Spring Boot是Java领域广泛使用的微服务开发框架,它简化了配置和应用启动流程。 首先,让我们了解Spring ...
【SSM学子商城资源文件-java】是一个针对初学者的项目,旨在帮助他们理解和掌握JavaEE开发中的SSM(Spring、SpringMVC、MyBatis)框架。该项目作为毕业设计的界面设计实例,提供了完整的源代码,是学习SSM集成开发的...
spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=root spring.jpa.hibernate.ddl-auto=update spring.data.jpa.repositories.base-package=...
总结来说,"使用SSM框架开发企业级应用第一章"涵盖了Spring、SpringMVC和MyBatis的基础知识,包括框架的配置、数据库操作、业务逻辑处理、视图渲染和事务管理等内容。学习并掌握这些技能,对于成为一名合格的后端...
《Spring 4.X 企业应用 + Spring Boot 实战》是一本深入探讨Spring框架与Spring Boot在实际企业级项目中的应用的书籍。这本书旨在帮助开发者掌握这两个核心Java技术,提升他们在现代软件开发中的效率和能力。 ...
在现代企业级应用开发中,数据源的多样性是常见的需求,比如使用MySQL处理关系型数据,而使用PostgreSQL处理JSONB等非结构化数据。Spring Boot作为Java领域中流行的微服务框架,提供了强大的数据源管理和数据库适配...
- `synchronized`关键字用于实现线程同步,确保同一时间只有一个线程能访问特定代码块或对象。 - 异步关键字通常指的是在多线程或并发环境中非阻塞式的执行方式,与`synchronized`相对,它不阻塞其他线程。 以上...
10. **注解配置**: MyBatis还支持使用注解来代替XML配置,使得代码更加简洁,易于理解和维护。 通过mybites-jar包,开发者可以方便地将业务逻辑和数据访问层分离,降低系统的耦合度,提高代码的可读性和可维护性。...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 在"杏...
这些框架将数据库操作转换为面向对象的代码,降低了直接使用JDBC的复杂性。 4. **MVC架构**:Model-View-Controller架构是Java Web开发的常见模式。Model代表业务逻辑,View负责展示数据,Controller处理用户请求。...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 在实现...
在本系统中,开发者可能使用了Spring Boot框架来构建后端服务,它简化了配置并提供了丰富的依赖注入,使得项目开发更加高效。此外,MVC(Model-View-Controller)设计模式也可能被用于组织代码结构,将业务逻辑、...