1、hibernate是什么?
hibernate是持久层框架,是目前比较流行的框架
hibernate的优势等,先不介绍,
hibernate的核心就是ORM(object relation mapping)对象关系映射;
2、hibernate框架的核心的5个类(Configuration,SessionFactory,Session,Query,Criteria)
3、如何使用hibernate,下面是我用空闲时间写的一个小的hibernate的demo
第一步:去官网http://hibernate.org/orm/releases/下载hibernate的包,(选择自己需要版本的包)
第二步:创建一个简单的java工程
第三步:将下载hibernate的包required文件夹下lib文件中的jar都拷贝到项目工程中lib文件夹下
第四步:创建一个实体类User,对应的目录下创建对应的User.hbm.xml的文件,(文件主要是告诉hibernate是和数据库中的那个表形成映射)
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--配置实体类个关系数据表之间的映射-->
<!--
name属性表示实体类的全路径
table属性表示数据库表名
-->
<class name="hibernatedemo.User" table="usertest">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="sequence">
<param name="sequence">seq_id</param>
</generator>
</id>
<!--配置实体类属性与数据表的各个列之间的映射对应-->
<property name="name" column="NAME"></property>
<property name="age" column="AGE"></property>
</class>
</hibernate-mapping>
第五步:创建hibernate的配置文件(hibernate.cfg.xml)这个文件主要配置的是数据库连接的信息
<!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="connection.driver_class">com.mysql.jdbc.Driver</property>
配置数据库连接url
<property name="connection.url">jdbc:mysql://localhost:3306/ybf</property>
配置数据库连接用户名和密码
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
配置数据库数据方言
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
</session-factory> -->
<!--配置数据库连接基本信息-->
<session-factory>
<!--配置数据库驱动-->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!--配置数据库连接url-->
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<!--配置数据库连接用户名和密码-->
<property name="connection.username">soaware</property>
<property name="connection.password">soaware</property>
<property name="show_sql">true</property>
<!--配置数据库数据方言-->
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<mapping resource="hibernatedemo/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
第六步:写测试类,进行测试(需要注意,如果连接是oracle数据库,需要注意添加序列);
public class Test {
public static void main(String[] arg) {
// 创建configuration对象
Configuration cfg = new Configuration().configure();
StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
SessionFactory sf = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
// 通过SessionFactory创建session对象
Session session = sf.openSession();
// 通过session创建事务对象
Transaction transaction = session.beginTransaction();
User user = new User();
user.setName("张三");
user.setAge(18);
User user1 = new User();
user1.setAge(18);
user1.setName("李四");
session.save(user);
session.save(user1);
// 提交事务
transaction.commit();
session.close();
}
}
目录结构如下: