知识大全 Spring DAO之JDBC
Posted 知
篇首语:亦余心之所善兮,虽九死其犹未悔。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring DAO之JDBC相关的知识,希望对你有一定的参考价值。
Spring DAO之JDBC 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Spring DAO之JDBC
Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术 如JDBC Hibernate或者JDO等 它不仅可以让你方便地在这些持久化技术间切换 而且让你在编码的时候不用考虑处理各种技术中特定的异常
为了便于以一种一致的方式使用各种数据访问技术 如JDBC JDO和Hibernate Spring提供了一套抽象DAO类供你扩展 这些抽象类提供了一些方法 通过它们你可以 获得与你当前使用的数据访问技术相关的数据源和其他配置信息
Dao支持类
JdbcDaoSupport JDBC数据访问对象的基类 需要一个DataSource 同时为子类提供 JdbcTemplate
HibernateDaoSupport Hibernate数据访问对象的基类 需要一个SessionFactory 同时为子类提供 HibernateTemplate 也可以选择直接通过 提供一个HibernateTemplate来初始化 这样就可以重用后者的设置 例如SessionFactory flush模式 异常翻译器(exception translator)等等
JdoDaoSupport JDO数据访问对象的基类 需要设置一个PersistenceManagerFactory 同时为子类提供JdoTemplate
JpaDaoSupport JPA数据访问对象的基类 需要一个EntityManagerFactory 同时 为子类提供JpaTemplate
本节主要讨论Sping对JdbcDaoSupport的支持
下面是个例子 drop table if exists user; /* Table: usercreate table user ( id bigint AUTO_INCREMENT not null name varchar( ) age int primary key (id) );
public class User private Integer id; private String name; private Integer age;
public Integer getId() return id;
public void setId(Integer id) this id = id;
public String getName() return name;
public void setName(String name) this name = name;
public Integer getAge() return age;
public void setAge(Integer age) this age = age;
/** * Created by IntelliJ IDEA <br> * <b>User</b>: leizhimin<br> * <b>Date</b>: : : <br> * <b>Note</b>: DAO接口 */ public interface IUserDAO public void insert(User user);
public User find(Integer id);
import javax sql DataSource; import java sql Connection; import java sql SQLException;
/** * Created by IntelliJ IDEA <br> * <b>User</b>: leizhimin<br> * <b>Date</b>: : : <br> * <b>Note</b>: 基类DAO 提供了数据源注入 */ public class BaseDAO private DataSource dataSource;
public DataSource getDataSource() return dataSource;
public void setDataSource(DataSource dataSource) this dataSource = dataSource;
public Connection getConnection() Connection conn = null; try conn = dataSource getConnection(); catch (SQLException e) e printStackTrace(); return conn;
/** * Created by IntelliJ IDEA <br> * <b>User</b>: leizhimin<br> * <b>Date</b>: : : <br> * <b>Note</b>: DAO实现 */ public class UserDAO extends BaseDAO implements IUserDAO
public JdbcTemplate getJdbcTemplate() return new JdbcTemplate(getDataSource()); public void insert(User user) String name = user getName(); int age = user getAge() intValue();
// jdbcTemplate update( INSERT INTO user (name age) // + VALUES( + name + + age + ) );
String sql = insert into user(name age) values(? ?) ; getJdbcTemplate() update(sql new Object[]name age);
public User find(Integer id) List rows = getJdbcTemplate() queryForList( SELECT * FROM user WHERE id= + id intValue());
Iterator it = erator(); if (it hasNext()) Map userMap = (Map) it next(); Integer i = new Integer(userMap get( id ) toString()); String name = userMap get( name ) toString(); Integer age = new Integer(userMap get( age ) toString());
User user = new User();
user setId(i); user setName(name); user setAge(age);
return user; return null;
<?xml version= encoding= UTF ?> <!DOCTYPE beans PUBLIC //SPRING/DTD BEAN/EN beans dtd >
<beans> <bean id= dataSource class= mons dbcp BasicDataSource singleton= true > <property name= driverClassName > <value> mysql jdbc Driver</value> </property> <property name= url > <value>jdbc:mysql://localhost: /springdb</value> </property> <property name= username > <value>root</value> </property> <property name= password > <value>leizhimin</value> </property> </bean>
<bean id= baseDAO class= lavasoft springnote ch _jdbc _temp BaseDAO abstract= true > <property name= dataSource > <ref bean= dataSource /> </property> </bean>
<bean id= userDAO class= lavasoft springnote ch _jdbc _temp UserDAO parent= baseDAO > </bean>
</beans>
import ntext ApplicationContext; import ntext support FileSystemXmlApplicationContext;
/** * Created by IntelliJ IDEA <br> * <b>User</b>: leizhimin<br> * <b>Date</b>: : : <br> * <b>Note</b>: 测试类 客户端 */ public class SpringDAODemo public static void main(String[] args) ApplicationContext context = new FileSystemXmlApplicationContext( D:\\\\_spring\\\\src\\\\\\\\lavasoft\\\\springnote\\\\ch _jdbc _temp\\\\bean jdbc temp xml ); User user = new User(); user setName( hahhahah ); user setAge(new Integer( )); IUserDAO userDAO = (IUserDAO) context getBean( userDAO ); userDAO insert(user); user = userDAO find(new Integer( )); System out println( name: + user getName());
运行结果
log j:WARN No appenders could be found for logger (re CollectionFactory) log j:WARN Please initialize the log j system properly name: jdbctemplate
Process finished with exit code
cha138/Article/program/Java/ky/201311/28510相关参考
Spring中使用JDBC 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!首先要获得DataSour
Spring通过JDBC配置数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!XXXdataxm
知识大全 spring中的jdbc访问类JdbcTemplate使用
spring中的jdbc访问类JdbcTemplate使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
可能大家也都习惯了spring和hibernate对CLOB字段的处理在spring中配置c
Spring入门之理解Spring的打包方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取
Spring总结实例之消息与事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Spring的消
知识大全 Spring的IoC学习笔记之BeanFactoryPostProcessor
Spring的IoC学习笔记之BeanFactoryPostProcessor 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,
知识大全 Spring 2.5.6新特性之packagesToScan
Spring2.5.6新特性之packagesToScan 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Spring声明式事务管理源码解读之事务提交 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 其实
Spring声明式事务管理源码解读之事务开始 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在s