用jdbcTemplate.用execute方法 public void execute(final String sql) throws DataAccessException {
if (logger.isDebugEnabled()) {
logger.debug("Executing SQL statement [" + sql + "]");
} class ExecuteStatementCallback implements StatementCallback, SqlProvider {
public Object doInStatement(Statement stmt) throws SQLException {
stmt.execute(sql);
return null;
}
public String getSql() {
return sql;
}
}
execute(new ExecuteStatementCallback());
}
if (logger.isDebugEnabled()) {
logger.debug("Executing SQL statement [" + sql + "]");
} class ExecuteStatementCallback implements StatementCallback, SqlProvider {
public Object doInStatement(Statement stmt) throws SQLException {
stmt.execute(sql);
return null;
}
public String getSql() {
return sql;
}
}
execute(new ExecuteStatementCallback());
}
解决方案 »
- 焦点图部分的动态代码
- 我安装的MYSQL上面只有org.gjt.mm.mysql.Driver,却没有com.mysql.jdbc.driver怎么办?
- ssh中配置文件都是怎么配的
- jsp中文問題?
- 请问一个彻底解决文本框防止乱输入"''<td>之类的问题!!!感谢!
- 在jdk的目录下有个rt.jar的文件,服务器上没此包中的类请问我怎在lib中调用?
- 很奇怪的问题
- 用ant预编译tomcat5里的jsp页面,高手请指教!!
- lomboz配置
- 我在用 java weblogic.ejbc -compiler javac build\std_myfirstejb_hello.jar 命令打包的时候的错误!!
- Weblogic
- readonly or readOnly
假如用2楼说的方法,那么就要为我的JDBC操作单独声明JDBCTemplate类,这样使用就很麻烦,我只是想在HQL不好用的情况下使用SQL代替而已。
示例代码: protected List<Object[]> getListBySQL(final String sql,
final Object[] params, final Integer firstResult,
final Integer maxResult) {
return (List<Object[]>) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query q = session.createSQLQuery(sql);
if (firstResult != null) {
q.setFirstResult(firstResult);
}
if (maxResult != null) {
q.setMaxResults(maxResult);
}
if (params != null) {
for (int i = 0; i < params.length; i++) {
q.setParameter(i, params[i]);
}
}
return q.list();
} });
}
严重: Servlet.service() for servlet action threw exception
org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [SELECT t.country,t.city,t.ticketnum FROM vote.ticket t order by t.ticketnum desc]我的代码是:
tdao是myeclipse自动生成的。
SQL语句是:"SELECT t.country,t.city,t.ticketnum FROM vote.ticket t order by t.ticketnum desc";
MySQL数据库:数据库是vote 表是ticket。
这个简单的SQL用hql语句就可以,但换成sql就有这个错误List listCountry = (List) tdao.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String urlCountry = "SELECT t.country,t.city,t.ticketnum FROM vote.ticket t order by t.ticketnum desc";
Query q = session.createSQLQuery(urlCountry);
q.setMaxResults(10).setFirstResult(0);
List l = q.list();
return l;
}
});
选择它,可以实现功能!
sq.addEntity(类.class);