spring使用JdbcDaoSupport中封装的JdbcTemplate进行query
1.Dept
package cn.hxex.springcore.jdbc;
public class Dept {
private Integer deptNo;
private String dName;
private String loc;
public Integer getDeptNo() {
return deptNo;
}
public void setDeptNo(Integer deptNo) {
this.deptNo = deptNo;
}
public String getDName() {
return dName;
}
public void setDName(String name) {
dName = name;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public String toString() {
StringBuffer buf = new StringBuffer();
buf.append( "deptNo:\t" ).append( getDeptNo() ).append( "\t" );
buf.append( "dName:\t" ).append( getDName() ).append( "\t" );
buf.append( "loc:\t" ).append( getLoc() ).append( "\t" );
return buf.toString();
}
}
2.IDeptDao
package cn.hxex.springcore.jdbc;
import java.util.List;
public interface IDeptDao {
public List getDepts();
public List getDeptsByNo(int deptno);
}
3.DeptDao
package cn.hxex.springcore.jdbc; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport; public class DeptDao extends JdbcDaoSupport implements IDeptDao { public List getDepts() {
String sql = "SELECT deptno, dname, loc FROM dept"; return super.getJdbcTemplate().query( sql, new DeptRowMapper() );
} public List getDeptsByNo(final int deptno){
final String sql = "SELECT deptno, dname, loc FROM dept where deptno=?"; return super.getJdbcTemplate().query(new PreparedStatementCreator(){ @Override
public PreparedStatement createPreparedStatement(Connection connection)
throws SQLException {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, deptno);
return ps;
} }, new RowMapper(){ @Override
public Object mapRow(ResultSet rs, int rowNum) throws SQLException { Dept dept = new Dept();
dept.setDeptNo( new Integer( rs.getString(1) ) );
dept.setDName( rs.getString( 2 ) );
dept.setLoc( rs.getString( 3 ) );
return dept;
} }); } class DeptRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Dept dept = new Dept();
dept.setDeptNo( new Integer( rs.getString(1) ) );
dept.setDName( rs.getString( 2 ) );
dept.setLoc( rs.getString( 3 ) );
return dept;
} } }
4.JdbcDaoSupportMain
package cn.hxex.springcore.jdbc; import java.util.List; import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource; public class JdbcDaoSupportMain { public static void main(String[] args) { ClassPathResource resource = new ClassPathResource("cn/hxex/springcore/jdbc/JdbcDaoSupportBeans.xml");
BeanFactory factory = new XmlBeanFactory(resource); IDeptDao dao = (IDeptDao)factory.getBean( "deptDao" );
//List depts = dao.getDepts();
List depts = dao.getDeptsByNo(10); for( int i=0; i<depts.size(); i++ ) {
System.out.println( depts.get( i ) );
}
}
}
5.JdbcDaoSupportBeans.xml部分
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- 初始化数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property>
<property name="url">
<value>jdbc:oracle:thin:@localhost:1521:XE</value>
</property>
<property name="username"><value>jeffrey</value></property>
<property name="password"><value>jeffrey</value></property>
</bean> <bean id="deptDao" class="cn.hxex.springcore.jdbc.DeptDao">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
备注:以上部分代码来自陈天河编著的某书
spring使用JdbcDaoSupport中封装的JdbcTemplate进行query的更多相关文章
- Spring对Jdbc的封装——JdbcTemplate的使用
链接:https://pan.baidu.com/s/15luDElW4oeEaP0nvEQ_40w 提取码:i2r1 JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于 ...
- JDK、Spring和Mybatis中使用到的设计模式
一.JDK中的设计模式 (1)结构性模式 1.适配器模式 java.util.Arrays#asList() java.io.InputStreamReader(InputStream) java.i ...
- Spring基础——在Spring Config 文件中配置 Bean
一.基于 XML 的 Bean 的配置——通过全类名(反射) <bean <!-- id: bean 的名称在IOC容器内必须是唯一的若没有指定,则自动的将全限定类名作为 改 bean 的 ...
- 控制反转和spring在项目中可以带来的好处
Spring实例化Bean的三种方式分别是: 1,xml配置使用bean的类构造器 <bean id="personService" class="cn.servi ...
- Spring data JPA中使用Specifications动态构建查询
有时我们在查询某个实体的时候,给定的条件是不固定的,这是我们就需要动态 构建相应的查询语句,在JPA2.0中我们可以通过Criteria接口查询,JPA criteria查询.相比JPQL,其优势是类 ...
- spring MVC controller中的方法跳转到另外controller中的某个method的方法
1. 需求背景 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 本来以为挺简单的一 ...
- 解决Spring在线程中注入为空指针的问题
在启用线程中使用来jdbcTemplate来查询数据库,引入jdbcTemplate是用Spring @Autowired注解 方式引入,但是在运行中 jdbcTemplate 总是 空指针 解决 ...
- Spring Security框架中踢人下线技术探索
1.背景 在某次项目的开发中,使用到了Spring Security权限框架进行后端权限开发的权限校验,底层集成Spring Session组件,非常方便的集成Redis进行分布式Session的会话 ...
- 在Spring tools suite中使用git 共享项目
我们都在eclipse 和 myeclipse中使用过cvs 和 svn 版本控制工具进行团队开发,今天我学习了另外一种版本控制工具git,下面我演示如何在Spring tools suite中使用g ...
随机推荐
- uitableviewcell高度自适应笔记
今天看了几篇uitableviewcell高度自适应的文章,大体分为两种方式. 第一种方式,cell里面有label,在cellforrow绘制的时候计算Label的可能高度,并且在此时重新计算cel ...
- jquery递归遍历xml文件,形成ul-li序列,生成树结构(使用了treeview插件)
treeview插件从这里获得,下载的文件中有demo,看demo文件夹里面的index.html文件就差不多知道如何使用该控件了,在我做的项目里用到的部分代码截图如下(在引用下面的js文件前要先引用 ...
- Acronis Server备份Linux系统
Acronis Server备份Linux系统 前段时间用Acronis Disk Director Suite解决了Thinkpad笔记本在win7的分区问题(http://chenguang.bl ...
- play framework 框架安装及myeclipse 导入项目
下载 play framework 框架. 解压你你要解压的目录 E:\play-1.2.7 相对其他的WEB框架.play的配置是相当简单的.没有那么多配置文件的搞法.上手比较快,就是相关的资料比较 ...
- 做好SEO需要掌握的20个基础知识
作为一个网站优化者,有一些基础seo知识点是大家必须要掌握的,网站排名的好快,和这些基础的SEO优化知识有没做好,有没做到位,有着直接的关系!今天,伟伟SEO就把我前面讲的SEO优化基础知识做个总结, ...
- CodeSmith 7.01破解下载
运行CodesmithKeyGenerator.exe,1.修改Prefix输入框的值为:CS70P-2.在主页面点Generate,生成注册码,填入激活码到code smith的Serial框中,( ...
- Oracle笔记 十三、PL/SQL面向对象之package
--将方法和过程用包定义 create or replace package pkg_emp as --输入员工编号查询出员工信息 procedure pro_findInfo( in_empno e ...
- 深入理解ASP.NET的内部运行机制(转)
WebForms和WebServices作为.NET平台构建Web程序的两大利器,以其开发简单.易于部署的特点得到了广泛的应用,但殊不知微软公司在背后为我们做了大量的基础性工作,以至于我们开发人员只需 ...
- MySQL 5.7.9 免安装配置
MySQL 5.7.9 免安装配置 环境:win10 64位 mysql版本:mysql-5.7.9-winx64.zip (http://dev.mysql.com/downloads/mysql/ ...
- 第一部分 CLR基础:第3章 共享程序集和强命名程序集
第一部分 CLR基础:第3章 共享程序集和强命名程序集