`
20386053
  • 浏览: 434668 次
文章分类
社区版块
存档分类
最新评论

Session工具类:实例1

 
阅读更多
package cn.itcast.hibernate;

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

import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;

import cn.itcast.hibernate.domain.Name;
import cn.itcast.hibernate.domain.User;

public class Base {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		User user = new User();
		user.setBirthday(new Date());
		Name n = new Name();
		n.setFirstName("firstName");
		n.setLastName("lastName");
		user.setName(n);
		// 111

		addUser(user);
		sql();
		// System.out.println("id: " + user.getId());
		// 222
		// System.out.println("1111111");
		// User u = getUser(user.getId());
		// System.out.println("name: " + u.getName());
		//
		// DetachedCriteria dc = DetachedCriteria.forClass(User.class);
		// String name = request.getParameter("name");
		// if (name != null)
		// dc.add(Restrictions.eq("name", name));
		// int age = request.getParameter("age");
		// if(age > 0)
		// dc.add(Restrictions.eq("age", age));
		// List users = dc(dc);
	}

	static List namedQuery(Date date) {
		Session s = HibernateUtil.getSession();
		Query q = s.getNamedQuery("getUserByBirthday");//"cn.itcast.hibernate.domain.User.getUserByBirthday1"
		q.setDate("birthday", date);
		return q.list();
	}

	static List sql() {
		Session s = HibernateUtil.getSession();
		Query q = s.createSQLQuery("select * from user").addEntity(User.class);
		List<User> rs = q.list();
		for (User r : rs)
			System.out.println(r.getName());

		s.close();
		return rs;
	}

	static List dc(DetachedCriteria dc) {
		Session s = HibernateUtil.getSession();
		Criteria c = dc.getExecutableCriteria(s);
		List rs = c.list();
		s.close();
		return rs;
	}

	static void update() {
		Session s = null;
		try {
			s = HibernateUtil.getSession();
			Transaction tx = s.beginTransaction();
			Query q = s.createQuery("from User");
			List<User> users = q.list();
			for (User u : users) {
				u.setBirthday(new Date());
				// s.update(u);
			}

			Query q1 = s
					.createQuery("update u set birthday=:bd from User as u");
			q1.executeUpdate();
			tx.commit();
		} finally {
			if (s != null)
				s.close();
		}
	}

	static User getUser(int id) {
		Session s = null;
		try {
			s = HibernateUtil.getSession();
			Class userClass = User.class;
			Query q = s.createQuery("from User where id=:id");
			q.setInteger("id", id);
			q.uniqueResult();

			// User user = (User) s.get(userClass, id);
			User user1 = (User) s.load(userClass, id);
			Hibernate.initialize(user1);
			System.out.println(user1.getClass());
			return user1;
		} finally {
			if (s != null)
				s.close();
		}
	}

	static void addUser(User user) {
		Session s = null;
		Transaction tx = null;
		try {
			s = HibernateUtil.getSession();
			tx = s.beginTransaction();

			s.save(user);
			// 333
			// s.persist(user);
			Name n = new Name();
			n.setFirstName("firstName");
			n.setLastName("lastName");
			user.setName(n);
			user.setBirthday(new Date());
			tx.commit();
			// 444
			
		} catch (HibernateException e) {
			if (tx != null)
				tx.rollback();
			throw e;
		} finally {
			if (s != null)
				s.close();
		}
	}

	static void addUser1(User user) {
		Session s = null;
		Transaction tx = null;
		try {
			s = HibernateUtil.getSession();
			tx = s.beginTransaction();
			s.save(user);
			tx.commit();
		} finally {
			if (s != null)
				s.close();
		}
	}

}

分享到:
评论

相关推荐

    JAVA编程百例(照着例子更容易!)

    实例1 HelloWorld 实例10 创建一个窗体 实例100 上传文件 实例11 按扭 实例12 复选框 实例13 复合下拉列表 实例14 下拉列表 实例15 选项卡 实例16 对话框 实例17 文件对话框 实例18 使用HTML语言 实例19 菜单 实例2 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

     《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 1.6.2 文档类型声明 10 1.6.3 元素 11 1.6.4 注释 15 1.6.5 处理指令 15 1.6.6 空白处理 16 1.6.7 行尾处理 16 1.6.8 语言标识 16 1.7 格式良好的xml ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 1.6.2 文档类型声明 10 1.6.3 元素 11 1.6.4 注释 15 1.6.5 处理指令 15 1.6.6 空白处理 16 1.6.7 行尾处理 16 1.6.8 语言标识 16 1.7 格式良好的xml ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 1.6.2 文档类型声明 10 1.6.3 元素 11 1.6.4 注释 15 1.6.5 处理指令 15 1.6.6 空白处理 16 1.6.7 行尾处理 16 1.6.8 语言标识 16 1.7 格式良好的xml ...

    基于SpringMVC的一个web框架

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    Java源码包100个设计实例.zip

    Java二进制IO类与文件复制操作实例.rar Java从压缩包中提取文件.rar Java从网络取得文件.rar Java仓库管理系统,Access数据库.rar Java仿Vista界面风格的登录窗口.rar Java仿千千静听音乐播放器源代码.rar Java企业...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

     《PHP开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第I卷,以开发...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 1.6.2 文档类型声明 10 1.6.3 元素 11 1.6.4 注释 15 1.6.5 处理指令 15 1.6.6 空白处理 16 1.6.7 行尾处理 16 1.6.8 语言标识 16 1.7 格式良好的xml ...

    hibernate入门实例封装了HibernateUtil

    hibernate入门实例封装了HibernateUtil,完成数据库的添加操作,和查询操作。 Session的save方法和get方法。

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    第24次课-1 Spring与Hibernate的整合

    Spring为与Hibernate进行整合,提供了一个工具类HibernateDaoSupport HibernateDaoSupport提供了基于AOP事务的自动处理,程序员完全可以不用理会事务的开始与提交,它会自动完成SessionFactory的注入和事务的注入。 ...

    Hibernate Web应用的开发步骤

    Hibernate Web应用的开发一般经过以下几个步骤: ...(7)通过创建的Session实例进行持久化对象的管理。 (8)通过创建的Transaction实例进行事务管理。 (9)通过创建的Query或Criteria实例实现数据库的查询。

    Visual_C++精彩实例详解

    B.1 CADODatabase类函数介绍 CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开一个数据库连接 BOOL CADODatabase::Open ( LPCTSTR lpstrConnection = _T("");//连接字符串 ) 示例: // 访问SQL Server...

    java web技术开发大全(最全最新)

    4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术...

    java web开发技术大全

    4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX...

Global site tag (gtag.js) - Google Analytics