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

hibernatesql修改

發布時間: 2023-01-06 22:21:41

① hibernate 發送sql update

你就一張表,不需 把表名用a代替,而且update語句不能代替的,又不是select;
你直接把a.都去掉就行。像這樣:

update s_account set joyBeans =0, version=version+1 where accountId =5826 and version=4

② Hibernate中的SQL寫法。

我比較喜歡hibernate本身自帶的HQL語言,增刪改查語句基本不用自己寫。

添加:
Admin admin=new Admin();
admin.set...();
session.save(admin);
刪除:
session.delete(admin);
修改:
Admin admin=session.load(Admin.class,new Integer(i));
session.saveOrUpdate(admin);
查詢:
Query query = session.createQuery("select OBJECT(o) from Admin o order by o.adminid");
亦可寫成:
Query query = session.createQuery("from Admin");
注意:hibernate的業務邏輯操作必須放在事務中,代碼如下:
Transaction tr = session.beginTransaction();
try {
****增刪改查語句***
// 提交事務
tr.commit();
} catch (Exception e) {
// 回滾事務
tr.rollback();
} finally {

}
還有,hibernate內的語句不是SQL,而是HQL,但它支持SQL,又它特定的寫法;表名不是資料庫的名字,而是映射後的實體類(表)的名字;而且,是直接對資料庫進行操作,也就hibernate的事務一提交,資料庫內的信息就做了相應的修改;最後,hibernate不是個軟體,而是一個插件,通俗的說法是別人寫好的「包」,導入項目後,根據「包」的規范去做快速開發。

③ hibernate中怎麼直接操作sql語句

public SQLQuery createSQLQuery(String queryString, final Object... values) {
SQLQuery query = getCurrentSession().createSQLQuery(queryString);
if(values != null){
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
}
return query;
}

/**
* 執行SQL進行批量修改/刪除操作.
*
* @param values 數量可變的參數,按順序綁定.
* @return 更新記錄數.
*/
public int sqlBatchExecute(final String sql, final Object... values) {
return createSQLQuery(sql, values).executeUpdate();
}

④ hibernate中的SQL語句寫錯了!

你的user表幾個欄位?如果就只有2個欄位,insert語句就沒有問題,
錯的是,你採用的hibernate,可是你用的是sql語句,所以
query = session.createSQLQuery("insert into text values(?,?)");
中間的createSQLQuery,不是上邊的createQuery,中間多了SQL。
這是你的錯誤,不過我建議你不要這樣寫,hibernate有個save方法,直接保存對象的,不需要你寫這么復雜的sql語句,你先把user包裝成對象,然後直接調用session.save(user);就可以了。

⑤ 在hibernate中能用sql進行增刪改嗎

覺得可以
jdbc操作的是數據 也就是sql
hibernate操作的是對象 用hql(操作實體類的對象)
例如String hql="from User(這里的User是個實體類) where name(為User類的一個屬性)=? ";
可以通過query.setString(0,具體?的值);來對?進行賦值
你查詢也是查的對象
hql :
增:session.save();
刪:首要要寫一個方法findUserById();用來查詢特定的對象
查找到你要刪除的對象然後session.delete(user);
改:找到葯修改的對象 對其屬性重新賦值之後
session.saveOrUpdate(user);即可!

⑥ 在JAVA中用hibernate持久化修改參數和通過sql修改參數 各有什麼好處.和缺點

前者,比較大型,功能比較強、也復雜。。。。。。。。後者就是輕巧。。。。。。hibernate的底層也是SQL的。

⑦ Hibernate4 升級到Hibernate5 中 sql查詢注意事項

Hibernate4 中,利用原生SQL語句查詢時,
1、可使用Session.createSQLQuery(sql)建立Qurey(org.hibernate.Query),
2、可使用Query.setParameter(int index, Object obj),對sql語句中的參數根據位置進行參數值動態綁定;

升級到 Hibernate5
1、org.hibernate.Query被標記為@Deprecated
2、Session().createSQLQuery(sql)返回類型為org.hibernate.query.Query;
3、並且Session().createSQLQuery也已經被標記為@Deprecated;
4、可使用Session().createNativeQuery(sql)代替createSQLQuery。
5、createNativeQuery返回的Query, 不可 通過setParameter(int index, Object obj) 根據位置 進行參數值動態綁定; 只可以 通過setParameter(String paramname, Object obj) 按參數名稱綁定
6、createNativeQuery(sql)中的sql語句中的 查詢佔位符
只可使用 命名參數 方式進行編寫。

上問錯誤例子中,將導致如下錯誤: