1.创建实体类Product
2.在实体类包下配置Product.hbm.xml
文件名P一定要大写要和类保持一致
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.how2java.pojo">
<class name="Product" table="product_">
//表示类Product对应表product_
<id name="id" column="id">
<generator class="native">
</generator>
</id>
//表示属性id,映射表里的字段id
<generator class="native"> 意味着id的自增长方式采用数据库的本地方式
<property name="name" />
//这里配置的时候,只写了属性name,没有通过column="name" 显式的指定字段,那么字段的名字也是name.
<property name="price" />
</class>
</hibernate-mapping>
3.配置hibernate.cfg.xml(在src目录下)
<?xml version='1.0' encoding='utf-8'?>
<!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>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
<property name="connection.username">root</property>
<property name="connection.password">admin</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
//这里表示使用Mysql方言
<property name="current_session_context_class">thread</property>
//这里是Hibernate事务管理方式,即每个线程一个事务
<property name="show_sql">true</property>
//这里表示是否在控制台执行sql语句
<property name="hbm2ddl.auto">update</property>
//这表示是否会自动更新数据库的表结构,
//有这句话,其实是不需要创建表的,因为Hibernate会自动去创建表结构
<mapping resource="pakageName/Product.hbm.xml" />
//这表示Hibernate会去识别Product这个实体类
</session-factory>
</hibernate-configuration>
4.测试类TestHibernate
hibernate的基本步骤是:
1. 获取SessionFactory
2. 通过SessionFactory 获取一个Session
3. 在Session基础上开启一个事务
4. 通过调用Session的save方法把对象保存到数据库
5. 提交事务
6. 关闭Session
7. 关闭SessionFactory
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session s = sf.openSession();
s.beginTransaction();
Product p = new Product();
p.setName("iphone7");
p.setPrice(7000);
s.save(p);
s.getTransaction().commit();
s.close();
sf.close();
Hibernate原理图.png