Hibernate Note

This is a Note for Hibernate.

MySQL

#启动MySQL服务
sudo /usr/local/MySQL/support-files/mysql.server start

#停止MySQL服务
sudo /usr/local/mysql/support-files/mysql.server stop

#重启MySQL服务
sudo /usr/local/mysql/support-files/mysql.server restart

#启动MySQL
mysql -u root -p

#更改密码
set password = password('123456');

#忘记随机密码时更改密码的方法
mysqladmin -u root password [password]

#建立新用户
grant select,insert,update,delete on *.* to jclu@localhost Identified by "password";

Hibernate基础

Hibernate是基于ORM的一个持久化框架。
实现持久化的手段:

  • 文件
  • 序列化
  • JDBC (Hibernate使用JDBC实现持久化)

ORM: 在对象和数据表之间的关系映射。
程序(save(o))—>hibernate(o—>(ORM)—>sql)—>database(insert)
实现方式: XML(早期),注解(现在).

Hibernate体系结构

  1. Persistent Objects: 持久化对象
  2. XML Mapping: ORM文件 / 注解
  3. hibernate.propertes 配置hibernate / XML配置

手动创建方法

  1. 加入hibernate和数据库连接 所需要的jar文件。
  2. 编写hibernate配置文件(hibernate.cfg.xml)。
  3. 获得sessionFactory对象
  4. 获得session对象
  5. 使用session实现CRUD

Hibernate核心API

  1. Session
    Hibernate中核心对象,操作数据库。使用SessionFactory创建。save/delete/update/get
  2. Configuration
    读取配置文件,创建SessionFactory。
  3. SessionFactory
    从Configuration中读取配置,创建Session对象。
  4. Transaction
    事务对象。
  5. Query
    执行HQL语句,执行查询语句的对象。是hibernate中的查询语句。复杂查询。
    Query query = session.createQuery(String HQL);

openSession() VS. getCurrentSession()

  • openSession(): 获得新的sessoin对象。对象之间没有关联。
  • getCurrentSession(): 获得当前线程的session对象。
    必须配置<property name="current_session_context_class">thread</property>;必须在事务环境下运行;事务提交时自动关闭session

使用MyEclipse开发