Hibernate
- 什么是hibernate
Hibernate是一个开放源代码的对象关系映射框架,他对JDBC进行了非常轻量级的对象封装,他对POJO(简单java对象)与数据库表建立映射关系, 是一个全自动的ORM框架,hibernate可以自动生成SQL语句,自动执行,使得java程序员可以随心所欲的使用对象编程思想来操作数据库,hibernate 可以应用在任何使用JDBC的场合,既可以在java的客户端程序使用,也可以在Servlet或者jsp的Web应用中使用
安装hibernate的jboss tools插件:打开eclipse---help----ecilpse Marketplace----搜索jboss tools----选择JBoss tools 4.5.3.Final----选择安装(安装的时间只 选择hibernate tools工具就可以了)------然后Confirm-----选择I accept terms of the licens agreements-----然后finsh
- 第一个hibernate程序
- 创建工程(maven工程)
- 导入hibernate的jar包,导入SQL的驱动包,导入junit测试包
<dependencies> <!-- hibernate的jar包 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.17.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies> |
- 创建hibernate的hibernate.cfg.xml核心配置文件,在resources目录下,名字默认就行,选择和导入jar包相对应的版本
<?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> <!-- 连接数据库的基本信息 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernateTest</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <!-- 数据库方言,是否显示sql语句 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- 是否显示sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 是否格式化sql语句 --> <property name="hibernate.format_sql">true</property> <!-- create代表每一次都会创建表,并且把旧表删除,每次都会是一张新表 crate-drop代表每次hibernate加载的时间都会创建表,但是sessionFactory一关闭的话表就会自动删除 update是最常用的属性,第一次hibernate加载的时间会根据实体类自动的生成表,(前提是创建好了数据库)以后加载hibernate的时间根据实体类自动更新表结构 validate代表每次hibernate加载的时间,验证创建数据库表结构,只会和数据库的表进行比较,不会创建新表,但是会插入新值 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 配置映射文件 ORM映射关系 --> <mapping resource="hibernate/test/Student.hbm.xml"/> </session-factory> </hibernate-configuration> |
- 创建实体类,属性名和数据库列名一一对应
package hibernate.test;
public class Student { private int id; private String name; private int age; private double height; public Student(String name, int age, double height) { super(); this.name = name; this.age = age; this. |