神刀安全网

Hibernater学习笔记(二)


hibernate核心api

  • 1.Configuration

Configuration configuration = new Configuration();  configuration.configure("/hibernate.cfg.xml"); 

在src下面找名称为hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件)

  • 2.SessionFactory(重要)

 SessionFactory sessionFactory = configuration.buildSessionFactory(); 

a.使用configuration 对象创建sessionFactory对象
创建sessionFactory过程中做的事情:根据核心配置文件中,有数据库的配置,有映射文件部分,到数据库里面根据映射关系把表创建。

<!--hibernate 帮创建表,需要配置。update:如果有表进行更新,没有的话进行创建-->         <property name="hibernate.hbm2ddl.auto">update</property> 

b.创建sessionFactory过程中,这个过程特别耗资源
在一个hibernate操作中,建议一个项目一般创建一个sessionFactory对象

 SessionFactory sessionFactory = configuration.buildSessionFactory(); 

c.创建工具类,解决耗资源的问题

public class HibernateUtils {     private static Configuration configuration = null;     private static SessionFactory sessionFactory = null;      static {         configuration = new Configuration();         configuration.configure("/hibernate.cfg.xml");         sessionFactory = configuration.buildSessionFactory();     }      public static SessionFactory getSessionFactory() {          return sessionFactory;     } } 
  • 3.Session(重要)

 Session session = sessionFactory.openSession(); 

a.session类似于jdbc中的connection
b.调用session里面不同的方法实现crud操作
添加save方法
修改update方法
删除delete方法
根据id查询get方法
c.session对象单线程对象
session 对象不能公用,只能用自己的

  • 4.Transaction事务对象

  Transaction tx = session.beginTransaction(); 

a.事物提交和回滚方法
提交:tx.commit()
回滚:tx.rollback()
b.事物概念
原子性,一致性,隔离性,持久性


Hibernate主键生成策略

1.native:根据底层数据库自动选择生成器

 <generator class="native"></generator> 

2.uuid:采用128位的UUID算法来生成标识符

<generator class="uuid"></generator>   

实体类操作

  • 添加信息
public void testAdd(){         SessionFactory sessionFactory = HibernateUtils.getSessionFactory();         Session session = sessionFactory.openSession();         //    开启事务         Transaction tx = session.beginTransaction();         User user = new User();         user.setUsername("小明");         user.setPassword("456789");         user.setAddress("西安");         session.save(user);         //    提交事务         tx.commit();         //    关闭资源         session.close();         sessionFactory.close();     } 
Hibernater学习笔记(二)

添加信息

  • 通过id查询信息
public void testGet(){         SessionFactory sessionFactory = HibernateUtils.getSessionFactory();         Session session = sessionFactory.openSession();         Transaction transaction = session.beginTransaction();          User user = session.get(User.class,1);         System.out.println(user);         System.out.println(User.class);         transaction.commit();         session.close();         sessionFactory.close();     } 
Hibernater学习笔记(二)

通过id查询信息

  • 更新信息
public void textUpdate(){         SessionFactory sessionFactory = HibernateUtils.getSessionFactory();         Session session = sessionFactory.openSession();         Transaction transaction = session.beginTransaction();         User user = session.get(User.class,2);         user.setUsername("改名成");         session.update(user);         transaction.commit();         session.close();         sessionFactory.close();     } 
Hibernater学习笔记(二)

更新信息

  • 删除信息
 public void testDelete(){         SessionFactory sessionFactory = HibernateUtils.getSessionFactory();         Session session = sessionFactory.openSession();         Transaction transaction = session.beginTransaction();         User user = session.get(User.class,2);         session.delete(user);         transaction.commit();         session.close();         sessionFactory.close();     } 
Hibernater学习笔记(二)

删除信息


上一篇:Hibernater学习笔记(一)

当前文集 :Hibernate框架学习

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Hibernater学习笔记(二)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址