hibernateTemplete的findByNameQurey方法的三種重載方式
hibernateTemeplete是spring提供的,用于對DAO操作;
findByNameQurey方法的三個重載方法及其應用如下:
findByNameQurey方法的三個重載方法及其應用如下:
findByNamedQuery有三個從栽入方法:
findByNamedQuery(String queryName);
findByNamedQuery(String queryName,Object value);
findByNamedQuery(String queryName,Object values);
查看API說的很清楚 :
Execute a named query for persistent instances. A named query is defined in a Hibernate mapping file.
意思說所 :
通過 queryName 查詢數據庫中的持久對象,而queyName是定義在此對象對應的hibernate的映射文件中的!
定義語法如下:
<query name="定義查詢名">
<![定義查詢語句]]>
</query>
例1:findByNamedQuery(String queryName);
<query name="all">
<![from User]]>
</query>
findByNamedQuery("all");
例2: findByNamedQuery(String queryName,Object value);
<query name="byname">
<![from User where u.name = ?]]>
</query>
findByNamedQuery("byname","tiger");
例3: findByNamedQuery(String queryName,Object values);
<query name="byNameAndAge">
<![from User where u.name = ? and u.age = ?]]>
</query>
findByNamedQuery("byNameAndAge",new Object[]{"tiger",18});
HibernateTemplate 還有一個方法 :
findByNamedQueryAndNamedParam(String queryName,String[] paramNames, Object[] values)
這是映射文件就要用: 而不是?
如:
<query name="byNameAndAge">
<![from User where u.name = :name and u.age = :age]]>
</query>
findByNamedQuery(String queryName);
findByNamedQuery(String queryName,Object value);
findByNamedQuery(String queryName,Object values);
查看API說的很清楚 :
Execute a named query for persistent instances. A named query is defined in a Hibernate mapping file.
意思說所 :
通過 queryName 查詢數據庫中的持久對象,而queyName是定義在此對象對應的hibernate的映射文件中的!
定義語法如下:
<query name="定義查詢名">
<![定義查詢語句]]>
</query>
例1:findByNamedQuery(String queryName);
<query name="all">
<![from User]]>
</query>
findByNamedQuery("all");
例2: findByNamedQuery(String queryName,Object value);
<query name="byname">
<![from User where u.name = ?]]>
</query>
findByNamedQuery("byname","tiger");
例3: findByNamedQuery(String queryName,Object values);
<query name="byNameAndAge">
<![from User where u.name = ? and u.age = ?]]>
</query>
findByNamedQuery("byNameAndAge",new Object[]{"tiger",18});
HibernateTemplate 還有一個方法 :
findByNamedQueryAndNamedParam(String queryName,String[] paramNames, Object[] values)
這是映射文件就要用: 而不是?
如:
<query name="byNameAndAge">
<![from User where u.name = :name and u.age = :age]]>
</query>