Hibernate配置文件的编写一

开发第一个hibernate例子

1、导入hibernate所需的jar包,导入JDBC连接的驱动包

2、编写实体类User.java
hibernate 要求实体类有一个属性值是唯一值、属性值都是私有的且有set、get方法。
3、创建实体映射文件,映射文件名称和位置没有固定要求,建议写在实体类包下,名称:实体类名称.hbm.xml,这里为user.hbm.xml
<?xml version="1.0"?>


 
注:
class标签:定义了类和对应数据库表之间的关联关系
②id标签:为对应数据库表的主键
③property标签:元素映射值类型。
④映射文件中,标签name是写实体类相关的内容。
  a.class标签name属性时实体类的全路径,id标签的name和property标签name属性值是实体类属性名称。

id标签property标签中column属性可以省略,省略时生成的数据库表默认与实体类属性相同。

⑥property标签type属性,设置生成表字段的类型,可以省略,会自动对应类型。

4、Hibernate的核心配置文件的编写

Hibernate配置文件名为:hibernate.cfg.xml,一般不要修改名称,并放在src目录下,该文件的主要目的是为了连接到数据库。

以MySql为例:

<?xml version="1.0" encoding="UTF-8"?>

com.mysql.jdbc.Driver
    		jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    		
    	rootrootorg.hibernate.dialect.MySQLDialecttruetrue
注:
①hibernate操作过程中只加载核心配置文件,其它配置文件不会加载(例如:user.hbm.xml映射文件不会加载)。
②<property name="hibernate.hbm2ddl.auto">update</property>
update:如果已有表,更新,如果没有表就创建。
create:如果原有表存在,先删除,再创建新的表。
create-drop:先创建再删除。
validate:对原有表结构验证,若现有表结构与原来不同,就不会创建表。
③配置数据库方言:不同的数据库的语法不一样,让hibernate框架识别不同的数据库语句。
5、获取session
// 第一步 加载hibernate核心配置文件
//在src下面找到hibernate.cfg.xml
Configuration cfg = new Configuration().configure();

// 第二步 获取sessionFaction对象,读取hibernate核心配置文件,创建SessionFactory
// 根据映射关系,在配置的数据库里创建表
SessionFactory sf = cfg.buildSessionFactory();

// 第三步 获取session对象
//类似于连接
Session session = sf.openSession();

//第四步 开启事务
Transaction ts=session.beginTransaction();

//第五步 增删改查
User user = new User();
user.setUsername("小一");
user.setPassword("123");
session.save(user);

//第六步 提交事务
ts.commit();

//第七步 关闭资源
session.close();
sf.close();

Hibernate 5 个核心接口:

Configuration接口:加载hibernate核心配置文件,在src下面找到hibernate.cfg.xml,把配置文件放到对象里面。

Configuration cfg=new Configuration().configure();

SessionFactory接口创建sessionFaction对象,读取hibernate核心配置文件根据核心配置文件中数据库的配置、映射关系,在数据库里创建表。

SessionFactory sf=cfg.buildSessionFactory();

创建SessionFactory的过程中,这个过程是消耗资源,性能低,一般在Hibernate操作中一个项目创建一个SessionFactory对象。(写一个工具类,写静态代码块实现。)

public class HibernateUtil{
  static  Configuration cfg = null;
  static  SessionFactory sf = null;
  static{
    cfg = new Configuration().configure();
    SessionFactory sf = cfg.buildSessionFactory();
  }
  public static SessionFactory getSessionFactory(){
    return sf;
  }
}

Session接口:类似于jdbc中的connection。单线程对象,session对象不能共用。

Sessionsession=sf.openSession();

保存:save方法、修改:update方法、删除:delete方法、查询:根据id用get方法。

Transaction接口:管理事务。

Transaction ts=session.beginTransaction();

ts.commit();//提交事务

ts.rollback();//事务回滚


使用hibernate时候不需要手动创建表,hibernate会帮我们把表创建哦,我们也可以使用根据数据库表逆向生成实体类。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章