当前位置:首页 » 编程语言 » 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不是个软件,而是一个插件,通俗的说法是别人写好的“包”,导入项目后,根据“包”的规范去做快速开发。

热点内容
php房产网 发布:2025-02-13 18:18:06 浏览:85
源码资源吧 发布:2025-02-13 18:14:39 浏览:79
java培训价钱 发布:2025-02-13 17:59:33 浏览:974
c语言中变量类型 发布:2025-02-13 17:52:20 浏览:258
ftp导出报错 发布:2025-02-13 17:41:20 浏览:997
脚本下载教程 发布:2025-02-13 17:39:06 浏览:235
解压密码re 发布:2025-02-13 17:39:02 浏览:558
linuxdump内存 发布:2025-02-13 17:37:30 浏览:57
游戏客户端源码 发布:2025-02-13 17:37:19 浏览:594
win7打开文件夹声音 发布:2025-02-13 17:35:03 浏览:606