forked from maxliaops/Java_Web_Examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathObjectDao.java
More file actions
159 lines (155 loc) · 3.94 KB
/
Copy pathObjectDao.java
File metadata and controls
159 lines (155 loc) · 3.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
package com.mr.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class ObjectDao<T> {
private static SessionFactory sessionFactory = null;
private Session session = null;//创建Session对象
Transaction tx = null;//创建事务管理对象
//连接数据库
static {
try {
// 加载Hibernate配置文件
Configuration cfg = new Configuration().configure();
sessionFactory = cfg.buildSessionFactory();
} catch (Exception e) {
System.err.println("创建会话工厂失败");
e.printStackTrace();
}
}
/**
* 删除数据
* @param t
* @return
*/
public boolean deleteT(T t) {
Session session = sessionFactory.openSession();//开启Session
try {
tx = session.beginTransaction();//开启事务
session.delete(t);//执行数据删除操作
tx.commit();//事务提交
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
session.close();//关闭Session
}
return true;
}
/**
* 保存数据
* @param t
* @return
*/
public boolean saveT(T t) {
Session session = sessionFactory.openSession();//开启Session
try {
tx = session.beginTransaction();//开启事务
session.save(t);//执行数据添加操作
tx.commit();//事务提交
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
session.close();//关闭Session
}
return true;
}
/**
* 修改数据
* @param t
* @return
*/
public boolean updateT(T t) {
Session session = sessionFactory.openSession();//开启Session
try {
tx = session.beginTransaction();//开启事务
session.update(t);//执行数据修改操作
tx.commit();//事务提交
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
session.close();//关闭Session
}
return true;
}
/**
* 通过泛型定义的查询多条语句方法
* @param hql
* @return
*/
public List<T> queryList(String hql) {
session = sessionFactory.openSession();//开启Session
tx = session.beginTransaction();//开启事务
List<T> list = null;
try {
Query query = session.createQuery(hql);//利用hql语句进行查询
list = query.list();//将返回的结果集转换成List集合
} catch (Exception e) {
e.printStackTrace();
}
tx.commit();//事务提交
session.close();//关闭Session
return list;//返回List集合
}
/**
* 在查询结果中返回指定条数的方法
* @param hql
* @param showNumber 查询结果的条数
* @param beginNumber 查询的起始位置
* @return
*/
public List<T> queryList(String hql, int showNumber, int beginNumber) {
session = sessionFactory.openSession();//开启Session
tx = session.beginTransaction();//开启事务
List<T> list = null;
try {
Query query = session.createQuery(hql);//利用hql语句进行查询
query.setMaxResults(showNumber);//设置查询结果的条数
query.setFirstResult(beginNumber);//设置查询的起始位置
list = query.list();//将返回的结果集转换成List集合
} catch (Exception e) {
e.printStackTrace();
}
tx.commit();//事务提交
session.close();//关闭Session
return list;//返回List集合
}
/**
* 查询单条信息
* @param hql
* @return
*/
public T queryFrom(String hql) {
T t = null;//引用实体对象
session = sessionFactory.openSession();//开启Session
tx = session.beginTransaction();//开启事务
try {
Query query = session.createQuery(hql);//利用hql语句进行查询
t = (T) query.uniqueResult();//将查询结果转换为实体对象
} catch (Exception e) {
e.printStackTrace();
}
tx.commit();//事务提交
session.close();//Session关闭
return t;//返回对象
}
public List queryListObject(String hql) {
session = sessionFactory.openSession();
tx = session.beginTransaction();
List list = null;
try {
Query query = session.createQuery(hql);
list = query.list();
} catch (Exception e) {
e.printStackTrace();
}
tx.commit();
session.close();
return list;
}
}