package com.frame.support;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.ScrollableResults;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.jdbc.Work;
import org.springframework.beans.factory.annotation.Autowired;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class BaseDao<T> {
@Autowired
private SessionFactory sessionFactory;
protected Class<T> entityClass;
public BaseDao() {
}
protected Class getEntityClass() {
if (entityClass == null) {
entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
return entityClass;
}
/**
* @return session
*/
public Session getSession() {
//需要开启事物,才能得到CurrentSession
return sessionFactory.getCurrentSession();
}
/**
* <保存实体>
* <完整保存实体>
* @param t 实体参数
* @see com.itv.launcher.util.IBaseDao#save(java.lang.Object)
*/
public void save(T t) {
this.getSession().save(t);
}
/**
* <保存或者更新实体>
* @param t 实体
* @see com.itv.launcher.util.IBaseDao#saveOrUpdate(java.lang.Object)
*/
public void saveOrUpdate(T t) {
this.getSession().saveOrUpdate(t);
}
/**
* <load>
* <加载实体的load方法>
* @param id 实体的id
* @return 查询出来的实体
* @see com.itv.launcher.util.IBaseDao#load(java.io.Serializable)
*/
public T load(Serializable id) {
T load = (T) this.getSession().load(getEntityClass(), id);
return load;
}
/**
* <get>
* <查找的get方法>
* @param id 实体的id
* @return 查询出来的实体
* @see com.itv.launcher.util.IBaseDao#get(java.io.Serializable)
*/
public T get(Serializable id) {
T load = (T) this.getSession().get(getEntityClass(), id);
return load;
}
/**
* <contains>
* @param t 实体
* @return 是否包含
* @see com.itv.launcher.util.IBaseDao#contains(java.lang.Object)
*/
public boolean contains(T t) {
return this.getSession().contains(t);
}
/**
* <delete>
* <删除表中的t数据>
* @param t 实体
* @see com.itv.launcher.util.IBaseDao#delete(java.lang.Object)
*/
public void delete(T t) {
this.getSession().delete(t);
}
/**
* <根据ID删除数据>
* @param Id 实体id
* @return 是否删除成功
* @see com.itv.launcher.util.IBaseDao#deleteById(java.io.Serializable)
*/
public boolean deleteById(Serializable Id) {
System.out.println("-----------"+Id);
T t = get(Id);
System.out.println("======="+t);
if(t == null){
return false;
}
delete(t);
return true;
}
/**
* <删除所有>
* @param entities 实体的Collection集合
* @see com.itv.launcher.util.IBaseDao#deleteAll(java.util.Collection)
*/
public void deleteAll(Collection<T> entities) {
for(Object entity : entities) {
this.getSession().delete(entity);
}
}
/**
* <执行Hql语句>
* @param hqlString hql
* @param values 不定参数数组
* @see com.itv.launcher.util.IBaseDao#queryHql(java.lang.String, java.lang.Object[])
*/
public void queryHql(String hqlString, Object... values) {
Query query = this.getSession().createQuery(hqlString);
if (values != null)
{
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
}
query.executeUpdate();
}
/**
* <执行Sql语句>
* @param sqlString sql
* @param values 不定参数数组
* @see com.itv.launcher.util.IBaseDao#querySql(java.lang.String, java.lang.Object[])
*/
public void querySql(String sqlString, Object... values) {
Query query = this.getSession().createSQLQuery(sqlString);
if (values != null)
{
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
}
query.executeUpdate();
}
/**
* <根据HQL语句查找唯一实体>
* @param hqlString HQL语句
* @param values 不定参数的Object数组
* @return 查询实体
* @see com.itv.launcher.util.IBaseDao#getByHQL(java.lang.String, java.lang.Object[])
*/
public T getByHQL(String hqlString, Object... values) {
Query query = this.getSession().createQuery(hqlString);
if (values != null)
{
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
}
return (T) query.uniqueResult();
}
/**
* <根据SQL语句查找唯一实体>
* @param sqlString SQL语句
* @param values 不定参数的Object数组
* @return 查询实体
* @see com.itv.launcher.util.IBaseDao#getBySQL(java.lang.String, java.lang.Object[])
*/
public T getBySQL(String sqlString, Object... values) {
Query query = this.getSession().createSQLQuery(sqlString);
if (values != null)
{
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
}
return (T) query.uniqueResult();
}
/**
* <根据HQL语句,得到对应的list>
* @param hqlString HQL语句
* @param values 不定参数的Object数组
* @return 查询多个实体的List集合
* @see com.itv.launcher.util.IBaseDao#getListByHQL(java.lang.String, java.lang.Object[])
*/
public List<T> getListByHQL(String hqlString, Object... values) {
Query query = this.getSession().createQuery(hqlString);
if (values != null)
{
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
}
return query.list();
}
/**
* <根据SQL语句,得到对应的list>
* @param sqlString HQL语句
* @param values 不定参数的Object数组
* @return 查询多个实体的List集合
* @see com.itv.launcher.util.IBaseDao#getListBySQL(java.lang.String, java.lang.Object[])
*/
public List<T> getListBySQL(String sqlString, Object... values ) {
Query query = this.getSession().createSQLQuery(sqlString);
if (values != null)
{
for (int i = 0; i < values.length; i++)
{
query.setParameter(i, values[i]);
}
}
return query.list();
}
/**
* 由sql语句得到List
* @param sql
* @param map
* @param values
* @return List
* @see com.itv.launcher.util.IBaseDao#findListBySql(java.lang.String, com.itv.launcher.util.RowMapper, java.lang.Object[])
*/
public List findListBySql(final String sql, final RowMapper map, final Object... values) {
final List list = new ArrayList();
// 执行JDBC的数据批量保存
Work jdbcWork = new Work()
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Frame.rar (84个子文件)
Frame
config
jdbc.properties 305B
log4j.properties 766B
hibernate.cfg.xml 522B
beans-config.xml 5KB
www
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 3KB
classes
jdbc.properties 305B
log4j.properties 766B
com
frame
dao
StudentDao.class 395B
impl
StudentDaoImpl.class 2KB
support
BaseDao.class 10KB
PageResults.class 2KB
RowMapper.class 228B
BaseDao$1.class 2KB
controller
StudentController.class 5KB
service
StudentService.class 372B
impl
StudentServiceImpl.class 1KB
util
entities
Student.class 2KB
hibernate.cfg.xml 522B
beans-config.xml 5KB
jsp
list.jsp 972B
detail.jsp 481B
include.jspf 418B
add.jsp 620B
edit.jsp 1KB
lib
hibernate-core-4.3.10.Final.jar 5.04MB
hibernate-jpa-2.1-api-1.0.0.Final.jar 111KB
spring-websocket-4.2.0.RC3.jar 417KB
mchange-commons-java-0.2.10.jar 592KB
spring-webmvc-4.2.0.RC3.jar 845KB
dom4j-1.6.1.jar 307KB
spring-oxm-4.2.0.RC3.jar 81KB
spring-context-4.2.0.RC3.jar 1.03MB
log4j-1.2.16.jar 470KB
c3p0-0.9.5.1.jar 486KB
aopalliance-1.0.jar 4KB
antlr-2.7.7.jar 435KB
spring-messaging-4.2.0.RC3.jar 361KB
spring-aop-4.2.0.RC3.jar 355KB
spring-orm-4.2.0.RC3.jar 455KB
standard.jar 384KB
spring-instrument-4.2.0.RC3.jar 7KB
spring-web-4.2.0.RC3.jar 748KB
spring-core-4.2.0.RC3.jar 1MB
spring-jms-4.2.0.RC3.jar 273KB
spring-webmvc-portlet-4.2.0.RC3.jar 173KB
spring-aspects-4.2.0.RC3.jar 57KB
spring-jdbc-4.2.0.RC3.jar 412KB
jboss-logging-annotations-1.2.0.Beta1.jar 11KB
spring-beans-4.2.0.RC3.jar 712KB
jandex-1.1.0.Final.jar 75KB
jboss-logging-3.1.3.GA.jar 56KB
spring-context-support-4.2.0.RC3.jar 176KB
spring-test-4.2.0.RC3.jar 508KB
jstl.jar 20KB
javassist-3.18.1-GA.jar 697KB
mysql-connector-java-5.1.32-bin.jar 946KB
spring-expression-4.2.0.RC3.jar 256KB
hibernate-commons-annotations-4.0.5.Final.jar 74KB
jboss-transaction-api_1.2_spec-1.0.0.Final.jar 27KB
commons-logging-1.2.jar 60KB
aspectjweaver-1.8.3.jar 1.78MB
spring-instrument-tomcat-4.2.0.RC3.jar 10KB
spring-tx-4.2.0.RC3.jar 257KB
index.jsp 272B
.factorypath 494B
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 345B
org.eclipse.wst.common.component 628B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.jdt.apt.core.prefs 111B
.jsdtscope 496B
org.eclipse.jdt.core.prefs 422B
src
com
frame
dao
StudentDao.java 354B
impl
StudentDaoImpl.java 846B
support
BaseDao.java 13KB
RowMapper.java 267B
PageResults.java 2KB
controller
StudentController.java 4KB
service
impl
StudentServiceImpl.java 1KB
StudentService.java 328B
util
entities
Student.java 1KB
.project 1KB
.classpath 4KB
.apt_generated
共 84 条
- 1
桥东老混混
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页