- 浏览: 989321 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 文件下载之断点续传
先道要加上两个包:Spring2.5下面的: spring.jar和commons-logging.jar
我用的DBCP数据源,Connection工具类我就没写了
具体的实例说明:
public class StuDaoImple implements StuDaointer { private JdbcTemplate jdbctemp = null; public StuDaoImple() { jdbctemp = new JdbcTemplate(SQLConnUtil.getDataSource()); } // 所有添,删,改的方法都可以用jdbctemp.update();方法 public void addStu(Stu stu) { String sql = "insert into stu values(?,?,?)"; Object[] obj = new Object[] { stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().getTime()) }; jdbctemp.update(sql, obj);// 可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值 } public void delStu(int sid) { String sql = "delete stu where s_id=" + sid; jdbctemp.update(sql);// 可以传一个参数,就是没有参数的SQL语句 } public void updStu(Stu stu) { String sql = "update stu set s_name=?,s_sex=?,s_brith=? where s_id=?"; Object[] obj = new Object[] { stu.getSname(), stu.getSsex(),new java.sql.Date(stu.getSbrith().getTime()), stu.getSid() }; jdbctemp.update(sql, obj, new int[] { Types.VARCHAR, Types.VARCHAR,Types.DATE, Types.INTEGER }); // 可以传两个参数,第一个参数是SQL语句,第二个参数是SQL语句的参数值,第三个参数是SQL语句参数值的SQL类型 } //查询1 public List getAllStu() { String sql="select s_id,s_name,s_sex,s_brith from stu"; List list=jdbctemp.query(sql, new RowMapper(){ public Object mapRow(ResultSet arg0, int arg1) throws SQLException { Stu stu=new Stu(); if(arg0!=null){ stu.setSid(arg0.getInt("s_id")); stu.setSname(arg0.getString("s_name")); stu.setSsex(arg0.getString("s_sex")); stu.setSbrith(arg0.getDate("s_brith")); } return stu; } }); return list; } //查询2 public List getAllStu(int id) { String sql="select s_id,s_name,s_sex,s_brith from stu where s_id<?"; Object[] obj=new Object[]{id}; //使用内部类 List list=jdbctemp.query(sql,obj,new RowMapper(){ public Object mapRow(ResultSet arg0, int arg1) throws SQLException { Stu stu=new Stu(); if(arg0!=null){ stu.setSid(arg0.getInt("s_id")); stu.setSname(arg0.getString("s_name")); stu.setSsex(arg0.getString("s_sex")); stu.setSbrith(arg0.getDate("s_brith")); } return stu; } }); return null; } //查询方式3(查询一个对象) public Stu getOneStu(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=?"; Object[] obj=new Object[]{id}; Object stu=jdbctemp.queryForObject(sql, obj,new BeanPropertyRowMapper(Stu.class)); //可以不用内部类,但是类的属性字段名称要数据库中的字段名称一样或者数据库字段名为s_id类的名称为SId, //如果你没有遵守这个规范则可以在select语句后面给数据库字段名取别名 //上面的查询也可以这种方式 return (Stu)stu; } //查询方式4(查询一个字段) public String getStuName(int sid) { String sql="select s_name as sname from stu where s_id=?"; Object[] obj=new Object[]{sid}; Object stuname=jdbctemp.queryForObject(sql, obj, String.class); //String.class即是指明一下结果的类型 return (String) stuname; } //查询方法5 public int count(){ String sql="select count(*) from stu"; int m=jdbctemp.queryForInt(sql); return m; } //查询方法6 查询结果返回的是map,map中的key为select中的列名(若有别名是是别名)value是该列所对应的值 public Map getStuinMap(int sid){ String sql="select s_id as sid,s_name as sname,s_sex as ssex,s_brith as sbrith from stu where s_id=?"; Object[] obj=new Object[]{sid}; return jdbctemp.queryForMap(sql, obj); } //查询方法7 若你不想用spring封装好了的操作,你可以自己写.Connection的打开和关闭它已经写好了,其它的操作自己可以去完成 public int getMyQuery(final Stu stu){ Object obj=jdbctemp.execute(new ConnectionCallback(){ public Object doInConnection(Connection conn) throws SQLException, DataAccessException { String sql="insert into stu values(?,?,?)"; PreparedStatement pre=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//返回主键自动 pre.setString(1, stu.getSname()); pre.setString(2, stu.getSsex()); pre.setDate(3, new java.sql.Date(stu.getSbrith().getTime())); pre.executeUpdate(); ResultSet rs=pre.getGeneratedKeys(); int m=0; if(rs.next()){ m=rs.getInt(1); } return m; } }); return (Integer)obj; } }
- commons-logging.jar (51.7 KB)
- 下载次数: 26
- spring.jar (2.7 MB)
- 描述: Spring2.5
- 下载次数: 40
- JDBC_SpringJdbcTemplate.rar (3.2 MB)
- 描述: 使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC我的实例
- 下载次数: 159
发表评论
-
高级 DAO 编程 学习编译更好的 DAO 的技巧
2009-04-27 20:09 1635高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10111SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30788NamedParameterJdbcTemplate内部包含了 ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1535核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1329核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射实现ORM
2009-04-20 22:55 1448首先Bean在符合JavaBean的要求,即有一个无参的构造方 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2336package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1608public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1600JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1390JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 20961, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1196隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1512可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1624可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 1998在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2689ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2616ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3045PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1474System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4886JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
3. **结果集处理**:对于查询操作,JdbcTemplate可以将结果集映射到Java对象,这通常通过实现RowMapper接口或使用BeanPropertyRowMapper类来完成。RowMapper允许自定义对象映射逻辑,而BeanPropertyRowMapper则会...
`JdbcTemplate`是Spring JDBC提供的主要接口,它提供了一组模板方法,用于执行SQL查询、更新和存储过程。`SimpleJdbcInsert`和`SimpleJdbcCall`则分别用于简化插入操作和调用存储过程。 1. **JdbcTemplate使用**: ...
在Spring框架中,Spring JDBC通过一系列的抽象层,如JdbcTemplate、SimpleJdbcTemplate和NamedParameterJdbcTemplate等,将数据库访问的繁琐细节隐藏起来,从而减少了代码量,提高了代码的可读性和可维护性。...
Spring框架的JdbcTemplate是Spring为Java开发者提供的一种方便、安全地...在压缩包文件"springtest"中,应该包含了实现这些功能的代码示例,通过学习和理解这些示例,你可以更好地掌握Spring MVC和JdbcTemplate的使用。
Spring JDBC是Spring框架的一个核心模块,它为Java开发者提供了便捷的方式来操作数据库。Spring JDBC通过抽象出数据库连接...在学习和使用Spring JDBC时,了解并掌握上述知识点,将有助于你更好地理解和运用这一技术。
`JdbcTemplate`是Spring JDBC中最核心的类之一,它提供了一系列的方法来执行各种数据库操作,包括查询、更新、插入和删除等。通过使用`JdbcTemplate`,开发者可以避免直接使用`PreparedStatement`和`ResultSet`,这...
为了解决这些问题,Spring框架提供了JDBCTemplate,它是一个基于JDBC的抽象层,能够使数据库操作变得更加简洁和安全。 JDBCTemplate的核心优势在于它封装了JDBC的常见任务,如事务管理、异常处理和结果集的处理,...
本文将深入探讨JDBC Template的源码,结合MySQL数据库,展示其在实际应用中的使用,并提及Spring框架中的`PropertyPlaceholderConfigurer`和`BeanPropertyRowMapper`组件。 首先,JDBC Template通过预编译SQL语句、...
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` 2. **编写SQL语句**:JdbcTemplate支持静态和动态SQL。静态SQL通常直接写在代码中,而动态SQL可以通过PreparedStatement...
最后,`JdbcTemplate`与Spring的其他组件如`DataSource`和`TransactionManager`有很好的集成,可以无缝地与其他Spring框架特性一起工作,例如AOP(面向切面编程)和依赖注入。 总的来说,`JdbcTemplate`是一个强大...
Spring 4中的JdbcTemplate继承自JDBC抽象层,因此也支持事务管理和异常处理。当发生数据库操作异常时,JdbcTemplate会自动转换数据库异常为Spring的DataAccessException,使得开发者能够更方便地处理异常情况。 ###...
文件名`jdbcTemplate`、`jdbc`、`jdbcTemplateTest`和`jdbcTemplateSample`表明,这里可能包含了一个使用Spring JdbcTemplate的例子。JdbcTemplate是Spring提供的一个模板类,它封装了JDBC的基本操作,提供了更安全...
JdbcTemplate是Spring对Java数据库连接(JDBC)的一种轻量级封装,它简化了数据访问代码,减少了可能出现的资源泄露,通过异常处理和事务管理提高了代码的健壮性。其设计目标是减少手写SQL和处理结果集的繁琐工作,...
Java中的JdbcTemplate是Spring框架提供的一种用于简化JDBC(Java Database Connectivity)操作的工具,它在数据持久层操作中扮演着重要角色。JdbcTemplate通过消除大量重复的JDBC样板代码,提高了代码的可读性和可...
spring-jdbc-5.0.0.RELEASE.jar spring-tx-5.0.0.RELEASE.jar 查询一行的内容,封装为map用:template.queryForMap(sql) 查询所有的内容,封装为list用 :template.queryForList(sql) 查询所有的内容,封装为对象...
本项目"springboot-jdbc-多数据源"则主要展示了如何在Spring Boot应用中实现多数据源的配置和使用,这对于大型系统中需要连接多个数据库的场景非常实用。 首先,让我们深入了解Spring Boot与JdbcTemplate的结合。...
import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.RowCallbackHandler; import org.spring...
本篇将深入探讨Spring JDBC的核心概念、使用方法以及与SQL和Java的交互。 首先,Spring JDBC通过`JdbcTemplate`和`NamedParameterJdbcTemplate`两个主要的模板类,大大简化了数据库访问。`JdbcTemplate`提供了基本...