- 浏览: 991755 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。
public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, Object... args)
public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)
public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)
getJdbcOperations返回的是JdbcOperations(实现JdbcTemplate)
getNamedParameterJdbcOperations返回的是NamedParameterJdbcOperations(实现是NamedParameterJdbcTemplate)
实例说明:
public class StuDaoImple implements StuDaointer {
private SimpleJdbcTemplate simplejdbctemp;
public StuDaoImple(){
simplejdbctemp=new SimpleJdbcTemplate(SQLConnUtil.getDataSource());
}// SQLConnUtil为JDBC工具类,提供了得到数据源的静态方法
/*
* 可以通过SimpleJdbcTemplate得到NamedParameterJdbcTemplate或JdbcTemplate
*/
public void AddStu(Stu stu){
String sql="insert into stu values(:sname,:ssex,:sbrith)";
SqlParameterSource ps=new BeanPropertySqlParameterSource(stu);
KeyHolder key=new GeneratedKeyHolder();
this.simplejdbctemp.getNamedParameterJdbcOperations().update(sql, ps, key);
System.out.println(key.getKey().intValue());
}
/* SimpleJdbcTemplate的第一个好处:
* SimpleJdbcTemplate的update方法中参数是动态的,但是只能用?代替参数
*/
public void DelStu(int id){
String sql="delete stu where s_id=?";
simplejdbctemp.update(sql, id);
}
/*
* SimpleJdbcTemplate的update方法中参数是动态的,它的个数是动态的
*/
public void UpdStu(Stu stu){
String sql="update stu set s_name=?,s_sex=?,s_brith=? where s_id=?";
simplejdbctemp.update(sql, stu.getSname(),stu.getSsex(),stu.getSbrith(),stu.getSid());
}
/*
* SimpleJdbcTemplate的第二个好处:
* SimpleJdbcTemplate的queryForObject方法可以直接返回Stu对象,不用转换
*/
public Stu getone(int id){
String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?";
Stu stu=simplejdbctemp.queryForObject(sql, ParameterizedBeanPropertyRowMapper.newInstance(Stu.class), id);
return stu;
}
public List getall(){
String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu";
List list=simplejdbctemp.getJdbcOperations().query(sql, new BeanPropertyRowMapper(Stu.class));
return list;
}
}
- JDBC_SpringSimpleJdbcTemplate.rar (3.2 MB)
- 描述: 我的使用Spring的SimpleJdbcTemplate完成DAO操作实例
- 下载次数: 508
评论
public void AddStu(Stu stu){ String sql="insert into stu values(:sname,:ssex,:sbrith)"; SqlParameterSource ps=new BeanPropertySqlParameterSource(stu); KeyHolder key=new GeneratedKeyHolder(); this.simplejdbctemp.getNamedParameterJdbcOperations().update(sql, ps, key); System.out.println(key.getKey().intValue()); }
用这个方法得到的主键.mysql好像不行?我第一次添加正确.比如我添加100行数据.然后我删除了这些数据.再进行插入时.取到的主键就是从101开始了.而不是回到原来的位置
这是数据库得到问题,ID字段是自加的不是插入的,mysql中只有将表清空后ID才会清零从头来
public void AddStu(Stu stu){ String sql="insert into stu values(:sname,:ssex,:sbrith)"; SqlParameterSource ps=new BeanPropertySqlParameterSource(stu); KeyHolder key=new GeneratedKeyHolder(); this.simplejdbctemp.getNamedParameterJdbcOperations().update(sql, ps, key); System.out.println(key.getKey().intValue()); }
用这个方法得到的主键.mysql好像不行?我第一次添加正确.比如我添加100行数据.然后我删除了这些数据.再进行插入时.取到的主键就是从101开始了.而不是回到原来的位置
发表评论
-
高级 DAO 编程 学习编译更好的 DAO 的技巧
2009-04-27 20:09 1643高级 DAO 编程学习编译 ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30817NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10711先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1540核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1338核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1460首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2347package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1612public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1604JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1396JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 21061, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1206隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1520可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1629可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 2005在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2700ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2621ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3051PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1481System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4893JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
在实际项目中,结合Spring的其他模块,如DAO支持、AOP等,SimpleJdbcTemplate将发挥更大的作用,为开发带来便利。 参考链接:[Spring SimpleJdbcTemplate详解](https://1194867672-qq-com.iteye.com/blog/1291025) ...
在本项目"spring操作MySQL数据库.zip"中,主要展示了如何使用Spring框架与MySQL数据库进行集成,实现对数据库的增删查改操作。Spring是Java领域一个广泛应用的开源框架,它提供了一个全面的编程和配置模型,使得开发...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...
源码展示了Spring如何配置实体扫描、数据源、持久化单元等,以及如何使用EntityManager和Query进行数据操作。 6. **AOP代理** Spring使用AOP(面向切面编程)来实现事务管理。当你看到TransactionProxyFactoryBean...
11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert...
11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert...
经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。...
Spring 2.0.8加强了对JDBC的抽象,提供了JdbcTemplate和SimpleJdbcTemplate,简化了数据库操作。同时,它还集成了多种ORM框架,如Hibernate、JPA等,提供了统一的编程接口。 八、集成测试 Spring 2.0.8引入了...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
5. **Spring JDBC 和 DAO**:Spring 提供的 JDBC 模块简化了数据库操作,通过 JdbcTemplate 或 SimpleJdbcTemplate 可以实现无事务的数据库访问。而 DataSource 对象可以在 Spring 容器中配置,方便在 DAO 中获取并...
其中,Spring提供的三个主要模板类——`JdbcTemplate`、`NamedParameterJdbcTemplate`和`SimpleJdbcTemplate`,极大地简化了数据库操作,减少了代码量,提高了代码的可读性和可维护性。 #### JdbcTemplate `...
- DAO层(Data Access Object):负责与数据库交互,使用`SimpleJdbcTemplate`执行SQL操作。 - 实体类(Entity):代表数据库中的表,通常包含getter和setter方法,可能还会有`@Entity`、`@Table`等JPA注解。 - 配置...
这个名为“spring-demo”的项目,显然旨在展示如何使用Spring框架的几个关键组件:Spring JDBC、Spring MVC以及Spring业务层来构建一个完整的Web应用。下面将详细阐述这些知识点。 1. **Spring JDBC**: Spring ...
Spring JDBC提供了Template类,如JdbcTemplate或SimpleJdbcTemplate,它们封装了常见的数据库操作,使得代码更加简洁且易于管理。 接下来,事务管理是企业级应用中必不可少的部分。Spring提供了声明式事务管理,...
Spring JDBC的主要目标是简化传统的JDBC编程模型,通过提供模板类和数据访问对象(DAO)支持,来处理数据库操作的繁琐过程,如连接管理、事务处理和异常转换等。这一版本3.0.5的发布,进一步优化了性能和稳定性。 ...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
1. **简介**:SimpleJdbcTemplate和SimpleJdbcDaoSupport是Spring提供的简单JDBC模板类,用于简化数据库操作,避免了手动创建Connection、PreparedStatement等对象。 2. **使用方式**:通过继承SimpleJdbcDaoSupport...
- 使用JdbcTemplate进行数据库操作的DAO(Data Access Object)类,包含CRUD操作。 - 包含@Transactional注解的服务层类,定义了业务逻辑,利用Spring自动管理事务。 - 测试类,通过JUnit或其他测试框架验证AOP、...
经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。...