Spring中使用JdbcTemplate和HibernateTemplate的数据库操作

目前我接触到的Spring的数据库操作主要包括两种,主要使用JdbcTemplate和HibernateTemplate。后者用于结合Hibernate操作。

两者都提供了持久层访问模板化,只需要获得一个SessionFactory就可以执行持久化操作。可以完成增删改查操作。

获取JdbcTemplate和HibernateTemplate的方式有两种

1. 传统的方式

2. 使用JdbcDaoSupport和HibernateDaoSupport获取,其包含两个方法。

(1) getHibernateTemplate/getJdbcTemplate (2) setSessionFactory

同样需要注入SesssionFactory



一般采用第二种方式



构建DAO层查询

BaseDao

1 package com.jason.centralbank.dao;
2
3 import java.util.List;
4
5 public interface BaseDao<T> {
6
7     List<T> findAll(Class<T> entityClazz);
8 }

BaseDaoHibernate

 1 package com.jason.centralbank.dao;
 2
 3 import org.hibernate.SessionFactory;
 4 import org.springframework.beans.factory.annotation.Autowired;
 5 import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
 6
 7 import java.util.List;
 8
 9 public class BaseDaoHibernate<T> extends HibernateDaoSupport implements BaseDao<T> {
10
11     @Autowired
12     public void setSessionFactoryOverride(SessionFactory sessionFactory)
13     {
14         super.setSessionFactory(sessionFactory);
15     }
16
17     @SuppressWarnings("RedundantCast")
18     @Override
19     public List<T> findAll(Class<T> entityClazz) {
20         return (List<T>) getHibernateTemplate().loadAll(entityClazz);
21     }
22 }

DepositInforBaseDao

package com.jason.centralbank.dao;

import com.jason.centralbank.entities.DepositInfor;

public interface DepositInforBaseDao extends BaseDao<DepositInfor>{
}

DepositInforDao

1 package com.jason.centralbank.dao;
2
3 import com.jason.centralbank.entities.DepositInfor;
4 import org.springframework.stereotype.Repository;
5
6 @Repository
7 public class DepositInforDao extends BaseDaoHibernate<DepositInfor> implements DepositInforBaseDao{
8 }

DepositInfor

package com.jason.centralbank.entities;

import javax.persistence.*;

@Entity
@Table(name = "2011包头地区存款金额统计表")
public class DepositInfor {

    @Id
    @Column(name = "单位")
    private String Institution;
    @Column(name = "一月")
    private String Jan;
    @Column(name = "二月")
    private String Feb;
    @Column(name = "三月")
    private String Mar;
    @Column(name = "四月")
    private String Apr;
    @Column(name = "五月")
    private String May;
    @Column(name = "六月")
    private String Jun;
    @Column(name = "上半年")
    private String FirstHalfYear;

    public String getInstitution() {
        return Institution;
    }

    public void setInstitution(String institution) {
        Institution = institution;
    }

    public String getJan() {
        return Jan;
    }

    public void setJan(String jan) {
        Jan = jan;
    }

    public String getFeb() {
        return Feb;
    }

    public void setFeb(String feb) {
        Feb = feb;
    }

    public String getMar() {
        return Mar;
    }

    public void setMar(String mar) {
        Mar = mar;
    }

    public String getApr() {
        return Apr;
    }

    public void setApr(String apr) {
        Apr = apr;
    }

    public String getMay() {
        return May;
    }

    public void setMay(String may) {
        May = may;
    }

    public String getJun() {
        return Jun;
    }

    public void setJun(String jun) {
        Jun = jun;
    }

    public String getFirstHalfYear() {
        return FirstHalfYear;
    }

    public void setFirstHalfYear(String firstHalfYear) {
        FirstHalfYear = firstHalfYear;
    }

    @Override
    public String toString() {
        return "DepositInfor{" +
                "Institution=‘" + Institution + ‘\‘‘ +
                ", Jan=‘" + Jan + ‘\‘‘ +
                ", Feb=‘" + Feb + ‘\‘‘ +
                ", Mar=‘" + Mar + ‘\‘‘ +
                ", Apr=‘" + Apr + ‘\‘‘ +
                ", May=‘" + May + ‘\‘‘ +
                ", Jun=‘" + Jun + ‘\‘‘ +
                ", FirstHalfYear=‘" + FirstHalfYear + ‘\‘‘ +
                ‘}‘;
    }
}
时间: 2024-11-16 14:14:24

Spring中使用JdbcTemplate和HibernateTemplate的数据库操作的相关文章

Spring中使用JdbcTemplate

软件152班杨锦宏 Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.properties: user=root password=123 driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc\:mysql\:///spring?encoding\=UFT-8 initPoolSize=5 maxPoolSize

SQL 2005 中查询或执行另外的数据库操作的方法

原文:SQL 2005 中查询或执行另外的数据库操作的方法 摘要: 如果,你想在一台数据库服务器上,查询另一个台数据服务器的数据该如何做呢?如果,你想在同一台数据服务器上,在不同的数据库之间查询数据,又该怎么办呢? 1.Synonym 2.openquery 3.Linked Servers Server Object-->Linked Servers--> serverType 选择 SQL Server, 在 Security 中 选择"Be made using this se

spring中的jdbcTemplate

spring核心配置文件中的内容 <!-- 注入dataSource --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"><

spring中的JdbcTemplate简单记录

JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修改.删除等语句:batchUpdate方法用于执行批处理相关语句: query方法及queryForXXX方法:用于执行查询相关语句: call方法:用于执行存储过程.函数相关语句. JdbcTemplate类支持的回调类: 预编译语句及存储过程创建回调:用于根据JdbcTemplate提供的连接创

详解设计模式在Spring中的应用

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,螃蟹在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”. Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.好了,话不多说,开始今天的内容. spring中常用的设计模式达到九种,我们一一举例: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Me

Spring中的用到的设计模式大全

spring中常用的设计模式达到九种,我们举例说明: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定.如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean.

Spring中应用的那些设计模式

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,我们就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”. Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.Spring中常用的设计模式达到九种,如下: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工

Spring中的设计模式

[Spring中的设计模式] http://www.uml.org.cn/j2ee/201301074.asp [详解设计模式在Spring中的应用] [http://www.geek521.com/?p=6883] [http://blog.csdn.net/fg2006/article/details/6435410] [http://ylsun1113.iteye.com/blog/828542 ] 1.简单工厂  又叫做静态工厂方法(StaticFactory Method)模式,但不属

PHP中对数据库操作的封装

在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使写出的程序在很小的改动下就可以完成后台数据库的更改. <? class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表MySql,当为 2代表 SQL Server,为3时为ODBC或其它. var $dbHost; //数据库所在主机域名 va