當前位置:首頁 » 編程語言 » hibernatehqlsql

hibernatehqlsql

發布時間: 2023-06-10 22:14:48

⑴ Hibernate 的HQL和sql有什麼區別

sql 面向資料庫表查詢

hql 面向對象查詢

hql : from 後面跟的 類名+類對象 where 後 用 對象的屬性做條件

sql: from 後面跟的是表名 where 後 用表中欄位做條件

查詢

在Hibernate中使用查詢時,一般使用Hql查詢語句。

HQL(Hibernate Query Language),即Hibernate的查詢語言跟SQL非常相像。不過HQL與SQL的最根本的區別,就是它是面向對象的。

⑵ 如何得到hibernate顯示在控制台的hql或sql語句

不知道樓主的意思是不是把那些佔位符換成具體的值,這樣就可以直接復制SQL語句在資料庫控制台粘貼直行了。

如果是這樣的話。樓主有沒有注意過直行hibernate時總是報的警告:
log4j:WARN Please initialize the log4j system properly.
使用這個log4j就可以顯示相信信息。

我給你一個屬性文件:log4j.properties把他放到和hibernate.cfg.xml相同目錄下。修改屬性文件中屬性log4j.logger.org.hibernate.type=debug
這樣,就可以顯示詳細數據了。

把以下內容保存命名log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'error' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=error

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=error

### log just the SQL
#log4j.logger.org.hibernate.SQL=error

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=debug
#log4j.logger.org.hibernate.type=error

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=error

### log HQL parse trees
#log4j.logger.org.hibernate.hql=error

### log cache activity ###
#log4j.logger.org.hibernate.cache=error

### log transaction activity
#log4j.logger.org.hibernate.transaction=error

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=error

### enable the following line if you want to track down connection ###
### leakages when using ###
#log4j.logger.org.hibernate.connection.=trace

⑶ hql和sql的區別

資料庫中hql與sql的區別:

1、sql 面向資料庫表查詢。

2、hql 面向對象查詢。

3、hql : from 後面跟的 類名+類對象 where 後 用 對象的屬性做條件。

4、sql: from 後面跟的是表名 where 後 用表中欄位做條件查詢。

5、在Hibernate中使用查詢時,一般使用Hql查詢語句。

6、HQL(Hibernate Query Language),即Hibernate的查詢語言跟SQL非常相像。不過HQL與SQL的最根本的區別,就是它是面向對象的。

⑷ 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不是個軟體,而是一個插件,通俗的說法是別人寫好的「包」,導入項目後,根據「包」的規范去做快速開發。

熱點內容
python元素替換list 發布:2025-02-13 20:03:48 瀏覽:772
windows系統賬戶名和密碼是多少 發布:2025-02-13 20:03:02 瀏覽:530
我的世界帶有商店伺服器好嗎 發布:2025-02-13 20:02:50 瀏覽:615
東莞加密軟體 發布:2025-02-13 20:02:05 瀏覽:869
可以玩游戲的雲伺服器 發布:2025-02-13 19:55:35 瀏覽:303
php授權系統 發布:2025-02-13 19:55:22 瀏覽:415
php截取字元亂碼 發布:2025-02-13 19:53:54 瀏覽:89
安卓什麼時候限制app許可權 發布:2025-02-13 19:53:12 瀏覽:110
紅米手機錄音文件夾 發布:2025-02-13 19:41:33 瀏覽:236
android適配屏幕 發布:2025-02-13 19:40:30 瀏覽:793