楼上的 你说的是转数据库的字符集吗?我在查询分析器里可以查带中文条件的SQL语句啊
解决方案 »
- resin启动报错
- hibernate生成oracle表的问题的.知道者进来解答下.谢谢!
- 三级菜单显示问题
- 这我就不明白了——JDBC
- 让Tomcat6自动编译.java文件
- 关于WEB SERVICES 连接超时的问题
- 如何将制作完成的STRUTS应用配置到TOMCAT4.0中?
- 在ejb bean 中一般都只有一个PrimaryKey,如果Key有多个时是否会消耗更多的资源。
- 请问哪里有jbulider8.0的中文帮助呢?
- Spring的@requestBody报错415 (Unsupported Media Type)
- 关于Hibernate的JDBC驱动
- jfreechart在webwork下部署,webwork无法工作
要用 set 做 这样就能传过来了
把HQL语句改以下。
"from KdNews as news where 1=1 and news.title like '%raun%' and news.people like '%"+new String("许".getBytes("当前编码方式"),"数据库编码方式").toString()+"%'"
要用 set 做 这样就能传过来了能具体点吗?
如果是乱码,就是你程序自身的问题,配个过滤器就可以了。如果不是乱码,那就是hibernate版本的问题,换最新的hibernate版本就能解决问题
Query query = s.createQuery("from News news where news.id=:id");
query.setInteger("id",id);
或者用
Query query = s.createQuery("from News news where news.name like ? ");
query.setString(0,"%" + name + "%");
query.setXXXXXX 这里有好多属性的
自己查一下
/**
* 根据hibernate查询语句和查询参数数组进行查询,采用HQL方式查询
* @param sql 查询语句
* @param obj 查询参数数组
* @return list结果集
*/
public List find(String sql, Object[] obj) {
List list = new ArrayList();
Session s = null;
Transaction tx = null;
try{
s = this.getSessionFactory().openSession();
tx = s.beginTransaction();
Query query = s.createQuery(sql);
for(int i=0;i<obj.length;i++){
query.setParameter(i, obj[i]);
}
list = query.list();
tx.commit();
}catch(HibernateException e){
if(tx!=null)
tx.rollback();
}finally{
try{
if(s!=null && s.isOpen())
s.close();
}catch(HibernateException e){
e.printStackTrace();
}
}
return list ;
}
String name=new String("李三".getBytes("8859_1"),"gb2312");
一般参数是这样