知识大全 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

Spring中使用JDBC  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!首先要获得DataSour

知识大全 Spring 通过JDBC配置数据库

Spring通过JDBC配置数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!XXXdataxm

知识大全 spring中的jdbc访问类JdbcTemplate使用

spring中的jdbc访问类JdbcTemplate使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 jdbc方式读取oracle的clob字段实例

         可能大家也都习惯了spring和hibernate对CLOB字段的处理在spring中配置c

知识大全 Spring入门之理解Spring的打包方式

Spring入门之理解Spring的打包方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取

知识大全 Spring总结实例之消息与事件

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声明式事务管理源码解读之事务提交

Spring声明式事务管理源码解读之事务提交  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  其实

知识大全 Spring声明式事务管理源码解读之事务开始

Spring声明式事务管理源码解读之事务开始  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在s