`

spring学习实例之spring对jdbc的支持

阅读更多
1、包结构:


2、源代码:
Book.java
package domain;

public class Book {
	private long id;
	private String name;
	private double price;
	
	public Book(){
		
	}
	
	public Book(String name,double price){
		this.name=name;
		this.price=price;
	}
	
	public Book(long id,String name,double price){
		this(name,price);
		this.id=id;
	}
	
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	
	public String toString(){
		return "id:"+id+"-name:"+name+"-price:"+price;
	}
	
}

BookDao.java
package dao;

import java.util.List;
import domain.Book;

public interface BookDao {
	void save(Book b);
	void update(Book b);
	void delete(long id);
	Book findById(long id);
	List<Book> findByPrice(double from,double to);
}

BookDaoImpl.java
package dao.jdbc;

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

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import dao.BookDao;
import domain.Book;

public class BookDaoImpl extends JdbcDaoSupport implements BookDao {

	public void delete(long id) {
		String sql="delete from book where id = ?";
		this.getJdbcTemplate().update(sql, new Object[]{id});
	}

	public Book findById(long id) {
		String sql = "select * from book where id =?";
		ResultSetExtractor rse = null;
		rse = new ResultSetExtractor() {
			public Object extractData(ResultSet rs) throws SQLException,
					DataAccessException {
				if (rs.next()) {
					return new Book(rs.getLong(1), rs.getString(2), rs
							.getDouble(3));
				} else {
					return null;
				}
			}
		};
		return (Book) this.getJdbcTemplate().query(sql, new Object[] { id },
				rse);
	}

	public List findByPrice(double from, double to) {
		String sql="select * from book where price between ? and ?";
		return this.getJdbcTemplate().query(sql, new Object[]{from,to},new RowMapper(){
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				return new Book(rs.getLong(1),rs.getString(2),rs.getDouble(3));
			}
		});
	}

	public void save(Book b) {
		String sql = "insert into book(id,name,price) values(?,?,?) ";
		this.getJdbcTemplate().update(sql,
				new Object[] { b.getId(), b.getName(), b.getPrice() });
	}

	public void update(Book b) {
		String sql="update book set name = ? ,  price = ?  where id = ?";
		this.getJdbcTemplate().update(sql,new Object[]{b.getName(),b.getPrice(),b.getId()});
	}
}

applicationContext_jdbc.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:p="http://www.springframework.org/schema/p"
	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"></property>
		<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:myorcl"></property>
		<property name="username" value="myorcl"></property>
		<property name="password" value="embed"></property>
	</bean>
	
	<bean id="bookDao" class="dao.jdbc.BookDaoImpl">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
</beans>

BookDaoTest.java
package test;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import dao.BookDao;
import domain.Book;

public class BookDaoTest {
	public static void main(String[]args){
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext_jdbc.xml");
		BookDao dao=(BookDao)ac.getBean("bookDao");
		dao.save(new Book(10,"三个火枪手",44.9));
		List<Book> books=dao.findByPrice(30, 60);
		for(Book book:books){
			System.out.println(book);
		}
	}
}
  • 大小: 9.9 KB
分享到:
评论

相关推荐

    Spring+JDBC实例

    当我们谈论"Spring+JDBC实例"时,通常是指在Spring框架中使用JDBC进行数据访问的方式,这种方式可以利用Spring提供的便利性,同时保留对数据库的直接控制。 在Spring框架中,JDBC操作被封装在`org.springframework....

    Spring mvc、 Spring、 Spring jdbc 整合实例源码

    在整合Spring MVC、Spring和Spring JDBC的实例中,你可能会看到以下几个关键部分: 1. **配置文件**:包括Spring的主配置文件(如`applicationContext.xml`),其中定义了Bean的配置,包括DataSource、JdbcTemplate...

    Spring mvc + Spring + Spring jdbc 整合实例源码

    《Spring MVC + Spring + Spring JDBC 整合实例详解》 在Java Web开发中,Spring框架因其强大的功能和灵活的设计而备受推崇。Spring MVC、Spring核心模块以及Spring JDBC是Spring框架中的三大重要组成部分,它们...

    spring_JDBC整合包

    此外,Spring JDBC也支持存储过程的调用,以及批量更新操作。在处理大量数据时,还可以通过分页查询来优化性能。在分布式环境下,Spring JDBC配合Spring的事务管理功能,可以实现跨数据库操作的事务一致性。 这个...

    Spring JDBC应用实例讲解

    通过学习这些Spring JDBC的应用实例,你可以有效地整合Spring与数据库,提升开发效率,同时保持代码的简洁和可维护性。在实际项目中,Spring JDBC可以与MyBatis、Hibernate等ORM框架结合使用,以满足不同层次的需求...

    springjdbc.zip_SpringJDBC_spring jdbc_spring 增删改查_springjdbc xml

    这个`springjdbc.zip`压缩包很可能包含了示例代码和配置文件,用于演示如何使用Spring JDBC来执行基本的数据库操作,如增、删、改、查。 1. **Spring JDBC模块**:Spring JDBC模块主要由`org.springframework.jdbc`...

    spring jdbc 实例源码

    这个项目不仅包含了源代码,还预设了完整的数据库,因此非常适合学习和理解Spring JDBC的实际应用。 在Spring JDBC中,我们主要关注以下几个核心概念: 1. **JdbcTemplate**: 这是Spring JDBC提供的主要类,用于...

    Spring mvc + Spring + Spring jdbc 整合 demo

    这个整合Demo是一个学习和实践Spring MVC、Spring和Spring JDBC整合的绝佳案例,它涵盖了Web应用开发的多个层面,从接收用户请求到数据持久化,再到视图的呈现。通过深入研究这个Demo,开发者可以更好地理解和掌握...

    java开发之SpringMVC + Spring + SpringJDBC整合.zip

    同时,还可以参考网络资源,如“史上最全最强SpringMVC详细示例实战教程”和“SpringMVC + Spring + SpringJDBC整合”的文档,学习如何创建基于Maven的Web项目,以及如何在IDEA中添加和管理jar包。 总之,SpringMVC...

    Spring JDBC相关jar包:spring_jdbc_4.0.0.zip

    Spring JDBC模块的主要目标是减少对JDBC API的直接依赖,通过提供一种更加高级、易于使用的编程模型来简化数据库访问。在这个“spring_jdbc_4.0.0.zip”压缩包中,包含的是Spring JDBC 4.0.0版本的jar文件,即...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    在本项目中,我们主要利用Spring框架,包括其核心模块Spring、MVC模块Spring MVC以及数据访问/集成模块Spring JDBC,结合MySQL数据库来构建一个基础的登录注册系统。以下是这个项目涉及的关键技术点: 1. **Spring...

    SpringJDBC.rar_jdbc spring_spring jd_spring jdbc_spring使用JDBC进行数

    在“www.pudn.com.txt”和“SpringJDBC”这两个文件中,可能包含了具体的代码示例、配置文件或者对这些概念的详细解释。学习这些内容有助于深入理解Spring JDBC的使用,从而更高效地进行数据库操作。 总之,Spring ...

    spring-jdbcTemplate实例工程

    《深入解析Spring JdbcTemplate》 Spring JDBC Template是Spring框架中...这个实例工程为我们提供了一个学习和实践Spring JdbcTemplate的良好平台,通过对其中代码的分析和运行,可以更好地理解和掌握其用法和精髓。

    SpringJDBC.rar_SpringJDBC_spring jdbc

    通过这个SpringJDBC.rar的案例,初学者可以学习到如何配置DataSource,如何创建JdbcTemplate实例,以及如何编写和执行SQL语句。同时,实践中还可以了解到如何将Spring JDBC整合到Spring Boot项目中,以及如何处理...

    springframework实例代码

    在Spring实例代码中,我们可能还会看到Spring与这些技术的整合,如使用Spring Boot启动应用,配合MyBatis进行数据访问,以及使用AngularJS构建前端交互。 总的来说,"springframework实例代码"将涵盖Spring框架的...

    JAVA SPRING 框架实例

    Spring提供了对多种数据访问技术的支持,如JDBC、Hibernate、MyBatis等。通过`@Repository`注解,我们可以将数据库操作封装为DAO(数据访问对象),Spring会自动处理事务管理,确保数据一致性。 ### 6. Spring Boot...

    spring JDbc

    在本实例中,我们将深入探讨Spring JDBC的使用,并以`SpringJdbcTemplate`为例来阐述其主要功能和优势。 首先,Spring JDBC通过`JdbcTemplate`和`NamedParameterJdbcTemplate`类提供了强大的数据库访问功能。`...

Global site tag (gtag.js) - Google Analytics