`
niejan
  • 浏览: 676 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

hibernate简单操作

阅读更多
初步认识,只是简单的按照说明文档做了增删改查的Junit测试。
1.首先初始化一个Hibernate的sessionfactory,
private  static SessionFactory  hibernateSesseionFactory = createHiSessionFactory();
    //private static int count = 0;
    //单例模式
    private HibernateUtil(){
         
    }
     
    public synchronized static SessionFactory getHibernateSessionInstance(){
        if(hibernateSesseionFactory == null){
            hibernateSesseionFactory = createHiSessionFactory();
        }
         
        return hibernateSesseionFactory;
    }
     
    @SuppressWarnings("deprecation")
    public static SessionFactory createHiSessionFactory(){
        SessionFactory sessionFactory = null;
        try {
            sessionFactory =  new Configuration().configure().buildSessionFactory();
            //System.out.println("第 " + count + " 个");
        } catch (Exception e) {
 
            System.out.println("create hibernate session failed:" + e.getMessage());
        }
        return sessionFactory;
    }

2.创建相应的javabean,数据实体,使用注解的方案执行
@Entity
@Table(name="user")
public class User implements Serializable{
 
    private static final long serialVersionUID = 3517536107453191566L;
    private int userId;
    private String userName;
    private int age;
 
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    public int getUserId() {
        return userId;
    }
 
    public void setUserId(int userId) {
        this.userId = userId;
    }
 
    public String getUserName() {
        return userName;
    }
 
    public void setUserName(String userName) {
        this.userName = userName;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    @Override
    public String toString() {
        return this.getUserId() + "--" + this.getUserName() + "--" + this.getAge();
    }
}

创建测试类:
private static SessionFactory sessionFactory = HibernateUtil.getHibernateSessionInstance();
 
@Ignore
@Test
public void testCreate(){
    //Session session = sessionFactory.getCurrentSession();
    Session session = sessionFactory.openSession();
    String name = "test";
    Long start = System.currentTimeMillis();
 
    for(int i = 0; i < 1000; i++){
        String userName = name + i;
        int age = 20;
        session.beginTransaction();
        User user = new User();
        user.setAge(age);
        user.setUserName(userName);
        session.save(user);
        session.getTransaction().commit();
    }
     
    System.out.println(System.currentTimeMillis() - start);
    session.close();
}
 
/**
 * 查所有
 */
@Ignore
@Test
public void testQuery(){
    Session session = sessionFactory.openSession();  //use getCurrentSession will encounter exception: createSQLQuery is not valid without active transaction
    //session.getTransaction().begin();
    List<Object> list = session.createQuery("from User where id  < 100").list();
    for(int i = 0; i < list.size(); i++){
        User user = (User) list.get(i);
        System.out.println(user.getUserName());
    }
    //session.getTransaction().commit();
    session.close();
 
}
 
 //hibernate的连表查询,在取数据表名的应避开mysql数据库中的关键名称
     @Test
    public void testQueryCondition2(){
        Session session = sessionFactory.openSession();
        String hql = "select users.userId, users.userName, users.age, orders.orderInfo, orders.ordersId from User  users left join Orders orders on orders.userId = users.userId where users.userName = :userName";
        Query query = session.createSQLQuery(hql);
        query.setString("userName", "test6");
        List<Object> list = query.list();
        for(int i = 0; i < list.size(); i++){
            Object user = list.get(i);
            System.out.println(user.toString());
        }
    }
//条件查询
@Test
public void testConditionQuery(){
    Session session = sessionFactory.openSession();
    //Criteria query = sesson.createCriteria(User.class).add(Restrictions.eq("userName", "test1"));
    Criteria query = session.createCriteria(User.class)
            //.add(Restrictions.like("userName", "%t1%"))
            .add(Restrictions.ilike("userName", "%update%"))
            .addOrder(Order.desc("userId"));
     
    List<User> list = query.list();
     
    session.getTransaction().begin();
    //获取符合条件的记录的主键
    for(int i = 0; i < list.size(); i++){
        int count = 1;
        User user = list.get(i);
        //session.delete(user); //delete object
        user.setUserName("update name" + i); //重置属性值
        session.update(user);  //更新属性值
        count++;
         
        System.out.println(user.toString());
    }
    session.getTransaction().commit();
     
     
}


//------------------------多对一表关系-------------------------//
	@Ignore
	@Test
	public void testOrder(){
		Session session = sessionFactory.getCurrentSession();
		Date date = new Date();
		
		try {
			for(int i = 1; i < 11; i++){
				for(int j = 0; j < 2; j++){
					if(i > 0){
						session = sessionFactory.openSession();
					}
					session.getTransaction().begin();
					Orders order = new Orders();
					order.setUserId(i);
					//order.setOrdersId((sdf.format(date)));
					
					order.setOrdersId("ORDERID" + i + j);
				
					order.setOrderInfo("this is orders from Amazon");
					System.out.println(order.toString());
					session.save(order);
					session.getTransaction().commit();
					//Thread.sleep(200000);
				}
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}

		
		session.close();
	}

}
hibernate.cfg.xml中配置隐射实体

最后就可以通过简单的java代码来对数据库进行增删改查的操作



0
1
分享到:
评论

相关推荐

    基于hibernate的简单留言本

    基于Hibernate的简单留言本是一个基本的Web应用程序,它使用Hibernate作为数据持久化层,用户可以通过该系统进行留言、查看留言以及回复等操作。这个系统展示了如何在实际项目中应用Hibernate来管理数据库交互。 ...

    hibernate简单的入门案例

    **hibernate简单的入门案例** Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。这个入门案例将带你了解如何使用Hibernate进行基本的操作,包括配置、...

    hibernate 简单CRUD操作

    **Hibernate简介** Hibernate是一个强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得...`testHiberbateJava`项目就是一个很好的学习资源,通过实际操作,你可以更深入地理解Hibernate的CRUD操作。

    Hibernate 简单 PPT 总结

    【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...

    hibernate入门简单实例

    这个“hibernate_first”压缩包提供了一个适合初学者的简单实例,帮助理解Hibernate的基础用法。以下是关于Hibernate入门的一些关键知识点: 1. **对象关系映射(ORM)**:ORM是将数据库中的表映射为Java类的过程,...

    Hibernate简单的demo

    这个“Hibernate简单的demo”涵盖了Hibernate的基础用法,包括配置、实体映射、Session和Transaction的使用,以及基本的CRUD操作。对于初学者来说,通过这个demo可以了解到Hibernate的核心概念和基本操作,为进一步...

    hibernate操作

    在本文中,我们将深入探讨如何在MyEclipse中配置并使用Hibernate进行数据库操作。Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者通过Java对象来操作数据库,避免了直接编写SQL语句的繁琐过程。 首先...

    student+hibernate简单项目(表无关联)

    总的来说,"student+hibernate简单项目(表无关联)"是一个基础的Java Web开发项目,通过Struts2处理用户请求,利用Hibernate操作数据库,最终在MySQL中存储和检索数据。这个项目对于初学者来说,是学习和理解三大...

    一个Hibernate的简单实例

    总结来说,"一个Hibernate的简单实例"是Java开发者学习Hibernate框架的起点,它涵盖了从配置文件设置到实体类设计,再到数据库操作的基本步骤。通过这个实例,你可以深入理解Hibernate如何将Java对象和数据库表进行...

    Hibernate入门案例源码

    通过深入学习和实践这个入门案例,你将能够熟练掌握Hibernate的基本操作,为进一步学习更复杂的数据库操作和高级特性打下坚实基础。记得在实践中不断尝试和调试,以便更好地理解和掌握Hibernate的精髓。

    最简单的Hibernate工程

    【标题】"最简单的Hibernate工程"揭示了这个项目的核心是介绍和实现了一个基本的Hibernate框架应用。Hibernate,作为Java领域中的一个流行ORM(对象关系映射)工具,它允许开发者用面向对象的方式来处理数据库,从而...

    Hibernate操作持久化对象

    这个类展示了如何使用Hibernate的简单操作,如`get()`, `add()`, `del()`, 和 `update()`方法,这些方法调用了基类的抽象方法,进一步简化了DAO层的实现。 在Hibernate中,对象的状态分为瞬时状态、持久状态和脱管...

    hibernate 简单工程

    本项目是一个专门为初学者设计的hibernate简单工程示例,旨在帮助初学者快速理解并掌握Hibernate的基本用法。 **1. Hibernate简介** Hibernate是Java领域的一个对象关系映射(ORM)框架,它通过提供一种对象化的...

    hibernate简易网上银行

    在“hibernate简易网上银行”项目中,我们利用Hibernate技术来构建一个简单但功能完整的网上银行系统。这个系统能够帮助用户进行基本的银行交易操作,如存款、取款、转账等,同时实现数据持久化,确保信息的安全存储...

    Hibernate简单使用

    在本教程中,我们将深入探讨Hibernate的基本概念、配置以及如何在实际项目中进行简单使用。 一、Hibernate概述 Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发人员将Java对象模型与关系型数据库进行...

    hibernate3 最简单实现项目

    【hibernate3 最简单实现项目】 在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本项目基于Hibernate3,将介绍如何实现最简单的查询功能,并且提供了必要的jar包以供...

    hibernate最简单源代码

    综上所述,"hibernate最简单源代码"示例将涵盖以上关键概念,帮助初学者了解如何使用Hibernate框架进行数据库操作。通过阅读和实践这些源代码,你可以更好地理解Hibernate的工作原理,为实际项目开发打下坚实的基础...

    hibernate的简单例子

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。在Java编程环境中,Hibernate 提供了一种桥梁,将复杂的SQL语句与Java对象之间进行解耦,使得开发者可以更专注于...

    strut2+hibernate简单例子

    在本"struts2+hibernate简单例子"中,我们将学习以下关键知识点: 1. **Struts2配置**:首先,我们需要配置Struts2的核心文件`struts.xml`,定义Action类、结果类型以及拦截器栈。这包括设置包、添加Action元素,...

    Hibernate Hibernate5 讲义 PDF

    Hibernate是一个开源的对象关系映射(ORM)框架,它封装了JDBC(Java Database Connectivity)的复杂性,并允许Java开发者以面向对象的方式操作数据库。Hibernate框架被广泛应用于企业级Java应用程序中,可以与...

Global site tag (gtag.js) - Google Analytics