当前位置:首页 » 操作系统 » hibernate数据库操作

hibernate数据库操作

发布时间: 2022-12-09 09:41:56

A. Hibernate:hibernate操作数据库的时候一定要用到对象吗我只是单纯的想把数据库的内容输出怎么办

Hibernate的原理是创建一个跟你数据库里的表对应的实体类,在对数据库进行操作时,可以通过对这个实体类的属性进行操作,然后利用hibernate来对数据库进行数据操作·····你假如想用hibernate而又不想创建实体类的话,那就不大可能的事,因为hibernate就是面向对象的,这种查询方法也叫HQL(面向对象语句).

B. hibernate中,操作数据库,比如修改,删除等操作,一定要使用开启事务并提交事务的方式吗

Hibernate中修改、删除、添加操作要开启事务,查询操作不要开启事务,原因是:修改、删除、添加要对数据库中持久化数据进行变动,而查询操作不要对数据库中的数据进行更改所以不要开启事务。

C. hibernate怎样查询数据库里面的所有数据

Hibernate查询所有数据的操作方式有三种。
1、Query
(1)使用该方法查询时,不需要编写sql语句,但是需要编写hql(Hibernate Query Language)语句,该语句是Hibernate查询语言。
(2)hql语言操作的是实体类和实体类的属性,比如查询所有数据的hql语句为:from 实体类名称。
(3)使用方法:首先创建Query对象,然后调用该对象的List方法返回数据集合。

@Test
public void test11(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createQuery方法创建Query对象。
* 参数为hql语句
* 使用QUERY对象的list方法获取数据集合
*/
Query query =session.createQuery("from UserEntity");
List<UserEntity> list = query.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

2、criteria
(1)使用该对象不需要写hql语句,只需要指定实体类。
(2)使用方法:首先创建criteria对象,然后调用list返回数据集合。

@Test
public void test12(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createCriteria方法创建criteria对象。
* 使用criteria对象的list方法获取数据集合
*/
Criteria criteria =session.createCriteria(UserEntity.class);
List<UserEntity> list = criteria.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

3、SQLQuery
(1)使用该对象,需要写底层的SQL语句。
(2)实现方法:首先创建该对象,然后调用list。

@Test
public void test13(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createSQLQuery方法创建SQLQuery对象。
* 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
*/
SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
List<Object[]> list = qQLQuery.list();
//使用forEach遍历集合
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

(3)数组转换成对象

@Test
public void test13(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction tx = null;
try {
sessionFactory = HibernateUtils.getFactory();
session = sessionFactory.getCurrentSession();
tx = session.beginTransaction();
/**
* 使用session对象的createSQLQuery方法创建SQLQuery对象。
* 使用qQLQuery对象的list方法获取数据集合,集合里面不是对象,而是数组
*/
SQLQuery qQLQuery =session.createSQLQuery("select * from t_user");
//将数组装载进实体中
qQLQuery.addEntity(UserEntity.class);
List<UserEntity > list = qQLQuery.list();
//使用forEach遍历集合
for (UserEntity userEntity : list) {
System.out.println(userEntity);
}
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
sessionFactory.close();
}
}

热点内容
sqlserver执行时间 发布:2024-05-05 11:50:31 浏览:648
终端配置账号该如何改密码 发布:2024-05-05 11:24:37 浏览:824
成都存储研发招聘 发布:2024-05-05 11:24:29 浏览:284
电脑服务器名称怎么查找 发布:2024-05-05 10:49:37 浏览:470
电脑连到代理服务器 发布:2024-05-05 10:40:02 浏览:250
华为安卓手机如何投屏到雷克萨斯 发布:2024-05-05 10:37:50 浏览:211
微博上传原图 发布:2024-05-05 10:20:05 浏览:749
服务器换电脑需要什么东西 发布:2024-05-05 09:52:28 浏览:754
老算盘算法 发布:2024-05-05 09:43:10 浏览:841
ps存储显示不含通道 发布:2024-05-05 09:32:35 浏览:103