- 浏览: 998522 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (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 1662高级 DAO 编程学习编译 ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30883NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10732先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1566核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1361核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1477首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2369package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1631public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1629JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1411JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 21301, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1227隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1547可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1648可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 2031在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2725ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2638ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3068PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1498System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4917JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
在实际项目中,结合Spring的其他模块,如DAO支持、AOP等,SimpleJdbcTemplate将发挥更大的作用,为开发带来便利。 参考链接:[Spring SimpleJdbcTemplate详解](https://1194867672-qq-com.iteye.com/blog/1291025) ...
在本项目"spring操作MySQL数据库.zip"中,主要展示了如何使用Spring框架与MySQL数据库进行集成,实现对数据库的增删查改操作。Spring是Java领域一个广泛应用的开源框架,它提供了一个全面的编程和配置模型,使得开发...
源码展示了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...
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. 在应用服务器...
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引入了...
5. **Spring JDBC 和 DAO**:Spring 提供的 JDBC 模块简化了数据库操作,通过 JdbcTemplate 或 SimpleJdbcTemplate 可以实现无事务的数据库访问。而 DataSource 对象可以在 Spring 容器中配置,方便在 DAO 中获取并...
其中,Spring提供的三个主要模板类——`JdbcTemplate`、`NamedParameterJdbcTemplate`和`SimpleJdbcTemplate`,极大地简化了数据库操作,减少了代码量,提高了代码的可读性和可维护性。 #### JdbcTemplate `...
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. 在应用...
- 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的内部实现,真正做到知其然知其所以然。...