`
fred_张浩
  • 浏览: 32189 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

小码农的代码(一)----------SpringJDBC的使用

阅读更多
今年年初遇到一个对接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对于事务的控制,具体内容会在后续文章中补充说明。
0
1
分享到:
评论

相关推荐

    小码农的代码(三)----------SpringJDBC多数据源应用

    在本篇博客“小码农的代码(三)----------SpringJDBC多数据源应用”中,博主探讨了如何在Spring框架中实现对多个数据库的数据源切换。SpringJDBC是Spring框架的一部分,它提供了对Java Database Connectivity (JDBC...

    小码农的代码(二)----------SpringJDBC事务控制

    本篇文章我们将深入探讨Spring JDBC事务控制,这是Spring框架中处理数据持久化的一个关键特性。Spring JDBC提供了对数据库事务的高级封装,使得开发者能够方便、高效地管理事务,而无需过多关注底层实现细节。 首先...

    springboot整合sharding-jdbc完整代码

    1. **依赖添加**:在`pom.xml`中引入SpringBoot和Sharding-JDBC的相关依赖,包括`spring-boot-starter-jdbc`和`sharding-jdbc-spring-boot-starter`。 2. **配置ShardingRule**:在`application.properties`或`...

    小码农的代码(四)----------JAVA中Timer定时器与Spring定时任务

    在Java编程语言中,`Timer`...在本压缩包文件中,虽然没有具体代码,但提及了Spring JDBC,这通常用于数据库操作。在使用Spring定时任务时,结合Spring JDBC,可以定时执行数据库的读写操作,如数据同步、报表生成等。

    shardingJdbc功能代码

    它作为一个JDBC驱动,可以在不修改任何业务代码的情况下,直接插入到原有数据库访问层。这使得ShardingJDBC易于集成到现有的项目中。 **5. 分片策略** 在ShardingJDBC中,分片策略是核心组件之一。开发者可以自定义...

    Spring jar包最新

    9. **spring-jdbc-5.0.6.RELEASE.jar**:Spring JDBC模块简化了数据库操作,提供了一套抽象层,使得开发者无需直接处理JDBC API。它包括了事务管理、数据库连接池集成以及SQL语句的执行和结果映射。 10. **spring-...

    springboot整合clickhouse代码

    ClickHouse是一个高性能的列式数据库管理系统(Column-Oriented DBMS),专为在线分析处理(OLAP)设计,而Spring Boot是Java领域广泛使用的微服务开发框架,它简化了配置和应用启动流程。 首先,让我们了解Spring ...

    ssm学子商城资源文件-java

    【SSM学子商城资源文件-java】是一个针对初学者的项目,旨在帮助他们理解和掌握JavaEE开发中的SSM(Spring、SpringMVC、MyBatis)框架。该项目作为毕业设计的界面设计实例,提供了完整的源代码,是学习SSM集成开发的...

    springboot整合lucence完整代码

    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框架开发企业级应用第一章全部

    总结来说,"使用SSM框架开发企业级应用第一章"涵盖了Spring、SpringMVC和MyBatis的基础知识,包括框架的配置、数据库操作、业务逻辑处理、视图渲染和事务管理等内容。学习并掌握这些技能,对于成为一名合格的后端...

    Spring 4.X 企业应用 + Spring Boot 实战

    《Spring 4.X 企业应用 + Spring Boot 实战》是一本深入探讨Spring框架与Spring Boot在实际企业级项目中的应用的书籍。这本书旨在帮助开发者掌握这两个核心Java技术,提升他们在现代软件开发中的效率和能力。 ...

    springboot适配多数据源,多类型数据库代码

    在现代企业级应用开发中,数据源的多样性是常见的需求,比如使用MySQL处理关系型数据,而使用PostgreSQL处理JSONB等非结构化数据。Spring Boot作为Java领域中流行的微服务框架,提供了强大的数据源管理和数据库适配...

    牛客网Java专项50题详解

    - `synchronized`关键字用于实现线程同步,确保同一时间只有一个线程能访问特定代码块或对象。 - 异步关键字通常指的是在多线程或并发环境中非阻塞式的执行方式,与`synchronized`相对,它不阻塞其他线程。 以上...

    mybites-Jar

    10. **注解配置**: MyBatis还支持使用注解来代替XML配置,使得代码更加简洁,易于理解和维护。 通过mybites-jar包,开发者可以方便地将业务逻辑和数据访问层分离,降低系统的耦合度,提高代码的可读性和可维护性。...

    基于ssm+mysql的杏种质资源管理系统系统设计与实现.docx

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 在"杏...

    一般java管理系统的数据库课程设计报告模板

    这些框架将数据库操作转换为面向对象的代码,降低了直接使用JDBC的复杂性。 4. **MVC架构**:Model-View-Controller架构是Java Web开发的常见模式。Model代表业务逻辑,View负责展示数据,Controller处理用户请求。...

    SSM简单三级联动代码示例

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 在实现...

    JAVA网上购物系统

    在本系统中,开发者可能使用了Spring Boot框架来构建后端服务,它简化了配置并提供了丰富的依赖注入,使得项目开发更加高效。此外,MVC(Model-View-Controller)设计模式也可能被用于组织代码结构,将业务逻辑、...

Global site tag (gtag.js) - Google Analytics