zoukankan      html  css  js  c++  java
  • Hibernate执行访问步骤及增删改查

    配置文件是hibernate的灵魂,上篇较为简单地写了下配置文件,以后会修改。现在写我们比较关心的如何使用Hibernate进行增删改查.

    1. 创建org.hibernate.Query(接口)

    Query接口是An object-oriented representation of a Hibernate query. A Query instance is obtained by calling Session.createQuery(String queryString)。Session.createQuery返回的是SQLQuery,它继承Query,代表的是原生SQL语句生成的Query。

    2. 设置Query,对查询的执行进行某些方面的设置。

    Query Query.setXXX()系列,对SQL语句中的条件进行设置,可以通过条件的位置或名字进行设值。条件的形式应为where id = :idValue。而且setXXX(name,value)中的name应为idValue,没有冒号。

    SQLQuery SQLQuery.addEntity()系列,指定查询结果的组装类;SQLQuery.addScalar()系列,指出要查询的字段。

    3. 执行

    int Query.executeUpdate(): Execute the update or delete statement.

    List list(): 执行查询,Return the query results as a List. If the query contains multiple results pre row, the results are returned in an instance of Object[].

    查询举例

    		Session session = HibernateHelper.getSessionFactory().openSession();
    		Transaction transaction = session.beginTransaction();
    		//1.创建、设置条件、指定封装类、执行
    		Query query=session.createSQLQuery("select * from customer where id= :idVal")
    			.addEntity(Customer.class);
    		query.setInteger("idVal", 1);//设置查询条件
    		List result = query.list();
    		for(Object aRe:result){
    			Customer customer=(Customer) aRe;
    			System.out.println(customer.getName());
    		}
    		transaction.commit();
    		session.close();
    		/*2.addScalar的使用。读取部分字段 
    		 * SQLQuery.addScalar(String)-把一个字段加入到结果中, SQLQuery的list(),list的每个元素代表一行数据。
    		 * 若查询结果只有一个字段,元素是一个Object类;
    		 * 如查询结果有两个以上字段,元素就是一个Object[],数组大小=字段个数 
    		 * */
    		List result = session.createSQLQuery("select * from customer")
    			.addScalar("name")
    			.addScalar("id")
    			.list();
    		for(Object aRe:result){
    			Object[] aRow=(Object[])aRe;
    			System.out.println(aRow[0]+"|"+aRow[1]);
    		}

    更新举例

    //此处顺带演示了setXXX(int position,value)系列方法的使用
    Query query=session.createSQLQuery("update customer set name = 'testUpdate' where id = ?");
    query.setInteger(0, 1);//参数为(int position,val)
    int i=query.executeUpdate();


    Hibernate执行持久层访问步骤:

    1.创建Configuration实例;2.创建SessionFactory实例;3.创建Session实例;4.打开事务;5.持久化访问;6.提交事务;7.若有异常,回滚;8.关闭session


  • 相关阅读:
    C 实战练习题目20 – 小球自由下落
    C 实战练习题目19
    C 实战练习题目18
    C 实战练习题目17
    C 实战练习题目16 -最大公约数和最小公倍数
    C 实战练习题目15
    C 实战练习题目14 -将一个正整数分解质因数
    C 实战练习题目13 -水仙花数
    C 实战练习题目12
    C 实战练习题目11
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982093.html
Copyright © 2011-2022 走看看