hibernate sql传数组_Java的学习(30)hibernate--HQL

HQL是面向对象的查询,查询的是对象 和对象中的属性

查询所有客户

f21cb05b2e75d12871ec746095fde001.png

选择查询

44743ac9595986528c3497dc61b5adce.png

投影查询

b47bbbde9038a2790cb56753c2261ef0.png

排序

807bd9d56ae5a697ebfa54b825eead5d.png

分页

eb495eaf018a084a181056685e1350f8.png

聚合函数和分组查询

7d482e909c25d1d95f5c859a4c4168b3.png

连接查询

INNER JOIN: 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

LEFT OUTER JOIN: 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行

RIGHT OUTER JOIN:关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

交叉连接 : sql 笛卡尔积(与每个数据都组合的结果)

291843b241692cf999c677e531742db6.png

隐式内连接

8c389c0e5aef744b9f158a749bca6400.png

内连接

13804e086a26ec6a6e9ad2268f345385.png

迫切内连接(迫切fetch:得到的结果为一个对象,而不是一个数组 )

c8418583afb16d392ca3c4e9a8ca32ca.png

左外连接

3a2007f41413ac34c883e2d80bcea519.png

迫切左外连接

8d16f5f78c1795c565dd444d24f89588.png

命名查询(先在映射文件内写HQL语句)

3c55a808b4bb6d091ea9ae08f352f992.png

f7b22b27a2c6027666f25d24db685d4c.png

QBC查询

简单查询

9e8cce1592d7fdc71f3537dd89fbf3fe.png

分页

da3757efea723e7616bb61902224d7a3.png

排序

11371f76dfde620926990346aea1b604.png

条件查询

6e237a5d7d97c7626d2ad5cb7ca5bdde.png

配置c3p0连接池

导入c3p0的jar包

在hibernate主配置文件中添加:

		<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
		<property name="hibernate.c3p0.max_size">2</property>
		<property name="hibernate.c3p0.min_size">2</property>
		<property name="hibernate.c3p0.timeout">5000</property>
		<property name="hibernate.c3p0.max_statements">100</property>
		<property name="hibernate.c3p0.idle_test_period">3000</property>
		<property name="hibernate.c3p0.acquire_increment">2</property>
		<property name="hibernate.c3p0.validate">false</property>

如果在使用session中出现即配置成功:

409fa4b44443e47827eae99dc35829fe.png

Hibernate中设置隔离级别

在hibernate.cfg.xml 配置

244ecf3fef547f98a3d3bcb740e2303c.png

悲观锁:

1.读锁/共享锁(select * from table lock in share mode;)别人能读不能写

读锁可被其他线程所共享,大家都可以用这把锁读到数据,但是其它线程不提交Commit,就不能执行更新数据的语句。

2.写锁/排他锁(select * from table for update)别人不能读也不能写

可以锁一张表,或者锁一行记录

写锁不能共享,只要有人为数据加入了写锁,其他人就不能为数据加任何锁,当提交后才可以读取这个表

9a55c51f201c558a3fa3d272f03b386c.png

乐观锁:

表中添加一个version字段来控制数据不一致性

在javabean中添加version变量,一般为Integer

1a2a1407b3b74f2ead3c3f49c0326955.png

在映射文件中配置:

53080c0e24d85c42792747babe924296.png

如果更新的版本比在数据库的版本低,就会更新出错

53f6456358caa4836dacea8dd3ecf614.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值