Hibernate上路_02-Hibernate基本操作

1.增:

@Test
	/* 增 */
	public void test() {

		// 0.封装数据。瞬时对象
		PojoUser user = new PojoUser();
		user.setName("Emine");
		user.setAge(32);
		user.setCity("Holloyed");

		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		Session session = sessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		// 6.由框架自动生成sql语句。转为持久对象
		session.save(user); 
		// 7.提交事务,释放资源。变为脱管对象
		transaction.commit();
		session.close();
		sessionFactory.close();
	}


2.删:

@Test
	/* 删 */
	public void test() {
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		Session session = sessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		
		// 6.由框架自动生成sql语句
		PojoUser user = new PojoUser();
		user.setId(1);	//根据ID进行删除 
		session.delete(user); 
  
		transaction.commit();
		session.close();
		sessionFactory.close();
	}


3.改:

@Test
	/* 改 */
	public void test() {
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		Session session = sessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		
		// 6.由框架自动生成sql语句
		/** 更新一:根据指定ID更新 */
		PojoUser user = new PojoUser();
		user.setId(1);	//必须指定一个已知ID
		user.setAge(25);
		user.setName("U2");
		//user.setCity(),没有配置的属性将被更新为NULL或0
		/**Hibernate的更新默认针对全部字段*/
		session.update(user); 
		
		/** 更新二:根据已知记录,更新某列 */
		PojoUser pu = (PojoUser) session.get(PojoUser.class, 3);
		pu.setCity("Beijing"); 
		session.update(pu); 
		
		transaction.commit();
		session.close();
		sessionFactory.close();
	}


4.根据主键查:

@Test
	/* 查 */
	public void test() {

		// 1.实例化配置器,加载配置文件 hibernate.cfg.xml,POJO.hbm.xml
		Configuration configuration = new Configuration().configure();
		// 2.服务注册器
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
		// 3.创建会话连接工厂。v4使用注册器创建会话工厂
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		// 4.创建会话
		Session session = sessionFactory.openSession();
		// 5.开启事务
		Transaction transaction = session.beginTransaction();
		
		// 6.由框架自动生成sql语句
		int i=2;
		//方法一:get,立即查询获取实际对象
		PojoUser user = (PojoUser) session.get(PojoUser.class, i);
		System.out.println("查询到:"+user.toString());
		//方法二:load,缓冲查询获取代理对象
		PojoUser user = (PojoUser) session.load(PojoUser.class, i);
		System.out.println("查询到:"+user.toString());
		
		// 7.提交事务,释放资源
		transaction.commit();
		session.close();
		sessionFactory.close();
	}


5.使用HQL查:

@Test
	/* 查 */
	public void test() {
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		Session session = sessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		
		// 6.查询
		/**方式一:使用HQL语句查询全部**/
		String strHql = "from PojoUser";	//from POJO
		//查询器
		Query query = session.createQuery(strHql);
		//返回集合
		List<PojoUser> users = query.list();
		for (PojoUser user:users) {
			System.out.println(user.toString());
		}

		transaction.commit();
		session.close();
		sessionFactory.close();
	}


6.使用SQL查:

@Test
	/* 查 */
	public void test() {
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
		Session session = sessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		
		// 6.查询
		/**方式二:使用SQL语句查询全部**/
		String strSql = "select * from tb_user";	//from 表单
		//Sql查询器
		SQLQuery sqlQuery = session.createSQLQuery(strSql);
		//返回Object数组
		List<Object[]> objects = sqlQuery.list();
		for (Object[] object : objects) {
			System.out.println(Arrays.toString(object));
		}
		
		transaction.commit();
		session.close();
		sessionFactory.close();
	}

- end


转载于:https://my.oschina.net/vigiles/blog/175717

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值