文档章节

Hibernate day02(2)

萧小蚁
 萧小蚁
发布于 2015/06/13 11:42
字数 403
阅读 8
收藏 0
package test;



import java.util.Date;
import java.util.List;

import model.Account;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;

import util.HibernateUtils;

public class AccountTest {

	@Test
	public void createTable(){
		//加载hibernate.cfg.xml文件并解析
		Configuration cfg=new Configuration().configure();
		SchemaExport se=new SchemaExport(cfg);
		//对生成的DDL语句进行格式化
		se.setFormat(true);
		se.setDelimiter(" ");
		se.setOutputFile("account.sql");
		se.create(true, true);
	}
	
	@Test
	public void add(){
		Session session=HibernateUtils.getSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		
		Account account=new Account();
		
		account.setName("wanger");
		account.setAge(20);
		account.setScore(20.24);
		account.setBirthday(new Date());
				
		session.save(account);
				
		tr.commit();
	
		HibernateUtils.close(session);
		
		account.setId(11);
		account.setScore(98);
		account.setBirthday(new Date());
		account.setAge(22);
		account.setName("tianqi");
		Session session2=HibernateUtils.getSession();
		Transaction tr2=session2.beginTransaction();
		session2.merge(account);
		
		tr2.commit();
		
		HibernateUtils.close(session2);
	}
	
	
	@Test
	public void update(){
		//加载并解析hibernate.cfg.xml文件
		Configuration cfg=new Configuration().configure();
		//创建SessionFactory对象
		SessionFactory sessionFactory=cfg.buildSessionFactory();
		//创建Session接口负责CRUD
		Session session=sessionFactory.openSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		try{
			Account acc=(Account)session.get(Account.class, 1);
			System.out.println(acc.toString());
			acc.setAge(21);
			acc.setScore(87);
			session.update(acc);
			tr.commit();
		}catch(Exception ex){
			tr.rollback();
		}finally{
			session.close();
		}		
	}
	
	@Test
	public void update2(){
		Session session=HibernateUtils.getSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		Account acc=(Account)session.get(Account.class, 1);
		System.out.println(acc.toString());
		
		tr.commit();
		HibernateUtils.close(session);
		
		
		acc.setName("zhangsan");
		acc.setAge(23);
		Session session2=HibernateUtils.getSession();
		//开启事务
		Transaction tr2=session2.beginTransaction();
		
		session2.update(acc);
		tr2.commit();
		
		HibernateUtils.close(session2);
				
	}
	
	@Test
	public void delete(){
		Session session=HibernateUtils.getSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		Account acc=(Account)session.get(Account.class, 1);
		System.out.println(acc.getId());
		
		
		session.delete(acc);
		tr.commit();
		HibernateUtils.close(session);
		
	}
	
	@Test
	public void get(){
		Session session=HibernateUtils.getSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		Account acc=(Account)session.get(Account.class, 1);
		System.out.println(acc.getId());
		
		tr.commit();
		HibernateUtils.close(session);
	}
	
	@Test
	public void load(){
		Session session=HibernateUtils.getSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		Account acc=(Account)session.load(Account.class, 1);
		System.out.println(acc.getId());
		
		tr.commit();
		HibernateUtils.close(session);
	}
	
	@Test
	public void findAll(){
		Session session=HibernateUtils.getSession();
		//开启事务
		Transaction tr=session.beginTransaction();
		
		String sql="from Account";
		Query query=session.createQuery(sql);
		List<Account> list=(List<Account>)query.list();
		for(Account a:list){
			System.out.println(a);
		}
	
		
		tr.commit();
		HibernateUtils.close(session);
			
	}
}
package util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtils {

	private static SessionFactory factory;
	static{
		factory=new Configuration().configure().buildSessionFactory();
	}
	public static SessionFactory getFactory(){
		return factory;
	}
	
	public static Session getSession(){
		return factory.openSession();
	}
	
	public static void close(Session session){
		if(session!=null){
			session.close();
		}
		
	}
	
}


© 著作权归作者所有

共有 人打赏支持
萧小蚁

萧小蚁

粉丝 98
博文 279
码字总数 192339
作品 0
海淀
程序员
关于使用jquery的问题

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

Littlebox
2016/10/22
112
2
java学习计划

源于传智播客毕向东老师的教学计划: day01-01-基本常识 day01-02-Java的跨平台性 day01-03-Java环境搭建(安装) day01-04-Java环境搭建(环境变量配置) day01-05-Java环境搭建(环境变量配置技...

Bony
2016/05/14
41
0
day02_js学习笔记_01_js的简介、js的基本语法

day02js学习笔记01_js的简介、js的基本语法 ========================================================================================================================================......

黑泽明军
04/18
0
0
小白又来问问题了,谁能帮我找找错,输入12/0 的时候 还是true呢? 找了好久。。。

package day02; import java.util.Scanner; public class LogicDemo { public static void main(String[] args) { char sex ; while(true){ Scanner scanner = new Scanner(System.in); Syst......

PcKing少
2013/08/24
122
4
linux命令行下查看ip归属地Python小脚本

今天之前追踪网络故障可能需要打开网址输入ip138等之类的网站查看问题ip归属地,这个脚本再mac/linux用来就是长期命令行操作的时候无需打开浏览器直接查询ip归属地来追踪网络归属地的小脚本,...

异类深呼吸
2014/03/31
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell-日志脚本小实验

1.查找日志2018-8-15,求得那一分钟访问量最大。 #/bin/bash#from cc#2018-8-15#2018-08-15.log 哪一分钟 访问量 最大for d in `ls /data/nginx/logs/`doif [ -a 2018-08-15...

chencheng-linux
昨天
0
0
Android中的设计模式之状态模式

参考 《设计模式:可复用面向对象软件的基础 》5.8 State 状态 对象行为型模式 《Android源码设计模式解析与实战》第7章 随遇而安--状态模式 意图 允许一个对象在其内部状态改变时改变它的行...

newtrek
昨天
0
0
xshell端 vim没有颜色

说明 使用xshell连接服务器的时候,使用vim打开文档没有颜色 解决方法: 1.在更目录home或者etc下找到vim的配置文件vimrc 2.vim打开它找个坑,添加下面这个东西 set t_Co=256 3.保存退出,就...

杉下
昨天
0
0
spring 资料

spring boot http://www.ityouknow.com/springboot/2016/01/06/spring-boot-quick-start.html

zaolonglei
昨天
2
0
TypeScript基础入门 - 函数 - 简介

转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.1.6 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接...

durban
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部