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[j]);
}
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[0]+" : "+bs[1]);
// }
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[0]+":"+bs[1]);
}
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;
}
}
分享到:
相关推荐
本文将深入探讨Hibernate数据库连接池的实现原理、配置方法以及其在Java命名和目录查找中的应用。 首先,我们了解下什么是数据库连接池。数据库连接池在初始化时会创建一定数量的数据库连接,这些连接在应用程序...
Hibernate是Java领域中一款强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。在Java应用中,尤其是Spring框架与Hibernate结合使用时,能够实现更高效的业务...
使用Hibernate的Session对象操作数据库 1.初始化Hibernate:在要使用Hibernate的类的方法中实例化Configuration对象并用Configuration对象的configure()方法将hibernate.cfg.xml中的配置加载到内存,即: ...
本示例通过一个通用的DAO(Data Access Object)类,展示了如何在不依赖Hibernate等ORM框架的情况下,进行数据库的增删改查操作。这有助于理解底层的SQL执行过程,同时也提供了更灵活的控制权。 首先,DAO模式是一...
主要使用myeclipse 2015 spring3.1+struts+hibernate3.x 实现数据库添加删除查找更新,你只要新建web project ,把代码导入进行就可以运行,create database student, create table user( `id` int(10) unsigned NOT ...
Hibernate对数据库删除、查找、更新操作实例代码 Hibernate是Java Persistence API(JPA)的一种实现,提供了对数据库的CRUD(Create,Retrieve,Update,Delete)操作。下面将介绍Hibernate对数据库删除、查找、...
通过查看代码和运行示例,开发者可以深入理解Hibernate是如何自动处理复杂的关联操作,比如通过中间表实现多对多的添加、删除和查找。 **总结** 这个"Hibernate多对多实例+数据库代码"涵盖了ORM的核心概念,特别是...
例如,通过hibernate,我们可以轻松地创建一个新产品对象,然后将其保存到数据库中,或者根据产品ID查找并更新产品信息。 数据库在电子商店管理系统中起着核心作用,存储所有商品、订单、用户等信息。通常,系统会...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,而无需直接编写 SQL 查询。在上述代码中,我们看到了四个核心的 Hibernate 操作:插入(insert)、删除(delete)、更新...
在IT行业中,实体类查找数据库是一项基础且重要的任务,尤其在使用对象关系映射(ORM)框架时。本文将深入探讨实体类与数据库之间的关系,以及如何通过实体类来查找和操作数据库中的数据。 首先,我们需要理解什么...
**标题解析:**“Hibernate part 14:查询及数据库并发事务” 这个标题指出我们要讨论的是Hibernate框架在处理查询和数据库并发事务方面的内容。Hibernate是一个流行的Java对象关系映射(ORM)工具,它允许开发者...
Hibernate是Java开发中的一个强大工具,它允许开发者将Java对象和数据库表进行映射,通过面向对象的方式来操作数据库,避免了传统的SQL语句编写,提高了代码的可读性和可维护性。在“hibernate租房系统”中,...
另外,还提及了"orcle数据库的jar包",这意味着除了Hibernate本身,还包含了与Oracle数据库连接所需的驱动,这通常是ojdbc.jar,使得应用程序能够连接到Oracle数据库进行数据操作。 **Hibernate核心知识点** 1. **...
* Hibernate Type:需要查找该 Hibernate 类型对应的 Java 类型,从而再找到数据库类型 主键的产生器 * Increment:查找主键的最大值,在最大值的基础上加 1 * Assigned:由程序手动赋值 * Identity:支持主键自动...
8. **实时索引**:通过监听数据库事件,Hibernate Search可以自动跟踪实体的变化并更新索引,保持索引与数据库数据同步。 9. **测试与调试**:在开发过程中,测试和调试全文检索功能也很重要。可以使用`AssertJ`或...
这样,Hibernate就会通过JNDI查找并使用Tomcat配置的`jdbc/quickstart`数据源,而无需在代码中硬编码数据库连接信息,提高了应用的可移植性和安全性。 在实际应用中,确保Tomcat和Hibernate配置正确无误后,还需要...
7. **jandex.jar**:Jandex是一个Java元数据索引器,用于快速查找和解析注解,这对Hibernate的注解驱动的实体管理至关重要。 8. **slf4j-api.jar**:简单日志门面(SLF4J)提供了一个抽象层,允许最终用户在部署时...