Hibernater学习笔记(二)
2017-12-07 本文已影响51人
Mr_欢先生
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();
}
添加信息
- 通过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();
}
通过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();
}
更新信息
- 删除信息
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学习笔记(一)
当前文集 :Hibernate框架学习