一:
1.Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm【Object Relational Mapping】框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。(简单来说就是通过管理对象来操作数据库)
2:Hibernate的优势:简化了代码,实现了跨数据库的无缝移植
二:如何在项目中添加hibernate支持
①:pom.xml文件中加入
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.6.Final</version>
</dependency>
②:添加DTD约束(可参考我另外一篇博客)
hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd
③: 添加实体映射文件(一般一个实体类只有一个实体映射文件,命名通常为 :实体类.hbm.xml)
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--
table:实体类所对应的表
name:实体类的全类名
-->
<class table="t_hibernate_user" name="com.zking.one.entity.User">
<!--
name:实体类的属性
type:实体类的属性类型
column:指的是数据库表的主键列
-->
<id name="id" type="java.lang.Integer" column="id">
<generator class="increment"></generator>
</id>
<!-- id标签打头,代表配置的是数据库主键与实体类的关系,其他property配置的是数据库的其他列 -->
<property name="userName" type="java.lang.String" column="user_name"></property>
<property name="userPwd" type="java.lang.String" column="user_pwd"></property>
<property name="realName" type="java.lang.String" column="real_name"></property>
<property name="sex" type="java.lang.String" column="sex"></property>
</class>
</hibernate-mapping>
④: 在resource目录下添加hibernate.cfg.xml(核心配置文件)
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 1. 数据库相关 -->
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="connection.url">jdbc:mysql://localhost:3306/db_study?useUnicode=true&characterEncoding=UTF-8</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 配置本地事务(No CurrentSessionContext configured!) -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- 2. 调试相关 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 3. 添加实体映射文件 -->
<mapping resource="com/zking/one/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
⑤:运用
public static void main(String[] args) {
// 1.读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
//2.通过xml建模得到sessionfactory工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//3.打开session通道拿到session对象
Session session = sessionFactory.openSession();
//4.开启事务
Transaction transaction = session.beginTransaction();
//5. 5.具体的数据库操作
User user = new User();
user.setUserName("xiang");
user.setRealName("aa");
user.setUserPwd("123");
user.setSex("n");
user.setRemark("CC");
//6.提交事务
session.save(user);
transaction.commit();
//7.关闭会话
session.close();
}