关于Hiberate的数据库操作(纯手打)
来源:互联网 发布:java 获取list的泛型 编辑:程序博客网 时间:2024/06/06 16:28
在配置Hibernate完成后,如何运用Hibernate进行数据库操作。
比如我的数据的一个表为user表,存储id、name、password、phone、adress字段。
已经创建好User.java类以及起映射关系。
此时创建类UserDao.java类,创建方法query()
//查找数据库信息
public void query() {
String HQLString = "from User";
Session session = HibernateSessionFactory.getSession();
Query query = session.createQuery(HQLString);
java.util.List list = query.list();
for (Object o : list) {
User u = (User) o;
System.out.println(u.getName() + " " + u.getPassword());
}
}
这是提取数据库里user表中所有信息。
Session session = HibernateSessionFactory.getSession();获取session对象
Session接口不是jsp应用中的HttpSession,而是负责执行持久化对象的CRUD操作(任务是完成与数据库的交互),后续可能对Session有详细介绍。
Query query = session.createQuery(HQLString);
java.util.List list = query.list();
在执行查询后query.list()返回List对象,存储获取的数据保存在list中,后面可以用迭代输出所有数据。
那如果查询后的数据是唯一的,不是获取所有信息,比如我HQLString为“select o from User o where o.name='aa'”
查询后就不能储存在list中了,我们可以直接User user=query.uniqueResult();这样获取的数据就直接放到User里了。
上述是查找,要是添加呢?
这是我们再添加一个方法
public void saveUser(User user) {
Session session = null; // 创建一个事务
Transaction transaction = null;
try {
session = HibernateSessionFactory.getSession();
transaction = session.beginTransaction();
session.save(user);
transaction.commit();
} finally {
if (session != null) {
session.close();
}
}
}
方法中添加了事务。看来Hibernate是如此的简便。
同理我们再来个删除数据的方法
public void delUser(User user){
Session session = null;
try {
session=HibernateSessionFactory.getSession();
Transaction transaction=session.beginTransaction();
session.delete(user);
transaction.commit();
} catch (Exception e) {
// TODO: handle exception
if (session != null) {
session.close();
}
}
}
只是换了一句,session.delete(user);
- 关于Hiberate的数据库操作(纯手打)
- 关于 hiberate 的 userType
- Hiberate的配置文件
- hiberate的二级缓存详解
- 关于数据库的操作
- Hiberate 的一个注释 @Transient
- Hiberate提供的缓存策略
- 关于写入数据库的操作
- 关于数据库的一些操作
- ASP关于数据库的操作
- 关于数据库的相关操作
- Xutils3关于数据库的操作
- 关于数据库操作的事务
- 关于数据库操作的触发器
- BCB中关于数据库的操作(最全)
- iOS关于数据库的操作(使用第三方类库FMDB)
- iOS关于数据库的操作(使用第三方类库FMDB)
- 关于BLOB数据类型插入ORACLE数据库的操作(转)
- Jquery仿淘宝购物车
- hdu4221 Greedy?(贪心)
- 队列的数组实现
- 提高matlab运行速度
- org.slf4j.spi.LocationAwareLogger.log
- 关于Hiberate的数据库操作(纯手打)
- matlab程序运算速度
- MongoDB命令操作(入门)
- kendo实现栏目管理页面
- p123第三章作业36题
- 不使用第三个变量交换两个变量的值
- WAJUEJI which home strong!
- 【css实践】position定位
- 重映射和仿射(remap函数)