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

热点内容
美嘉算法口诀 发布:2025-05-16 06:03:15 浏览:952
c程序编译连接 发布:2025-05-16 06:02:36 浏览:964
脚本魔兽 发布:2025-05-16 06:01:52 浏览:330
文件夹python 发布:2025-05-16 06:01:43 浏览:627
电脑我的世界服务器游戏币 发布:2025-05-16 05:27:25 浏览:487
索尼手机为什么不能用安卓10 发布:2025-05-16 05:18:46 浏览:784
蔚来es6选择哪些配置实用 发布:2025-05-16 05:18:05 浏览:130
小米如何扫码wifi密码 发布:2025-05-16 05:13:38 浏览:807
楼层密码是什么意思 发布:2025-05-16 05:13:37 浏览:13
创建文件夹失败 发布:2025-05-16 05:12:59 浏览:396