zoukankan      html  css  js  c++  java
  • Hibernate——(2)增删改查

    案例名称:Hibernate完成增删改查

    案例描述:抽取出工具类并完成删除、修改、查询功能。

    具体过程:

    1、使用上面的例子(Hibernate——(1)Hibernate入门http://blog.csdn.net/dawanganban/article/details/13748235

    2、新建HibernateUtils :用于封装创建Session的方法。

    package com.xsyu.tts.util;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtils {
    	private static Configuration conf;
    	private static SessionFactory factory;
    	// conf 对象只要加载一次就可以了
    	// 如果放入 openSession 方法中效率会降低
    	static {
    		conf = new Configuration();
    		conf.configure();
    		factory = conf.buildSessionFactory();
    	}
    
    	public static Session openSession() {
    		return factory.openSession();
    	}
    }
    如上面代码中,每个用户对应一个Session,但是SessionFactory是共享的

    删除指定ID的User

    3、修改TestHibernate

    增加方法test2(),用于删除指定ID的User

    	/*
    	* 删除指定ID的User
    	*/
    	public void tst2() {
    		Session session = HibernateUtils.openSession();
    		User user = new User();
    		user.setId(1);
    		// 方式1
    		/*
    		 * Transaction tx = session.getTransaction(); tx.begin();
    		 */
    		// 方式2:简写
    		Transaction tx = session.beginTransaction();
    		session.delete(user);
    		tx.commit();
    		session.close();
    	}
    4、测试

    (1)运行TestHibernate


    (2)查看数据库


    更改指定ID的User

    5、修改TestHibernate

    	/**
    	 * 更改User
    	 */
    	@Test
    	public void tst3() {
    		User user = new User();
    		user.setId(3);
    		user.setLoginName("ssh");
    		user.setPassword("xyz");
    		user.setName("Hibernate");
    		Session session = HibernateUtils.openSession();
    		Transaction tx = session.beginTransaction();
    		session.update(user);
    		tx.commit();
    		session.close();
    	}
    6、测试


    查询所有的User

    7、修改TestHibernate

    	/**
    	 * 查询所有的User
    	 */
    	@Test
    	public void tst4() {
    		Session session = HibernateUtils.openSession();
    		// HQL -- Hibernate提供的面向对象的查询语句
    		Query query = session.createQuery("from User");
    		List<User> userList = query.list();
    		for (User user : userList) {
    			System.out.println(user.getId() + "," + user.getName() + ","
    					+ user.getLoginName() + "," + user.getPassword());
    		}
    		session.close();
    	}
    8、测试



  • 相关阅读:
    Selenium 验证
    Flask 拓展(flask-admin)
    读取 xlsx中数据
    OSS 上传内容
    Tornado 端口绑定方式
    Tornado 基础
    Flask 懒人版分页(未完善)
    kafka事务原理、事务API和使用场景(转)
    jvm几种垃圾回收机制小结
    理解Semaphore及其用法详解(转)  -实现一个文件允许的并发访问数
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469545.html
Copyright © 2011-2022 走看看