當前位置:首頁 » 編程語言 » hibernate用sql查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

hibernate用sql查詢

發布時間: 2022-01-18 18:41:45

Ⅰ hibernate中使用資料庫sql語句查詢問題

假如bean的配置文件存在 你可以在執行完sql後面加上addEntity方法 hibernate會自動封裝
如果這個bean是沒有xml配置文件的 那你只能去遍歷這個list 構造bean

Ⅱ 如何用hibernate直接進行SQL語句查詢

String sql="SQL語句";session.createSqlQuery(sql);

Ⅲ hibernate sql查詢語句

既然你的項目繼承了hibernateDaoSupoort,並且是由spring來管理的那麼,我想應該實在applicationContext.xml中配置的sessionFactory或者getTemplate來注入資料庫連接的,既然如此在hibernateDaoSupport的繼承類中可以得到寫很多的封裝查詢、添加、刪除操作,只需要把方法加入一個抽象類去實現就好了
不過你要通過sql語句去實現的話
因為已經注入了資料庫連接到hibernateDaoSupport中.所以你也繼承到了兩個資料庫連接方法getSession() 和 getHibernateTemplate()
直接用就可以了

Ⅳ 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();
}
}

Ⅳ hibernate使用sql查詢

看了下你的 SQL ,裡面打的是中文的問號,這個應該是英文的咧

Ⅵ Hibernate 怎樣 執行sql語句,獲得查詢到的值

這個你都要糾結嘛。。直接聲明一個int 類型的 變數來接收這個值就可以了,我一般都是把這個寫在一個方法裡面,這個方法的返回值為Int 在這個方法裡面,取出這個值,返回即可。

Ⅶ Hibernate SQL查詢

如果你的hbm.xml配置文件配置恰當,可以用HQL:
Query query=....."from MessagePO mpo where mpo.clent=?";
ClentPO cpo=session.get(ClentPO.class,主鍵值);
query.setParameter(1,cpo);
query.list();

Ⅷ sql查詢,hibernate 的sql語句查詢信息

select * from user where name ='root' 這里用單引號

Ⅸ hibernate對SQL語句的使用

如下代碼:
(注意該類繼承自HibernateDaoSupport ,要在applicationContext.xml中將sessionFactory注入此類中)

public class DaoUtil extends HibernateDaoSupport {

public Object executeMySQL(final String sql){
System.out.println(sql);
return getHibernateTemplate().execute( new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Connection CurConn = session.connection();
PreparedStatement ps = CurConn.prepareStatement(sql);
ps.execute();
ps.close();
session.flush();
return null;
}

} );
}

public Object executeBetchSQL(final ArrayList sqlList){
return getHibernateTemplate().execute( new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Connection CurConn = session.connection();
int count = sqlList.size();
for(int i=0;i//System.out.println(sqlList.get(i));
PreparedStatement ps = CurConn.prepareStatement(sqlList.get(i));
ps.execute();
ps.close();
session.flush();
}
return null;
}

} );
}

public static DaoUtil getFromApplicationContext(
ApplicationContext ctx) {
return (DaoUtil) ctx.getBean("DaoUtil");
}
}

Ⅹ 用hibernate查詢sql資料庫並輸出

你這只是一個實體類 無從下手的 你可以定義一個實體對象 完了賦值userid=3 再通過hibernate的get方法 +你這個有值的對象做參數去獲得這個資料庫記錄

也可以通過excuteSQL(SQL語句去執行)