1.把拼凑出来的hql输出看看是否乱码了,如果乱码则表示你需要对浏览器请求的数据进行合理的解码
2.如果输出的语句不乱码,那就看看你从数据库读出的中文是否会乱码,如果会乱码表示你连接数据库的编码方式不对
以下是我总结的部分hibernate框架,看能不能满足你的需求
public static void listdept3() {
Session session = HibernateSessionFactory.getSession();
Criteria c = session.createCriteria(Dept.class);
c.setFetchMode("emps", FetchMode.JOIN);
c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<Dept> list = c.list();
session.close();
for (Dept dept : list) {
System.err.println(dept.getDeptName());
if (dept.getEmps() != null) {
for (Employee emp : dept.getEmps()) {
System.err.println(emp.getEmpName());
}
}
}
}
public static void listdept4() {
// SQL
Session session = HibernateSessionFactory.getSession();
SQLQuery q = session.createSQLQuery("select * from dept ").addEntity(
Dept.class);
List<Dept> list = q.list();
session.close();
for (Dept dept : list) {
System.err.println(dept.getDeptName());
}
}
public static void count() {
Session session = HibernateSessionFactory.getSession();
String hql = "select count(*) from Employee";
Query q = session.createQuery(hql);
// uniqueResult唯一的结果
int t = Integer.parseInt(q.uniqueResult().toString());
session.close();
System.err.println(t);
}
public static void group() {
Session session = HibernateSessionFactory.getSession();
String hql = "select e.sex,count(e.sex) from Employee e group by e.sex";
Query q = session.createQuery(hql);
List list = q.list();
session.close();
for (Object object : list) {
Object[] t = (Object[]) object;
System.out.println(t[0] + "\t" + t[1]);
}
}
public static void page() {
Session session = HibernateSessionFactory.getSession();
String hql = "from Employee e";
Query q = session.createQuery(hql);
q.setFirstResult(5);// 从第6行开始
q.setMaxResults(5);// 获取5行数据
List<Employee> list = q.list();
session.close();
for (Employee e : list) {
System.err.println(e.getEmpName());
}
}
public static void page2() {
Session session = HibernateSessionFactory.getSession();
Criteria c = session.createCriteria(Employee.class);
c.setFirstResult(5);// 从第6行开始
c.setMaxResults(5);// 获取5行数据
List<Employee> list = c.list();
session.close();
for (Employee e : list) {
System.err.println(e.getEmpName());
}
}
public static void querys(String name){
Session session = HibernateSessionFactory.getSession();
Criteria c = session.createCriteria(Employee.class);
c.add(Expression.like("empName", "%"+name+"%"));
List<Employee> list = c.list();
session.close();
for (Employee e : list) {
System.err.println(e.getEmpName());
}
}
public static void queryss(String name){
Session session = HibernateSessionFactory.getSession();
Criteria c = session.createCriteria(Employee.class);
//c.add(Expression.like("empName", "%"+name+"%"));
c.add(Expression.eq("empName", name));
List<Employee> list = c.list();
session.close();
for (Employee e : list) {
System.err.println(e.getEmpName());
}
}
public static void querysss(String name){
Session session = HibernateSessionFactory.getSession();
//Query c=session.createQuery("from Employee e where e.empName=?");
//c.setParameter(0,name);
Query c=session.createQuery("from Employee e where e.empName=:eame");
c.setParameter("eame",name);
List<Employee> list = c.list();
session.close();
for (Employee e : list) {
System.err.println(e.getEmpName());
}
}
把你的hql贴出来,我也是用hql就可以查汉字
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....