1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Spring中使用JdbcTemplate和HibernateTemplate的数据库操作

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

时间:2024-07-26 09:19:33

相关推荐

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 7List<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@Autowired12public void setSessionFactoryOverride(SessionFactory sessionFactory)13{14 super.setSessionFactory(sessionFactory);15}16 17@SuppressWarnings("RedundantCast")18@Override19public 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 @Repository7 public class DepositInforDao extends BaseDaoHibernate<DepositInfor> implements DepositInforBaseDao{8 }

DepositInfor

package com.jason.centralbank.entities;import javax.persistence.*;@Entity@Table(name = "包头地区存款金额统计表")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;}@Overridepublic String toString() {return "DepositInfor{" +"Institution='" + Institution + '\'' +", Jan='" + Jan + '\'' +", Feb='" + Feb + '\'' +", Mar='" + Mar + '\'' +", Apr='" + Apr + '\'' +", May='" + May + '\'' +", Jun='" + Jun + '\'' +", FirstHalfYear='" + FirstHalfYear + '\'' +'}';}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。