开发环境: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框架中的一个核心组件,用于简化数据库操作。它提供了一种模板方法模式,抽象出常见的...通过研究这个项目的代码,我们可以学习如何扩展Spring框架,以及如何更好地组织和设计数据访问层。
如果这是项目的源代码,那么深入研究这个部分将有助于理解Spring Security是如何集成到项目中的,以及它是如何处理认证和授权的。 总的来说,这个项目展示了如何使用Spring Security 3.1与Spring、Servlet和...
通过研究这个压缩包中的代码和文档,开发者可以深入理解如何在实际项目中整合和利用这些技术,提高数据库操作的效率和可靠性。对于初学者来说,这是一个很好的学习资源,能够帮助他们掌握Java与数据库交互的核心技能...
是一个基于 Spring、SpringMVC、JDBCTemplate、JSP 开发的 Java Web 项目。项目页面美观大气,完成度较高,前后端不分离的单体架构,非常适合刚刚接触学习 Spring 的技术小白学习,也非常适合学校中的项目答辩… ...
在IT行业中,ORM(Object-Relational Mapping)框架是连接数据库和应用程序的重要桥梁,它使得开发者可以使用面向对象的方式...通过深入研究nimble-orm,开发者能够更好地掌握数据库操作技巧,提升项目开发的质量和速度。
本项目是基于Spring MVC和JdbcTemplate开发的简易设备资产管理系统设计源码,主要使用Java进行开发。项目共包含147个文件,其中XML配置文件86个,Java源代码文件46个,META-INF文件4个,项目构建文件iml和properties...
这项任务通常要求学生运用所学专业知识,通过独立研究和创新,完成一个实际问题的解决方案或者开展一项有价值的项目。 首先,毕业设计的选择通常由学生根据个人兴趣、专业方向以及实际需求来确定。学生需要在导师的...
4. **Spring JDBC与事务管理**:Spring提供了JdbcTemplate和NamedParameterJdbcTemplate等工具类,简化了数据库操作,同时通过PlatformTransactionManager接口实现事务管理。源码分析可以帮助我们了解其事务传播行为...
描述提到“spring中整合jdbc,使用spring的jdbc模板类”,这表明我们将深入研究Spring如何与Java数据库连接(JDBC)集成,并使用Spring的JdbcTemplate类。在实际开发中,虽然直接使用JdbcTemplate的情况可能较少,但...
【JAVA项目-简易网吧管理系统】是一个...通过深入研究该项目,开发者不仅可以学习到如何使用JDBCTemplate进行数据库操作,还能了解如何构建一个完整的Java项目,包括数据库设计、事务处理、业务逻辑实现等多个方面。
在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用程序提供了全面的平台。而JDBC(Java Database Connectivity)...如果你想要深入学习,可以参考提供的博客链接或其他相关资料,进行实践和研究。
在IT行业中,Spring框架是Java应用开发中的一个关键组件,尤其在企业级应用中广泛使用。...通过研究这个项目,你可以更好地理解Spring的数据访问和事务处理能力,以及如何与Oracle数据库配合工作。
对于进一步学习和研究`JdbcTemplate`的读者,以下是一些建议的方向: - **深入了解Spring框架的事务管理机制**:了解如何利用Spring的事务管理特性来增强数据库操作的健壮性和一致性。 - **学习其他Spring提供的DAO...
2. 研究`JdbcTemplate`的bean配置,理解其作用。 3. 分析SQL查询和更新的代码,学习如何使用`JdbcTemplate`的方法执行这些操作。 4. 查看事务管理配置,理解声明式事务的工作原理。 5. 学习`RowMapper`的实现,了解...
标题中的“OSGI研究笔记1 - Equinox ServletBridge模式下调用Datasource”表明了这篇文章将探讨如何在OSGI(Open Service Gateway Initiative)环境下,利用Equinox的ServletBridge模块来访问和使用DataSource。...
Spring框架是Java开发中最常用的轻量级开源框架之一,它以IoC(Inversion of Control,控制...通过深入研究这些内容,开发者可以更好地掌握Spring框架的核心功能,并将其应用于实际项目中,提高开发效率和代码质量。
SSH2(Spring、Struts2...通过深入研究这个项目,你可以理解如何在实际开发中整合这三个组件,以及如何在不同层面上实现分页功能。对于初学者,这是一个宝贵的实践案例,可以帮助他们更好地理解和掌握SSH2框架的使用。
研究表明,线程或连接数保持在CPU核心数的两倍时,性能达到最佳。这与并发处理的理论相吻合,即过多的并发可能导致资源竞争,反而降低性能。 对于乱序插入,即主键不按照顺序插入的情况,性能显著下降。这是因为...