`
xumingrencai
  • 浏览: 1179952 次
文章分类
社区版块
存档分类
最新评论

spring jdbc模板 数据库访问例子

 
阅读更多

import java.io.*;
import java.sql.*;
import javax.sql.DataSource;
import java.util.*;
import junit.framework.*;
import org.apache.commons.logging.*;
import org.springframework.jdbc.core.*;
import org.springframework.jdbc.datasource.*;


public class TestSpringDAO extends TestCase {
private static Log logger = LogFactory.getLog(TestSpringDAO.class);
private static DataSource datasource = null;
public TestSpringDAO() throws Exception {
logger.info("新建 "+this.getClass().getName());
try {
datasource = this.getDataSource();
JdbcTemplate template = new JdbcTemplate(datasource);
}catch(Exception e) {
e.printStackTrace();
}
}
public void setUp() {
logger.info("--------------------------------");
}
public void tearDown() {
// logger.info("--------------------------------");
}
/*private DataSource getDataSourceFromXML() throws Exception {
InputStream is = new FileInputStream("beans.xml");
XmlBeanFactory factory = new XmlBeanFactory(is);
// XmlBeanFactory factory = new XmlBeanFactory(new InputStreamResource(is));
DataSource ds = (DataSource) factory.getBean("dataSource");
return ds;
}*/
private DataSource getDataSource() throws Exception {
// BasicDataSource ds = new org.apache.commons.dbcp.BasicDataSource();
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("org.gjt.mm.mysql.Driver");
ds.setUrl("jdbc:mysql://localhost/test");
ds.setUsername("root");
ds.setPassword("123456");
return ds;
}
public void _testJdbc() {
DataSource ds = null;
Connection conn = null;
Statement stmt = null;
try {
conn = datasource.getConnection();
stmt = conn.createStatement();
stmt.executeUpdate("UPDATE user SET username = 'testJdbc' WHERE id = 4");
}catch(Exception e) {
e.printStackTrace();
logger.warn("_testJdbc()"+e);
}finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
logger.warn("Exception in closing JDBC Statement", ex);
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
logger.warn("Exception in closing JDBC Connection", ex);
}
}
}
}
public void _testUpdate() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.update("UPDATE user SET username = 'testUpdate' WHERE id = 4");
logger.info("testSpringDAO()...ok");
}catch(Exception e) {
e.printStackTrace();
logger.warn("testUpdate()"+e);
}
}
public void _testUpdate2() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.update(
"UPDATE user SET password = ? WHERE id = ?",
new PreparedStatementSetter() {
public void setValues(PreparedStatement ps) throws SQLException {
ps.setString(1, "testUpdate2");
ps.setInt(2, 4);

}
}
);
logger.info("testUpdate2()...ok");
}catch(Exception e) {
e.printStackTrace();
logger.warn("testUpdate2()"+e);
}
}
public void _testInsert() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.update("INSERT INTO user (id, username, password) VALUES ('', 'testInsert', 'testInsert')");
logger.info("testInsert()...ok");
}catch(Exception e) {
e.printStackTrace();
logger.warn("testInsert()"+e);
}
}
public void _testQuery() {
class User {
int id;
String username;
String password;
void setId(String ids) { id = Integer.parseInt(ids); }
void setUsername(String user) { username = user; }
void setPassword(String pass) { password = pass; }
public String toString() {
return "Id."+id+" "+username+":"+password;
}
}
final List userList = new ArrayList();
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.query(
"SELECT id, username, password FROM user WHERE id>0",
new RowCallbackHandler() {
public void processRow(ResultSet rs) throws SQLException {
User user = new User();
user.setId(rs.getString("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
userList.add(user);
}
}
);
//打印输出
for(Iterator i=userList.iterator()
; i.hasNext(); ) {
User user = (User)i.next();
System.out.println(user.toString());
}
logger.info("testQuery()...ok");
}catch(Exception e) {
e.printStackTrace();
logger.warn("testInsert()"+e);
}
}
public void testQueryCount() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
int count = jdbcTemplate.queryForInt("select count(*) from user");
logger.info("testQueryCount()..."+count);
}catch(Exception e) {
e.printStackTrace();
logger.warn("testQueryCount()"+e);
}
}
public void testQueryString() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
String name = (String)jdbcTemplate.queryForObject("select username from user where id=1", java.lang.String.class);
logger.info("testQueryString()..."+name);
}catch(Exception e) {
e.printStackTrace();
logger.warn("testQueryString()"+e);
}
}
public void testQueryList() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
List rows = jdbcTemplate.queryForList("select * from user");
logger.info("testQueryList()..."+rows);
}catch(Exception e) {
e.printStackTrace();
logger.warn("testQueryList()"+e);
}
}
public void _testDelete() {
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.update("DELETE FROM user WHERE username='testInsert'");
logger.info("testDelete()...ok");
}catch(Exception e) {
e.printStackTrace();
logger.warn("testInsert()"+e);
}
}
public static void main(String[] args) {
com.bs.mpsp.common.MyTestRunner.run(TestSpringDAO.class);
// junit.textui.TestRunner.run(TestSpringDAO.class);
}

}

分享到:
评论

相关推荐

    使用spring jdbc template简化jdbc数据库操作实例代码

    使用spring jdbc template简化jdbc数据库操作实例代码,简化操作,包括详细测试例子。

    Spring MVC 入门实例

    16 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 17 18 19 --> 20 21 <!-- 22 23 24 25 --> 26 27 它配置了以下功能(不过,已经注释掉了): ...

    Spring+3.x企业应用开发实战光盘源码(全)

     第8章:介绍了Spring所提供的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等内容。  第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。  ...

    Spring.3.x企业应用开发实战(完整版).part2

    第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...

    freemarker模板生成例子

    freemarker模板生成例子 可以根据表名生成其增删改查方法以及jsp页面,基于spirng,spring-mvc,mybatis .使用前请更改jdbc配置文件下的项目路径和数据库,生成后需要将controller上方注释复制到mybatisconfig中对应...

    Spring3.x企业应用开发实战(完整版) part1

    第11章 使用Spring JDBC访问数据库 11.1 使用Spring JDBC 11.1.1 JDBCTemplate小试牛刀 11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据...

    spring.doc

    5 Spring数据库 106 5.1 Spring+JDBC 106 5.1.1 Jdbc编程特点 106 5.1.2引入DataSource 106 5.1.3 核心类JdbcTemplate 106 5.1.4 使用JdbcTemplate 106 5.1.5 继承JdbcDaoSupport 107 5.1.6 使用properties文件 107 ...

    Spring 2.0 开发参考手册

    17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第8章:介绍了Spring所提供的DAO封装层,这包括Spring DAO的异常体系、数据访问模板等内容。  第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    11.1.1. Spring JDBC包结构 11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. ...

    Spring中文帮助文档

    11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5....

    spring chm文档

    17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为...

    Spring API

    11.1.2. Spring JDBC包结构 11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5....

    spring-demo:Spring框架学习与分析研究,附带可运行的引用示例,创建这个仓库的初衷,是因为网上的内容太碎片化了,我尝试来一个集大成者,在一个地方就能弄清楚所有的问题

    Spring学习笔记 这是一个Spring框架应用示例...主要是避免重复的代码,本例中我们使用的是通过JDBC访问数据库这样的示例。 2. 关于Spring Bean 在基于Spring的应用中,我们的应用对象生存于Spring容器(Container)中

    ssh(structs,spring,hibernate)框架中的上传下载

    3在Spring中使用org.springframework.jdbc.support.lob.OracleLobHandler处理Oracle数据库的Blob类型字段。  通过这样的设置和配置,我们就可以象持久化表的一般字段类型一样处理Blob字段了。  以上是Spring+...

    Java语言基础下载

    使用DDL,DML语言对数据库进行基本操作 338 查询数据库里的数据 339 预编译语句(PreparedStatement) 340 使用事务 341 事务的级别控制 343 使用存储过程 345 操作元数据 347 ResultSetMetaData(结果集元数据) 349...

    JAVA上百实例源码以及开源项目

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    JAVA上百实例源码以及开源项目源代码

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

Global site tag (gtag.js) - Google Analytics