查询单个对象可以直接通过Session对象来做到,其中session这个对象提过了2种获得单个对象的方法,一个是get方法和load方法,我去看这个两个方法的时候发现这两个方法的参数是一样的,使用方式也是一样的,我们先来看看具体的使用方法:
1. Object obj = session.get(user.getClass(), 100);
2. Object obj1 = session.load(user.getClass(), 200);
这个方法的使用方式看起来都一样都能获取到一个object对象,其实这两个方法有很大的区别:
1.用get方法的时候是session会立即创建一个连接并获取数据,用 load方法的时候是session不会去创建连接然后去获取数据,它会在你去获取你要查询的对象的属性的时候才会去创建连接和获取数据,所以说,用 load的话,我们获取到的obj1里面其实没有任何数据,只有我们obj1.getXXX();的时候才会去获取数据库的数据,但是如果我们在没有去获取它的属性以前,就关闭了session的话,就会报session已经关闭了。
2.用load方法的时候如果查询出来的对象里面又包含一个对象属性呢,当我们查询出来的时候这个对象里面的对象属性是为null的,当具体要getXXX对象属性的时候才会去访问。
3.用get的话如果传入的id不存在会返回空值,load返回一个代理类,如果id不存在,报id不存在异常
上面的两种方法都要通过主键进行查询,其他字段不能够使用。而我们在平常项目中很多时候需要通过一个唯一约束条件得到一个对象。比如通过用户名得到密码,这个时候可以使用uniqueResult()方法来获取。比如
Query q = session.createQuery("select t.password from TUserLogin t where t.username='"+loginUser+"'");
Object o = q.uniqueResult();
这个时候o就是一个字符串类型的对象。
分享到:
相关推荐
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
初始化Hibernate:在要使用Hibernate的类的方法中实例化Configuration对象并用Configuration对象的configure()方法将hibernate.cfg.xml中的配置加载到内存,即: Configuration config = new Configuration()....
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 17.1.12 在HQL查询语句中绑定参数 17.1.13 设置查询附属事项 17.1.14 在映射文件...
1)、uniqueResult()方法,返回一个单个对象 2)、list()方法返回一个集合 3)、参数绑定 4)、setParameter()方法,绑定任意类型的参数 5)、setProperties()方法,把命名参数与一个对象的属性值绑定 3. Hibernate...
Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。可跟 Hibernate 和 JPA 等框架结合使用。 基本查询: JPAQuery query = new JPAQuery(entityManager); ...
// 业务方法 ----- 查询入库环节 的个人任务 public String findInStoreTask(){ // 登陆用户 User user = (User) getSession().getAttribute("user"); List<ZhongZhuanInfo> zhongZhuanInfoList = ...
HibernateD 是 D 语言的 ORM 框架,类似 Java 的 Hibernate,示例代码:import hibernated.core; // Annotations of entity classes class User { long id; string name; Customer customer; @...