Spring JdbcTemplate用法整理:

xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<bean id="dbcpds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@10.1.7.148:1521:ora11"></property>
<property name="username" value="tds1ml1"></property>
<property name="password" value="tds1ml1"></property>
<property name="initialSize" value="5"></property>
<property name="maxActive" value="10"></property>
</bean>
<bean id="sprds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@10.1.7.148:1521:ora11"></property>
<property name="username" value="tds1ml1" />
<property name="password" value="tds1ml1" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="dbcpds"></constructor-arg>
</bean>
<bean id="namedJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="dbcpds"></constructor-arg>
</bean>
<bean id="jdbcSpitterDAO" class="com.stono.sprjdbc.JdbcSpitterDAO">
<property name="template" ref="jdbcTemplate"></property>
<property name="namedJdbcTemplate" ref="namedJdbcTemplate"></property>
</bean>
<bean id="jdbcSpitter2DAO" class="com.stono.sprjdbc.JdbcSpitter2Dao">
<property name="dataSource" ref="dbcpds"></property>
</bean>
</beans>

DAO Interface:

package com.stono.sprjdbc;
import java.util.Map;
public interface SpitterDAO {
void insertSpitter(SpitterObj obj);
void namedInsertSpitter(Map<String, Object> map);
void updateSpitter(SpitterObj obj);
void deleteSpitter(SpitterObj obj);
SpitterObj getSpitter(String ljdm);
}

POJO:

package com.stono.sprjdbc;
public class SpitterObj {
private String ljdm;
private String ljpym;
public String getLjdm() {
return ljdm;
}
public void setLjdm(String ljdm) {
this.ljdm = ljdm;
}
public String getLjpym() {
return ljpym;
}
public void setLjpym(String ljpym) {
this.ljpym = ljpym;
}
}

Use JdbcTemplate:

package com.stono.sprjdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
public class JdbcSpitterDAO implements SpitterDAO {
private JdbcTemplate template;
public void setTemplate(JdbcTemplate template) {
this.template = template;
}
private NamedParameterJdbcTemplate namedJdbcTemplate;
public void setNamedJdbcTemplate(NamedParameterJdbcTemplate namedJdbcTemplate) {
this.namedJdbcTemplate = namedJdbcTemplate;
}
private static String INSERT_SQL = "insert into ljzdtemp(ljdm,ljpym) values(?,?)";
private static String GET_SQL = "select * from ljzdtemp where ljdm = ?";
private static String UPDATE_SQL = "update ljzdtemp set ljpym=? where ljdm = ?";
private static String DEL_SQL = "delete ljzdtemp where ljdm = ?";
private static String NAMED_INSERT_SQL = "insert into ljzdtemp(ljdm,ljpym) values(:ljdm,:ljpym)";
@Override
public void insertSpitter(SpitterObj obj) {
template.update(INSERT_SQL, obj.getLjdm(), obj.getLjpym());
}
@Override
public void updateSpitter(SpitterObj obj) {
template.update(UPDATE_SQL, "aa", "a");
}
@Override
public void deleteSpitter(SpitterObj obj) {
template.update(DEL_SQL, "a");
}
@Override
public SpitterObj getSpitter(String ljdm) {
return template.queryForObject(GET_SQL, new RowMapper<SpitterObj>() {
@Override
public SpitterObj mapRow(ResultSet rs, int rowNum) throws SQLException {
SpitterObj obj = new SpitterObj();
obj.setLjdm(rs.getString(4));
obj.setLjpym(rs.getString(5));
return obj;
}
}, 'a');
}
@Override
public void namedInsertSpitter(Map<String, Object> map) {
namedJdbcTemplate.update(NAMED_INSERT_SQL, map);
}
}

Extends NamedParameterJdbcDaoSuport:

package com.stono.sprjdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport;
public class JdbcSpitter2Dao extends NamedParameterJdbcDaoSupport implements SpitterDAO {
private static String INSERT_SQL = "insert into ljzdtemp(ljdm,ljpym) values(?,?)";
private static String GET_SQL = "select * from ljzdtemp where ljdm = ?";
private static String UPDATE_SQL = "update ljzdtemp set ljpym=? where ljdm = ?";
private static String DEL_SQL = "delete ljzdtemp where ljdm = ?";
private static String NAMED_INSERT_SQL = "insert into ljzdtemp(ljdm,ljpym) values(:ljdm,:ljpym)";
@Override
public void insertSpitter(SpitterObj obj) {
getJdbcTemplate().update(INSERT_SQL, obj.getLjdm(), obj.getLjpym());
}
@Override
public void namedInsertSpitter(Map<String, Object> map) {
getNamedParameterJdbcTemplate().update(NAMED_INSERT_SQL, map);
}
@Override
public void updateSpitter(SpitterObj obj) {
getJdbcTemplate().update(UPDATE_SQL, "aa", "a");
}
@Override
public void deleteSpitter(SpitterObj obj) {
getJdbcTemplate().update(DEL_SQL, "a");
}
@Override
public SpitterObj getSpitter(String ljdm) {
return getJdbcTemplate().queryForObject(GET_SQL, new RowMapper<SpitterObj>() {
@Override
public SpitterObj mapRow(ResultSet rs, int rowNum) throws SQLException {
SpitterObj obj = new SpitterObj();
obj.setLjdm(rs.getString(4));
obj.setLjpym(rs.getString(5));
return obj;
}
}, 'a');
}
}

AppBean:

package com.stono.sprjdbc;
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class AppBeans14 {
public static void main(String[] args) throws Exception {
@SuppressWarnings("resource")
ApplicationContext context = new ClassPathXmlApplicationContext("appbeans14.xml");
BasicDataSource dataSource = (BasicDataSource) context.getBean("dbcpds");
Connection connection = dataSource.getConnection();
System.out.println(connection);
DriverManagerDataSource sprDataSource = (DriverManagerDataSource) context.getBean("sprds");
Connection connection2 = sprDataSource.getConnection();
System.out.println(connection2);
// 普通sql查询
// String sql = "select * from ljzdtemp";
// PreparedStatement prepareStatement = connection.prepareStatement(sql);
// PreparedStatement prepareStatement = connection2.prepareStatement(sql);
// ResultSet resultSet = prepareStatement.executeQuery();
// while(resultSet.next()){
// System.out.println(resultSet.getString(1));
// }
SpitterDAO dao = (SpitterDAO) context.getBean("jdbcSpitterDAO");
// JdbcTemplate 插入
// SpitterObj obj = new SpitterObj();
// obj.setLjdm("a");
// obj.setLjpym("a");
// dao.insertSpitter(obj);
// Map<String, Object> map = new HashMap<String, Object>();
// map.put("ljdm", "a");
// map.put("ljpym", "b");
// dao.namedInsertSpitter(map);
SpitterDAO dao2 = (SpitterDAO) context.getBean("jdbcSpitter2DAO");
Map<String, Object> map = new HashMap<String, Object>();
map.put("ljdm", "b");
map.put("ljpym", "c");
dao2.namedInsertSpitter(map);
}
}

dbcp连接池需要的jar包:

commons-dbcp-1.4.jar commons-pool-1.6.jar

Spring JdbcTemplate用法整理的更多相关文章

  1. (转)Spring JdbcTemplate 方法详解

    Spring JdbcTemplate方法详解 文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供 ...

  2. Java Spring AOP用法

    Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...

  3. Java Spring IOC用法

    Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...

  4. [转]Spring JdbcTemplate 查询分页

    原文:http://blog.csdn.net/xiaofanku/article/details/4280128 现在进行的项目由于数据库的遗留原因(设计的不堪入目)不能用hibernate.所以用 ...

  5. spring jdbcTemplate query

    1. spring jdbcTemplate query需要实现mapRow方法 package com.cdv.apolloagent.jdbc.dao.impl; import java.sql. ...

  6. Spring JdbcTemplate 的使用与学习(转)

    紧接上一篇 (JdbcTemplate是线程安全的,因此可以配置一个简单的JdbcTemplate实例,将这个共享的实例注入到多个DAO类中.辅助的文档) Spring DAO支持 http://ww ...

  7. Spring JdbcTemplate的queryForList(String sql , Class<T> elementType)易错使用--转载

    原文地址: http://blog.csdn.net/will_awoke/article/details/12617383 一直用ORM,今天用JdbcTemplate再次抑郁了一次. 首先看下这个 ...

  8. spring jdbcTemplate源码剖析

    本文浅析 spring jdbcTemplate 源码,主要是学习其设计精髓.模板模式.巧妙的回调 一.jdbcTemplate 类结构 ①.JdbcOperations : 接口定义了方法,如 &l ...

  9. 使用Spring JDBCTemplate简化JDBC的操作

    使用Spring JDBCTemplate简化JDBC的操作 接触过JAVA WEB开发的朋友肯定都知道Hibernate框架,虽然不否定它的强大之处,但个人对它一直无感,总感觉不够灵活,太过臃肿了. ...

随机推荐

  1. Xamarin For Visual Studio 3.0.54.0 完整离线破解版

    Xamarin For Visual Studio 3.0.54.0 完整离线破解版 Xamarin For Visual Studio就是原本的Xamarin For Android 以及 Xama ...

  2. HDU 5692 (DFS序+线段树)

    DFS获得从0到每一个顶点的距离,同时获得L和R数组.两数组为遍历时从i进入再从i出来的序列. #pragma comment(linker, "/STACK:1024000000,1024 ...

  3. my97datepicker开始日期小于结束日期格式化时间精确届时分秒

    my97datepicker开始日期小于结束日期格式化时间精确到时分秒 一 , 需求: 结束时间 > 开始时间, 不符合的时间段不能选择.比如我选择开始日期是7月28,那结束的日期将只能从7月2 ...

  4. ExtJS如何取得GridPanel当前选择行数据对象 - nuccch的专栏 - 博客频道 - CSDN.NET

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  5. Android学习笔记之Intent

    Intent是Activity之间的管道 可以用来做Acitivity的跳转或传递数据 protected void onCreate(Bundle savedInstanceState) { sup ...

  6. CodeForces 606B Testing Robots

    模拟,题意看了一小时 /* *********************************************** Author :Zhou Zhentao Email :774388357@ ...

  7. Linux系统目录

    [root@localhost ~]# ls /bin dev home lost+found misc opt root selinux sys usrboot etc lib media net ...

  8. STM32 USB虚拟串口(转)

    源:STM32 USB虚拟串口 串口调试在项目中被使用越来越多,串口资源的紧缺也变的尤为突出.很多本本人群,更是深有体会,不准备一个USB转串口工具就没办法进行开发.本章节来简单概述STM32低端芯片 ...

  9. HTML学习(七)表格

    表格表格由 <table> 标签来定义.每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义).字母 td 指表格数据(ta ...

  10. net stop 出现1060错误

    net stop时出现1060错误,答案: 原来,net stop后面不能想当然地加上服务,而要在‘服务’里看看,那个服务究竟叫什么名字. 比如,我的mysql安装时不叫mysql,而是mysql5 ...