日期:2014-05-18  浏览次数:20848 次

在hibernate中如何使用SQL语句?
如题

------解决方案--------------------
可以.你可以用hsql来写
------解决方案--------------------
Hibernate使用的是HQL语句,所操作的对象是映射过来的java POJO对象,所以你检查一下你的语句里面的表名和字段名是否对应的是java对象和字段的名字,而且大小写区分的
------解决方案--------------------
关注一下
------解决方案--------------------
晕,直接回调JDBC接口嘛!会spring吧?spring+hibernate回调的代码给你:

public RowSetDynaClass findBySQL(String queryString, Object[] params) {
Session session = this.getHibernateTemplate().getSessionFactory()
.openSession();
Connection conn = session.connection();
RowSetDynaClass result = null;
try {
PreparedStatement ps = conn.prepareStatement(queryString);
for (int i = 0; i < params.length; i++) {
Object param = params[i];
ps.setObject(i + 1, param);
}
ResultSet rs = ps.executeQuery();
result = new RowSetDynaClass(rs);
rs.close();
ps.close();
session.close();

} catch (SQLException e) {
logger.error( "Method:findBySQL(String queryString, Object[] params) ", e);
}

return result;
}


RowSetDynaClass是org.apache.commons.beanutils下的一个类,自己从网上下就是了
------解决方案--------------------
select * from
不就得了!
------解决方案--------------------
hibernate只有在适合的地方使用,没必要什么地方都非得用它.有时用jdbc会更加高效和简洁.
------解决方案--------------------
3.0好象有直接写入SQL的方法,使用原生的SQL而不是HQL
------解决方案--------------------
可以的

------解决方案--------------------
session.createSQLQuery()
有问题最好先查文档,不行再提问题 :)