一:简介
Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。经常性有人将Hibernate与mybatis进行对比,Hibernate是一个完整的ORM框架,使用更加简单,功能更加强大,性能不好控制(中小项目使用的多),而Mybatis也封装了很多的原生的JDBC,是一个半ORM框架,性能可控(SQL需要自己写)。
二:快速入门
1、导入相关依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
2、编写hibernate.cfg.xml
如果是springboot项目就把它放在resources目录下
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--使用 Hibernate 自带的连接池配置-->
<property name="connection.url">jdbc:mysql://localhost:3306/数据库名称</property>
<property name="hibernate.connection.username">数据库name</property>
<property name="hibernate.connection.password">数据库密码</property>
<!--mysql5:com.mysql.jdbc.Driver mysql8:com.mysql.cj.jdbc.Driver-->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<!--hibernate 方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!--打印sql语句-->
<property name="hibernate.show_sql">true</property>
<!--格式化sql-->
<property name="hibernate.format_sql">true</property>
<!--自动生成数据库-->
<property name="hibernate.hbm2ddl.auto"/>
<!-- 加载映射文件 -->
<mapping resource="xml映射文件路径"/>
</session-factory>
</hibernate-configuration>
3、编写实体类和映射文件
3.1、这里以一个基础的用户信息表为例【id(主键递增,索引),name,school】
3.2、编写实体类(这里偷懒用一下lombok的@Data,可以不用写get,set和构造器)
@Data
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private String school;
}
3.3、编写映射文件
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "com.example.myproject.domain.po.User" table="user" lazy="false">
<id name = "id" type="java.lang.Integer">
<column name="id"/>
<generator class="identity"/>
</id>
<property name="name" type="java.lang.String">
<column name="name"/>
</property>
<property name="school" type="java.lang.String">
<column name="school"/>
</property>
</class>
</hibernate-mapping>
3.4、修改.pom文件中的build,让他们可以互相扫描到
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
这样就算ok了,加下来就写个测试类进行一下测试
4、编写实体类进行测试
public class test1 {
public static void main(String[] args) {
//configuration
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
//获取session
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
//操作数据
User user = new User();
user.setName("zhangsan");
user.setSchool("yihzong");
session.save(user);
//提交
session.beginTransaction().commit();
//关闭
session.close();
}
}
搞定,剩下的一些用法就让小伙伴们自己慢慢探索吧