城管希 - -! 又来讲Hibernate了

HQL语句查询

                // 使用HQL查询表的所有记录
		Session session = HibernateUitl.getOpenSession();
		Transaction transaction = session.beginTransaction();
		
		String hql = "from com.lanou3g.User";
		Query<User> query = session.createQuery(hql);
		// 预见结果集 
		// (多个就用list处理 单个就用 uniqueResult)
		List<User> list = query.list();
		System.out.println(list);
		
		transaction.commit();
		session.close();

使用问号占位符

//使用HQL查询所有记录  
Session session = HibernateUtil.getOpensession();  
Transaction transaction = session.beginTransaction();  
//使用问号占位符替代  
String hql = "from com.lanou3g.User where id = ?";  
Query<User> query = session.createQuery(hql);  
//从0开始  
query.setParameter(0, 2);  
User user = query.uniqueResult();  
transaction.commit();  
session.close();  

使用冒号占位符

//:后面是占位符的名字  
//注意:冒号后面不要加空格  
//替换时 直接使用名字即可  
String hql = "from com.lanou3g.User where username = :username and password = :password";  
Query<User> query = session.createQuery(hql);  
query.setParameter("username", "wanglong");  
query.setParameter("password", "123");  
User user = query.uniqueResult();  

使用hql分页查询

String hql = "from User";  
Query<User> query = session.createQuery(hql, User.class);  
query.setFirstResult(0);  
query.setMaxResults(2);  
List<User> list = query.list();  
如何配置多表xml文件
1.一对多
name表示实体类对象属性名
column:两张表联系的外键
注意:外键名要一致 否则会多建一个外键

class 与哪个类进行一对多

<set name="" cascade="save-update" inverse="true">  
    <key column=""></key>  
    <one-to-many class=""/>  
/set>     
2.多对一
name表示多对一对象的属性名
class表示的是多对一对象的类
column表示的是外键

注意:在property中配置不要重复配置外键

 
<many-to-one name="" class="" column=""></many-to-one>  
3.多对多
name 容器名字
table 中间表的名字
column 中间表引用的id
class 对应的那个表的类名 
column  对应那个表的外键
[html] view plain copy
<set name="users" table="sys_user_role">  
    <key column="role_id"></key>  
    <many-to-many class="User" column="user_id"></many-to-many>  
</set>  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值