hibernate数据库查找
import java.text.SimpleDateFormat;import java.util.Date;
import java.util.List;
import junit.framework.TestCase;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import cn.java.Student;
import cn.util.HibernateUtil;
public class TestQuest2 extends TestCase{
public void test(){
Session session = null;
Transaction tx = null;
try{
session = HibernateUtil.getSession();
tx = session.beginTransaction();
//给给它传送个值id=2
Student s = (Student)session.createQuery("from Student s where s.id= ?")
.setParameter(0, 2)
.uniqueResult();
System.out.println(s.getName());
//============================================================
//查找id>10的数据
List<Student>list = session.createQuery("from Student s where s.id >?")
.setParameter(0, 10)
.list();
for(Student s : list){
System.out.println(s.getName());
}
//===================================================================
//根据命名来查找的
List<Student>list = session.createQuery("from Student s where s.name = :setname")
.setParameter("setname", "jerry9")
.list();
for(Student s : list){
System.out.println(s.getName());
System.out.println(s.getCreateTime());
}
//============================================================================
//模糊查询
List<Student> list = session.createQuery("from Student s where s.name like ?")
.setParameter(0, "j%")
.list();
for(Student s : list){
System.out.println(s.getName());
}
List<Student> ls = session.createQuery("from Student s where s.id in (:myids)")
.setParameterList("myids", new Object[]{1, 3, 5})
.list();
for(Student s:ls){
System.out.println(s.getName());
System.out.println(s.getCreateTime());
==============================查找日期
List<Student> ls = session.createQuery("from Student s where s.createTime between ?and?")
.setParameter(0, convert("2009-09-27"))
.setParameter(1, convert("2009-09-28"))
.list();
for(Student s:ls){
System.out.println(s.getName());
System.out.println(s.getCreateTime());
}
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
HibernateUtil.close(session);
}
}
Query query = session.createQuery("from Student");
List<Student>list = query.list();
for(Student s : list){
System.out.println(s.getName());
}
Query query = session.createQuery("select s from Student as s");
List<Student>list = query.list();
for(Student s : list){
System.out.println(s.getName());
}
//================================================================
Query query = session.createQuery("select count(*)from Student");
//返回一个结果
Long l = (Long)query.uniqueResult();
System.out.println(l);
Query query = session.createQuery("select s.id,s.name from Student as s");
//返回值是一个结果...
List<Object[]> os = query.list();
for(int i = 0 ; i < os.size();i++){
Object [] oss = os.get(i);
for(int j = 0; j < oss.length;j++){
System.out.print("...第"+j+"个元素"+oss);
}
System.out.println();
}
//===================================================
Query query = session.createQuery("select new Student(s.id,s.name) from Student as s");
返回值是一个结果...
List<Student> os = query.list();
for(Student s: os){
System.out.println(s.getName());
}
select * from student;
List<Student> ss = session.createSQLQuery("select s.* from student as s")
.addEntity("s", Student.class)
.list();
for(Student s:ss){
System.out.println(s.getName());
}
//=======================================多表连接
List ls = session.createQuery("select s.name,c.name from Student s join s.classes c")
.list();
//因为查找时时两张表返回的是一个对象了
for(int i = 0 ; i < ls.size();i++){
Object [] bs = (Object[])ls.get(i);System.out.println(bs+" : "+bs);
// }
List list = session.createQuery("select s.name,c.name from Classes c left join c.students s")
.list();
for(int i = 0 ; i< list.size();i++){
Object[]bs = (Object[])list.get(i);
System.out.println(bs+":"+bs);
}
session.getTransaction().commit();
private Date convert(String temp){
SimpleDateFormat fo = new SimpleDateFormat("yyyy-MM-dd");
Date d =null;
try {
d = fo.parse(temp);
}catch(Exception e){
e.printStackTrace();
}
return d;
}
}
页:
[1]