hibernate如何在实体配置文件中自写sql
只要写明增删改查都如何写就可以了还有就是如果添加where,orderby,groupby等的时候怎么写...
只要写明 增删改查都如何写就可以了 还有就是 如果添加 where ,order by,group by 等的时候 怎么写
展开
3个回答
展开全部
Query.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<query name="QueryUser">
<![CDATA[
FROM User u
WHERE u.userName = :userName
]]>
<sql-query name="SqlQueryUser">
<![CDATA[
SELECT
{u.*}
FROM
user u
WHERE
u.user_name = :userName
]]>
<return alias="u" class="com.test.entity.User"/>
</sql-query>
</hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
...
<mapping resource="User.hbm.xml"/>
<mapping resource="query/Query.hbm.xml"/>
...
</session-factory>
</hibernate-configuration>
Java Code:
String username = "...";
Session session = ...;
Query query = session.getNamedQuery("QueryUser");
//Query query = session.getNamedQuery("SqlQueryUser");
query.setString("name", username);
List userList = query.list();
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<query name="QueryUser">
<![CDATA[
FROM User u
WHERE u.userName = :userName
]]>
<sql-query name="SqlQueryUser">
<![CDATA[
SELECT
{u.*}
FROM
user u
WHERE
u.user_name = :userName
]]>
<return alias="u" class="com.test.entity.User"/>
</sql-query>
</hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
...
<mapping resource="User.hbm.xml"/>
<mapping resource="query/Query.hbm.xml"/>
...
</session-factory>
</hibernate-configuration>
Java Code:
String username = "...";
Session session = ...;
Query query = session.getNamedQuery("QueryUser");
//Query query = session.getNamedQuery("SqlQueryUser");
query.setString("name", username);
List userList = query.list();
更多追问追答
追问
有插入,删除,修改的例子么 这个我看过了
追答
http://blog.sina.com.cn/s/blog_667528fd0100rkt8.html,
你看下这个文档
INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? ) UPDATE PERSON SET NAME=UPPER(?) WHERE ID=? DELETE FROM PERSON WHERE ID=?
操作是一样的,
你试试看
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
where ,order by,group by 这些都可以用啊 。 hql和sql基本通用,只是把表名改成相应的对象就可以了。
追问
我说的是 在hibernate的实体配置文件中写sql 最好有demo
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个貌似用iBatis可以实现
更多追问追答
追问
- -! 没啥每个人都是说 ibatis
hibernate领导要求 没办法想找一找
追答
在hibernate.cfg.xml中写sql语句?????
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询