当前位置:首页 » 编程语言 » 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-07-18 20:24:48 浏览:236
vba读取数据库数据 发布:2025-07-18 20:24:48 浏览:606
shell解压zip 发布:2025-07-18 20:20:36 浏览:858
安卓泰拉瑞亚去哪里买 发布:2025-07-18 20:01:05 浏览:694
flash编译器 发布:2025-07-18 19:49:38 浏览:487
memcached源码分析 发布:2025-07-18 19:22:42 浏览:866
android展示图片 发布:2025-07-18 19:21:24 浏览:594
一台服务器5个IP怎么分配 发布:2025-07-18 19:12:34 浏览:862
贵阳分布式存储行情 发布:2025-07-18 19:12:31 浏览:361
车场服务器和工控机是如何连接的 发布:2025-07-18 19:10:19 浏览:938