`
xplq
  • 浏览: 89892 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JdbcTemplate 研究

阅读更多
开发环境:eclipse+lomboz+mysql6.0
所需jar包:commons-dbcp.jar,commons-pool.jar,commons-logging.jar,mysql-connector-java-5.0.7-bin.jar,spring.jar
一、建立数据库(springdemo)和book表
CREATE TABLE `book` (
  `id` varchar(80) NOT NULL,
  `name` varchar(20) NOT NULL,
  `author` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

二、编写域(Book.java)和DAO访问层
域对象:Book.java
package test.jdbc;

public class Book {
	private String id;
	private String name;
	private String author;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
}

DAO访问接口:BookDAO.java
package test.jdbc;

import java.util.List;

public interface BookDAO {
	List<Book> queryByAuthor(String author);

	List<Book> queryAll();

	void create(Book book);

	void update(Book book);

	void delete(String id);
}

DAO访问层:BookDAOImpl.java,继承JdbcDaoSupport,实现BookDAO
package test.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

public class BookDAOImpl extends JdbcDaoSupport implements BookDAO {
         //查询,简单的ORM映射
	class BookRowMapper implements RowMapper {
		@Override
		public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
			// TODO Auto-generated method stub
			Book book = new Book();
			book.setId(rs.getString("id"));
			book.setName(rs.getString("name"));
			book.setAuthor(rs.getString("author"));
			return book;
		}

	}
          //查询所有记录
	@Override
	public List<Book> queryAll() {
		// TODO Auto-generated method stub
		return this.getJdbcTemplate().query("select * from book",
				new BookRowMapper());
	}
         //按作者查询
	@Override
	public List<Book> queryByAuthor(String author) {
		return this.getJdbcTemplate().query(
				"select * from book where author=?", new Object[] { author },
				new BookRowMapper());
	}
         //增加
	@Override
	public void create(Book book) {		
		this.getJdbcTemplate().update("insert into book(id,name,author) values(?,?,?)",new Object[]{book.getId(),book.getName(),book.getAuthor()});
	}
         //更新
	@Override
	public void update(Book book) {
		this.getJdbcTemplate().update("update book set name=?,author=? where id=?)",new Object[]{book.getId(),book.getName(),book.getAuthor()});
	}
         //删除
	@Override
	public void delete(String id) {
		// TODO Auto-generated method stub
		this.getJdbcTemplate().update("delete from book where id=?",new Object[]{id});
	}

}

三、编写配置文件:applicationContext.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"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
			http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<!--使用apache的dbcp配置数据源-->
	<bean id="jdbcDataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url"
			value="jdbc:mysql://localhost:3306/springdemo" />
		<property name="username" value="root" />
		<property name="password" value="123456" />
	</bean>
	<bean id="jdbcTemplateBookDao" class="test.jdbc.BookDAOImpl">
		<property name="dataSource" ref="jdbcDataSource"/>
	</bean>	
</beans>

四、编写测试文件:Main.java
package test.jdbc;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

	/**
	 * @param args
	 * @throws SQLException
	 */
	public static void main(String[] args) throws SQLException {
		ApplicationContext ctx = new ClassPathXmlApplicationContext(
				"applicationContext.xml");
		BookDAO bookDao=(BookDAO)ctx.getBean("jdbcTemplateBookDao");		
		Book book;		
		//增加
		book= new Book();			
		book.setId(UUID.randomUUID().toString());
		book.setAuthor("lunzi2");
		book.setName("cow2");		
		bookDao.create(book);
		
		//查询所有
		List<Book> listAll=null;
		listAll=bookDao.queryAll();
		Iterator<Book> itor=listAll.iterator();
		while(itor.hasNext()){
			book=itor.next();
			System.out.println(book.getName());
		}
		//按作者查询
		listAll=bookDao.queryByAuthor("lunzi2");
		System.out.println("查询到记录为:"+listAll.size()+"条");
		//删除
		bookDao.delete("16acc01f-0e6e-4d79-92ab-489f1a1cf457");
	}

}

ok,完成,简单。。。。
分享到:
评论

相关推荐

    一个简单的spring-jdbctemplate扩展

    Spring的JdbcTemplate是Spring框架中的一个核心组件,用于简化数据库操作。它提供了一种模板方法模式,抽象出常见的...通过研究这个项目的代码,我们可以学习如何扩展Spring框架,以及如何更好地组织和设计数据访问层。

    Spring Security 3.1 +Spring +Servlet+JdbcTemplate

    如果这是项目的源代码,那么深入研究这个部分将有助于理解Spring Security是如何集成到项目中的,以及它是如何处理认证和授权的。 总的来说,这个项目展示了如何使用Spring Security 3.1与Spring、Servlet和...

    java jdbcTemplate 资源及实例代码

    通过研究这个压缩包中的代码和文档,开发者可以深入理解如何在实际项目中整合和利用这些技术,提高数据库操作的效率和可靠性。对于初学者来说,这是一个很好的学习资源,能够帮助他们掌握Java与数据库交互的核心技能...

    基于 Spring、SpringMVC、JDBCTemplate博客论坛系统.zip

    是一个基于 Spring、SpringMVC、JDBCTemplate、JSP 开发的 Java Web 项目。项目页面美观大气,完成度较高,前后端不分离的单体架构,非常适合刚刚接触学习 Spring 的技术小白学习,也非常适合学校中的项目答辩… ...

    一个灵活轻量级的基于SpringjdbcTemplate的ORM

    在IT行业中,ORM(Object-Relational Mapping)框架是连接数据库和应用程序的重要桥梁,它使得开发者可以使用面向对象的方式...通过深入研究nimble-orm,开发者能够更好地掌握数据库操作技巧,提升项目开发的质量和速度。

    基于Spring MVC和JdbcTemplate的简易设备资产管理系统设计源码

    本项目是基于Spring MVC和JdbcTemplate开发的简易设备资产管理系统设计源码,主要使用Java进行开发。项目共包含147个文件,其中XML配置文件86个,Java源代码文件46个,META-INF文件4个,项目构建文件iml和properties...

    图书管理系统( Spring+Spring MVC+JdbcTemplate).zip

    这项任务通常要求学生运用所学专业知识,通过独立研究和创新,完成一个实际问题的解决方案或者开展一项有价值的项目。 首先,毕业设计的选择通常由学生根据个人兴趣、专业方向以及实际需求来确定。学生需要在导师的...

    spring源码研究

    4. **Spring JDBC与事务管理**:Spring提供了JdbcTemplate和NamedParameterJdbcTemplate等工具类,简化了数据库操作,同时通过PlatformTransactionManager接口实现事务管理。源码分析可以帮助我们了解其事务传播行为...

    spring05-3

    描述提到“spring中整合jdbc,使用spring的jdbc模板类”,这表明我们将深入研究Spring如何与Java数据库连接(JDBC)集成,并使用Spring的JdbcTemplate类。在实际开发中,虽然直接使用JdbcTemplate的情况可能较少,但...

    JAVA项目-简易网吧管理系统

    【JAVA项目-简易网吧管理系统】是一个...通过深入研究该项目,开发者不仅可以学习到如何使用JDBCTemplate进行数据库操作,还能了解如何构建一个完整的Java项目,包括数据库设计、事务处理、业务逻辑实现等多个方面。

    Spring+JDBC实例

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了全面的平台。而JDBC(Java Database Connectivity)...如果你想要深入学习,可以参考提供的博客链接或其他相关资料,进行实践和研究。

    spring+oracle

    在IT行业中,Spring框架是Java应用开发中的一个关键组件,尤其在企业级应用中广泛使用。...通过研究这个项目,你可以更好地理解Spring的数据访问和事务处理能力,以及如何与Oracle数据库配合工作。

    mysql-jdbc-Spring源代码分析

    对于进一步学习和研究`JdbcTemplate`的读者,以下是一些建议的方向: - **深入了解Spring框架的事务管理机制**:了解如何利用Spring的事务管理特性来增强数据库操作的健壮性和一致性。 - **学习其他Spring提供的DAO...

    spring jdbc 实例源码

    2. 研究`JdbcTemplate`的bean配置,理解其作用。 3. 分析SQL查询和更新的代码,学习如何使用`JdbcTemplate`的方法执行这些操作。 4. 查看事务管理配置,理解声明式事务的工作原理。 5. 学习`RowMapper`的实现,了解...

    『原创』OSGI研究笔记1 - Equinox ServletBridge模式下调用Datasource

    标题中的“OSGI研究笔记1 - Equinox ServletBridge模式下调用Datasource”表明了这篇文章将探讨如何在OSGI(Open Service Gateway Initiative)环境下,利用Equinox的ServletBridge模块来访问和使用DataSource。...

    Spring1.zip

    Spring框架是Java开发中最常用的轻量级开源框架之一,它以IoC(Inversion of Control,控制...通过深入研究这些内容,开发者可以更好地掌握Spring框架的核心功能,并将其应用于实际项目中,提高开发效率和代码质量。

    ssh2分页查询

    SSH2(Spring、Struts2...通过深入研究这个项目,你可以理解如何在实际开发中整合这三个组件,以及如何在不同层面上实现分页功能。对于初学者,这是一个宝贵的实践案例,可以帮助他们更好地理解和掌握SSH2框架的使用。

    MYSQL开发性能研究之批量插入数据的优化方法

    研究表明,线程或连接数保持在CPU核心数的两倍时,性能达到最佳。这与并发处理的理论相吻合,即过多的并发可能导致资源竞争,反而降低性能。 对于乱序插入,即主键不按照顺序插入的情况,性能显著下降。这是因为...

Global site tag (gtag.js) - Google Analytics