`

Hibernate中根据QueryName查询

 
阅读更多

Hibernate中提供一种可以把HQL配置在Hibenate.hbm.xml中. 这样的好处,可以统一进行管理. 以及可以在其他Service中都能用到.

 

比如我们在User.hbm.xml中配置如下HQL语句:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
 <class name="pack.java.model.UserInfo" schema="MBADMIN" table="USER_INFO">
  <id name="uiid" type="java.lang.Long">
   <column name="UIID" precision="10" scale="0"/>
   <generator class="sequence">
    <param name="sequence">seq_user_info</param>
   </generator>
  </id>
  <property generated="never" lazy="false" name="username" type="java.lang.String">
   <column length="20" name="USERNAME" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="password" type="java.lang.String">
   <column length="15" name="PASSWORD"/>
  </property>
  <property generated="never" lazy="false" name="groups" type="java.lang.String">
   <column length="20" name="GROUPS"/>
  </property>
  <property generated="never" lazy="false" name="email" type="java.lang.String">
   <column length="48" name="EMAIL"/>
  </property>
  <property generated="never" lazy="false" name="status" type="java.lang.String">
   <column length="1" name="STATUS"/>
  </property>
  <property generated="never" lazy="false" name="lastlogintime" type="java.lang.String">
   <column length="23" name="LASTLOGINTIME"/>
  </property>
  <property generated="never" lazy="false" name="failcount" type="java.math.BigDecimal">
   <column name="FAILCOUNT" precision="22" scale="0"/>
  </property>
  <property generated="never" lazy="false" name="locktime" type="java.lang.String">
   <column length="23" name="LOCKTIME"/>
  </property>
 </class>
 <query name="query_user_by_username">from UserInfo U where U.username = ?</query>
</hibernate-mapping>

 

   然后,在Service中通过定义一个变量引用query中的name即可.

 

	private static final String QUERY_USER_BYNAME = "query_user_by_username";

public List<UserInfo> queryUserByName(String name) {
		// TODO Auto-generated method stub
		List<UserInfo> list = new ArrayList<UserInfo>();
		try {
			list = userDao.queryUserByName(QUERY_USER_BYNAME, name);
		} catch (DatabaseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("查询出现异常!");
		}
		return list;
	}

 

 

   UserDao中的方法如下:

  

public List<UserInfo> queryUserByName(String queryName,Objcect...objects)
	throws DatabaseException {
		Query query = getSession().getNamedQuery(queryName);
  if(objects!=null && objects.length > 0 ){
   for(int i = 0 ;i<objects.length;i++){
    query.setParameter(i, objects[i]);
   }
  }
  return query.list();	}

 

分享到:
评论

相关推荐

    第24次课-1 Spring与Hibernate的整合

    List findByNamedQuery(String queryName):根据命名查询返回实例集合 Object get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例 24.3 Spring对Hibernate的简化 24.3.3 HibernateTemplate的...

    gethibernatetemplate的find方法

    findByNamedQueryAndNamedParam(String queryName, String paramName, Object value);findByNamedQueryAndNamedParam(String queryName, String[] paramName, Object[] value);findByValueBean(String queryString...

    asp.net中在用ajax格式传递数据到aspx页面时出现乱码

    asp.net中在用ajax格式传递数据到aspx页面时有时会出现乱码,以下为解决方法 js中 : 代码如下: XmlHttp.open(“POST”, “test.aspx”, false);... 在test.aspx中: 代码如下: string QueryName = H

    输入框自动联想提示

    getCurrItemValue: function($currItem){ }//定义如何去取得当前提示项目的值并返回值,插件根据此函数获取当前提示项目的值,并填入input中,此方法应根据processData参数来定义。 是的,如果你自定义了processData...

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用当中你需要下面的这些文件: /wcf/** /jpivot/** /WEB-INF/wcf/** /WEB-INF/jpivot/** /WEB-INF/lib/** 最后你还需要对比 jpivot.war 里的 web.xml ...

    简易银行帐户管理信息系统

    //从文本中读取信息 void Add(); //增加客户信息 void ShowAll(); void Choice(int i); void Change(); //修改客户信息 void Delete(); //删除客户信息 void Query(); //查询客户信息 void QueryID(); //按...

    NetSpark-Scripts:基于Netmiko的脚本可协助全球的网络管理员和工程师!

    Netspark脚本 简化的多线程并行网络命令执行,适用于世界各地的网络工程师!... netspark.py (--info COMMAND | --config CONFIGFILE) (--csv FILENAME | --db QUERYNAME | --ip IPADDR) [-c CREDFILE] [--de

    real_estate_info_API

    크롤링API크롤링API ...moreabangebbangyabbangya(queryName): queryName네버에서이버에서제공하는정정보를정리를json파일을만들어주는 前任) moreabangebbangyabbangya("압구정현대아파트")

Global site tag (gtag.js) - Google Analytics