package com.cm.main.dao.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import com.cm.main.dao.AbstractDao;
import com.cm.main.dao.TestJdbcTemplateDao;
import com.cm.main.bo.User;
public class TestJdbcTemplateDaoImpl extends AbstractDao implements
TestJdbcTemplateDao {
public void updateDescription(int id, String description) {
JdbcTemplate jt = new JdbcTemplate(getDataSource());
jt.update("update oa_test_1 set description = ? where id = ?", new Object[] {
description, new Integer(id) });
}
public int getCount() {
JdbcTemplate jt = new JdbcTemplate(getDataSource());
int count = jt.queryForInt("select count(*) from oa_test_1");
return count;
}
public String getDescription() {
JdbcTemplate jt = new JdbcTemplate(getDataSource());
String name = (String) jt.queryForObject(
"select description from oa_test_1 where id=1", String.class);
return name;
}
public List getTestList(int id) {
String sql = "select id, description from oa_test_1 where id = ?";
RowMapper mapper = new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setUserid(new Integer(rs.getInt("id")));
user.setUsername(rs.getString("description"));
return user;
}
};
JdbcTemplate jt = new JdbcTemplate(this.getDataSource());
return jt.query(sql, new Object[] { new Integer(id) }, mapper);
}
}
package com.cm.main.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.MappingSqlQuery;
import org.springframework.jdbc.object.SqlUpdate;
import com.cm.main.bo.User;
import com.cm.main.dao.AbstractDao;
import com.cm.main.dao.UserDao;
public class UserDaoImpl extends AbstractDao implements UserDao,
InitializingBean {
private UserInsert insert;
private UserUpdate update;
private UserDelete delete;
private UserMappingQuery query;
public void afterPropertiesSet() {
insert = new UserInsert(getDataSource());
update = new UserUpdate(getDataSource());
delete = new UserDelete(getDataSource());
query = new UserMappingQuery(getDataSource());
}
private class UserMappingQuery extends MappingSqlQuery {
public UserMappingQuery(DataSource ds) {
super(ds,
"select id,description from oa_test_1 where description=?");
super.declareParameter(new SqlParameter("description",
Types.VARCHAR));
compile();
}
public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {
User user = new User();
user.setUserid(new Integer(rs.getInt("id")));
user.setUsername(rs.getString("description"));
return user;
}
}
public class UserInsert extends SqlUpdate {
public UserInsert(DataSource ds) {
setDataSource(ds);
setSql("insert into oa_test_1(description) values(?)");
declareParameter(new SqlParameter(Types.VARCHAR));
compile();
}
public int insertUser(String description) {
Object[] params = new Object[] { new String(description) };
return update(params);
}
}
public class UserUpdate extends SqlUpdate {
public UserUpdate(DataSource ds) {
setDataSource(ds);
setSql("update oa_test_1 set description=? where id=?");
declareParameter(new SqlParameter(Types.VARCHAR));
declareParameter(new SqlParameter(Types.INTEGER));
compile();
}
public int updateUser(int id, String description) {
Object[] params = new Object[] { new String(description),
new Integer(id) };
return update(params);
}
}
public class UserDelete extends SqlUpdate {
public UserDelete(DataSource ds) {
setDataSource(ds);
setSql("delete from oa_test_1 where id=?");
declareParameter(new SqlParameter(Types.INTEGER));
compile();
}
public int deleteUser(int id) {
Object[] params = new Object[] { new Integer(id) };
return update(params);
}
}
public void insertTest() {
insert.insertUser("jdbc template");
}
public void updateTest() {
update.updateUser(218, "updated by jdbc template");
}
public void deleteTest() {
delete.deleteUser(217);
}
public List getUserList(String description) {
Object[] parms = new Object[1];
parms[0] = description;
return query.execute(parms);
}
}
分享到:
相关推荐
此外,还可以使用`JdbcPagingItemReader`作为Spring Batch的一部分来实现高效的分页读取。 5. **事务管理** SpringJdbcTemplate继承自`JdbcAccessor`,包含了事务管理的支持。它可以自动将数据库操作封装在事务中...
这个模板类封装了大部分与JDBC相关的低级细节,使开发者能够更专注于业务逻辑,而不是数据访问代码。 ### 创建(Create) 创建新记录通常涉及插入操作。使用`JdbcTemplate`,你可以通过调用`update()`方法来执行...
JdbcTemplate提供了丰富的API,可以满足大部分数据库操作需求,同时保持代码简洁和易于测试。在大型项目中,你还可以考虑使用Spring Data JPA或MyBatis等更高级的持久层框架,它们在JdbcTemplate的基础上提供了更多...
在本文中,我们将深入探讨Spring框架中的一个核心组件——JdbcTemplate。JdbcTemplate是Spring提供的一种数据库操作工具,它简化了数据库访问,使开发者...在实际项目中,JdbcTemplate是Spring开发中不可或缺的一部分。
JavaEE是企业级应用开发的重要框架,而Spring框架作为JavaEE的核心部分,提供了一系列的强大功能,其中JdbcTemplate是Spring提供的一个用于简化数据库操作的工具。本篇将详细讲解JdbcTemplate的简单示例,帮助开发者...
而JdbcTemplate作为Spring框架的一部分,旨在简化这些过程,提高代码的可读性和可维护性。 JdbcTemplate的使用通常涉及以下知识点: 1. **依赖注入**:Spring的核心特性之一,允许将数据库连接配置信息(如数据源...
通过使用JdbcTemplate,开发者可以避免大量的数据库连接管理代码,减少错误,并且能够更好地控制事务管理。 【注解】 在Java编程中,注解(Annotation)是一种元数据,可以提供有关代码的信息,但不会直接影响代码...
JdbcTemplate是Spring框架的一部分,专门用于简化数据库操作,提供了一种模板方法模式来处理SQL语句,使得代码更简洁、可读性更强,同时减少了对低级JDBC API的直接依赖。 SpringMVC与JdbcTemplate的集成是企业级...
通过使用`JdbcTemplate`,开发者可以避免编写大量重复的JDBC代码,同时减少数据库操作中的错误。 `JdbcTemplate`的泛型Dao实现是一种设计模式,目的是提高代码的可重用性和可维护性。通过定义一个泛型接口,我们...
通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文将深入探讨如何利用Spring JdbcTemplate进行CURD(Create、Read、Update、Delete)操作。 1. ...
《JdbcTemplate:Spring框架中...它的使用不仅减少了代码量,还提高了代码的可读性和可维护性,是Spring框架中不可或缺的一部分。通过掌握JdbcTemplate,开发者可以更高效地进行数据库交互,提升软件项目的质量和效率。
总之,JdbcTemplate是Spring提供的一种强大且易于使用的数据库访问工具,它减少了编写大量重复的JDBC代码,提高了开发效率。通过理解和熟练使用JdbcTemplate,你可以更好地进行数据库操作,并专注于业务逻辑的实现。
例如,上述部分给出的JDBC示例代码中,虽然完成了基本的数据库查询功能,但代码量较大,且错误处理部分复杂,尤其是try-catch-finally块的频繁使用,增加了代码的维护难度。 为了解决这些问题,Spring引入了...
通过使用JDBCTemplate,开发者可以避免编写大量重复的JDBC模板代码,提高代码的可读性和可维护性。 4. **spring-tx-5.3.9.jar**:事务管理是企业级应用中的关键部分。此jar包提供了声明式和编程式的事务管理。在...
在Java世界中,JdbcTemplate是Spring框架的一部分,用于简化数据库操作。它提供了一种模板方法设计模式,使得开发者可以方便地执行SQL语句,而无需处理底层的JDBC细节。这个压缩包“jdbcTemplate相关jar包.zip”包含...
JdbcTemplate是Spring框架的一部分,它为JDBC提供了一种模板方法模式的实现,使得数据库操作变得更加简洁、易用。JdbcTemplate通过预编译的SQL语句、参数绑定和结果集处理等功能,有效地降低了SQL注入的风险,同时也...
开发者只需要提供SQL语句和参数绑定,JDBCTemplate会自动处理事务管理、异常转换以及结果集的映射,大大减少了编写数据库操作代码的工作量。 在Spring JDBCTemplate中,连接池扮演着关键角色。连接池管理数据库连接...
在Spring框架中,`JdbcTemplate`是一个用于简化JDBC编程的工具类,它采用了模板模式来分离数据库访问中的不变和可变部分,提供了一种更加健壮且易于使用的数据访问机制。`JdbcTemplate`负责处理资源的获取、关闭以及...
JdbcTemplate是Spring框架的一部分,用于简化数据库操作。它提供了一种安全、有效的SQL执行机制,避免了手动管理数据库连接。通过使用注解,如`@Autowired`注入DataSource,然后在方法上使用`@Transactional`进行...
JDBCTemplate是Spring框架提供的一个数据库操作模板类,用于简化JDBC的使用,避免了大量重复的代码,提高了开发效率,同时增强了代码的可读性和可维护性。 1. 事务管理:JDBCTemplate支持自动提交和回滚事务,确保...