Hibernate基础之SessionFactory

在完成下面的一些基础之后我们就开始了下面的学习。

用eclipse使用hibernate 实现用户添加https://blog.csdn.net/maryverynice_/article/details/116403475

那么就开始:

package cn.hrbust.dao;import cn.hrbust.pojo.User;
import junit.framework.TestCase;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.query.Query;import java.sql.Date;
import java.util.List;public class manageUser extends TestCase {//查询用户对象public void testQuerySUser() {Configuration cfg = null;SessionFactory sf = null;Session session = null;Transaction ts = null;try {sf = HibernateUtil.getSessionFactory();//SessionFactory单态模式session = sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts = session.beginTransaction();Query query = session.createQuery("from User");List<User> users = query.list();
//          for(int i=0;i<users.size();i++)
//          {//              User u =users.get(i);
//              System.out.println(u.getName()+" "+u.getAge());
//          }for (User u : users) {System.out.println(u.getName() + " " + u.getAge());}ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if (ts != null) {ts.rollback();}} finally {//session.close();//sf.close();}}//保存用户对象public void testSavaUser() {Configuration cfg = null;SessionFactory sf = null;Session session = null;Transaction ts = null;User u = new User();u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf = HibernateUtil.getSessionFactory();//SessionFactory单态模式session = sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts = session.beginTransaction();/** Query query=session.createNamedQuery("from User"); List users=(List)* query.list();*/session.save(u);ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if (ts != null) {ts.rollback();}} finally {//session.close();//sf.close();}}public void testSavaUser1() {Configuration cfg = null;SessionFactory sf = null;Session session = null;Transaction ts = null;User u = new User();u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf = HibernateUtil.getSessionFactory();//SessionFactory单态模式session = sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts = session.beginTransaction();/** Query query=session.createNamedQuery("from User"); List users=(List)* query.list();*/session.save(u);u.setName("赵四");ts.commit();u.setName("赵三");//在提交之后不执行,u为托管对象,有id,record,但是没有session管理,不发sql语句} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if (ts != null) {ts.rollback();}} finally {//session.close();//sf.close();}}public void testDetachedObject(){Configuration cfg =null;SessionFactory sf=null;Session session=null;Transaction ts=null;User u=new User();u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();session.save(u);ts.commit();u.setName("赵三");sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();session.update(u);ts.commit();//在提交之后不执行,u为托管对象,有id,record,但是没有session管理,不发sql语句} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if(ts !=null) {ts.rollback();}}finally {//session.close();//sf.close();}}public void testDetachedObject1(){Configuration cfg =null;SessionFactory sf=null;Session session=null;Transaction ts=null;User u=new User();u.setId(4);u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();session.saveOrUpdate(u);ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if(ts !=null) {ts.rollback();}}finally {//session.close();//sf.close();}}public void testDeletedObject(){Configuration cfg =null;SessionFactory sf=null;Session session=null;Transaction ts=null;User u=new User();u.setId(4);u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();session.delete(u);//u:删除对象,有id,没有纳入session,不发sql,数据库没有纳入ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if(ts !=null) {ts.rollback();}}finally {//session.close();//sf.close();}}public void testSavaUser2(){Configuration cfg =null;SessionFactory sf=null;Session session=null;Transaction ts=null;User u=new User();u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();/** Query query=session.createNamedQuery("from User"); List users=(List)* query.list();*/session.save(u);u.setName("赵三");u.setName("赵四");ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if(ts !=null) {ts.rollback();}}finally {//session.close();//sf.close();}}public void testGetUser2(){Configuration cfg =null;SessionFactory sf=null;Session session=null;Transaction ts=null;User u=new User();u.setName("张三");u.setGender("女");u.setAge(21);u.setBirthday(Date.valueOf("2002-1-1"));try {sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();u=(User)session.get(User.class, 5);System.out.println(u.toString());ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if(ts !=null) {ts.rollback();}}finally {//session.close();//sf.close();}}public static void main(String[] args) {Configuration cfg =null;SessionFactory sf=null;Session session=null;Transaction ts=null;User u=new User();u.setName("李四");u.setGender("男");u.setAge(21);u.setBirthday(Date.valueOf("2001-1-1"));try {sf=HibernateUtil.getSessionFactory();//SessionFactory单态模式session=sf.getCurrentSession();//保证每个读写线程有唯一的session实例ts=session.beginTransaction();session.save(u);ts.commit();} catch (HibernateException e) {// TODO Auto-generated catch blocke.printStackTrace();if(ts !=null) {ts.rollback();}}finally {//session.close();//sf.close();}}
}
package cn.hrbust.dao;import org.hibernate.HibernateException;import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
//SessionFactory单态模式
public class HibernateUtil {private static SessionFactory sf=null;private static Configuration cfg=null;//    静态代码块,在类加载的时候只能执行一次static {try {cfg = new Configuration().configure();sf = cfg.buildSessionFactory();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static SessionFactory getSessionFactory() {return sf;}public static void closeSessionFactory(){sf.close();}
}
package cn.hrbust.dao;import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.schema.TargetType;import java.util.EnumSet;public class ExportSchema {public static void main(String[] args) {// TODO Auto-generated method stub//服务注册对象ServiceRegistry sr= new StandardServiceRegistryBuilder().configure().build();Metadata metadata =new MetadataSources(sr).buildMetadata();//创建Schema,表的对象,目的是根据数据生成表SchemaExport se=new SchemaExport();se.create(EnumSet.of(TargetType.DATABASE), metadata);}}
<!--~ Hibernate, Relational Persistence for Idiomatic Java~~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.-->
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hellohibernate?useSSL=false</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">12345</property><property name="show_sql">true</property><mapping resource="cn/hrbust/pojo/User.hbm.xml"/></session-factory>
</hibernate-configuration>


这个东西直接就导入就好了。运行就大功告成了。

Hibernate基础之SessionFactory相关推荐

  1. Hibernate基础学习2

    Hibernate基础学习2 测试hibernate的一级缓存,事务以及查询语句 1)Hibernate的一些相关概念 hibernate的一级缓存 1)缓存是为了提高该框架对数据库的查询速度 2)一 ...

  2. 北大青鸟深圳嘉华分享Hibernate基础入门内容

    0.Hibernate基础 0.1.什么是hibernate hibernate是免费开源的框架,是一个OR-Mapping映射工具, 将实体类和数据库表形成映射关系,是一个优秀的持久层解决方案,hi ...

  3. hibernate 基础学习

    2019独角兽企业重金招聘Python工程师标准>>> Hibernate 一.是什么: Hibernate是轻量级的ORM框架. 1.ORM(ORMapping) Object R ...

  4. Hibernate基础学习(二)—Hibernate相关API介绍

    一.Hibernate的核心接口 所有的Hibernate应用中都会访问Hibernate的5个核心接口. (1)Configuration接口: 配置Hibernate,启动Hibernate,创建 ...

  5. Java Web系列:Hibernate 基础

    从以下5个方面学习hibernate ORM. (1)配置文件:hibernate.cfg.xml XML文件和hibernate.properties属性文件 (2)实体映射:1对多.多对多 (3) ...

  6. hibernate基础sessionFactory

    hibernate(第二次作业) 一.SessionFactory作用? 二.使用步骤 1.在原有基础项目的dao层中添加一个工具类 2.使用util工具代替manageUser中的sessionFa ...

  7. Hibernate基础

    ** 一.什么是Hibernate? ** Hibernate是一个轻量级的ORMapping框架 ORMapping原理(Object Relational Mapping) ORMapping基本 ...

  8. hibernate基础工具findBySQL学习

    public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int ...

  9. 为什么要用Hibernate框架? 把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了?...

    既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?把SessionFactory,Session,Transcational封装成包含crud的 ...

最新文章

  1. Java基础学习总结(1)——equals方法
  2. python防反编译_Python - 浅谈Python的编译与反编译
  3. Linux内核网络数据发送(五)——排队规则
  4. 缅甸公民法(1982年人民议会第4号法令)罗伯特 译
  5. Kickstart 多系统安装配置
  6. BZOJ 1011: [HNOI2008]遥远的行星
  7. 前端学习(1937)vue之电商管理系统电商系统之渲染分配角色的对话框并请求数据
  8. 自定义_如何自定义协议
  9. DR.com客户端解密过程逆向分析
  10. IT公司比较流行的10种编程语言
  11. Bash vs. Python:您应该使用哪种语言?
  12. C++字符串可以这样用!
  13. Linux第二周考试题
  14. MySQL online create index实现原理
  15. 无人车成功挑战上海路况,连续5小时不接管,谷歌自动驾驶之父看了都打Call...
  16. 用ZeroTier搭建属于自己的虚拟局域网(VLAN)
  17. Error installing to Instantiated: name=AttachmentStore state=Described
  18. 计算机声卡原理,什么是电脑声卡 电脑声卡的工作原理
  19. MATLAB中plot函数使用
  20. 电脑突然变成繁体字,格式化代码快捷键失灵

热门文章

  1. 手机触屏事件(jquery)
  2. SQL语句,常用的DDL表操作语句
  3. zuul 里面的 prefix 和 strip-prefix 怎么使用
  4. alt+tab突然不能切换窗口(樱桃机械键盘)
  5. 如果有人再问你 Java IO,把这篇文章砸他头上
  6. 抖音举起兴趣电商屠龙刀
  7. wget安装pip和pip3
  8. 服务器被大流量攻击该怎么办
  9. 综艺视频素材在哪下?怎么下载综艺高清视频?
  10. Stata:时变Granger因果检验