hibernate环境搭建
-
下载hibernate
hibernate的jar
连接数据库的jar
-
解压hibernate,解压后目录结构
documentation :对应hibernate开发文档
lib :对应hibernate开发所依赖的jar包
optional :对应hibernate开发可选的jar包
required :对应hibernate开发必须的jar包
project :对应hibernate的项目
-
创建表
create table user( id int primary key unique auto_increment, name varchar(20), password varchar(20) );
-
创建表对应实体类
public class User { private int id; private String name; private String password; ...... }
-
创建对象关系映射
一般命名:实体类名.hbm.xml
约束查找:lib/hibernate-core-5.3.7.Final.jar!/org/hibernate/hibernate-mapping-3.0.dtd
<hibernate-mapping> <!--建立类与表的映射--> <class name="com.qf.entity.User" table="user"> <!--建立类中的属性与表中主键的对应--> <id name="id" column="id"> <!--主键生成策略--> <generator class="native"/> </id> <!--建立类中的普通属性和表中普通字段的对应--> <property name="name" column="name"/> <property name="password" column="password"/> </class> </hibernate-mapping>
class标签:建立类与表的映射关系
属性
name :类名
table :表名(如果表名和类名一致,可以省略不写)
catalog :数据库名
id标签:建立类中属性与表中主键的对应关系
属性
name :类中的属性名
column :表中的字段名(如果表中字段名和类中属性名一致,可以省略不写)
length :长度(hibernate可以根据类自动创建表,这里的length属性就是自动建表字段长度)
type :类型
property标签:建立类中属性与表中字段的对应关系
属性
name :类中的属性名
column :表中的字段名(如果表中字段名和类中属性名一致,可以省略不写)
length :长度(hibernate可以根据类自动创建表,这里的length属性就是自动建表字段长度)
type :类型
not-null :设置非空
unique :设置唯一
注:type属性
- 使用java中的类型 :type="java.lang.String"
- 使用hibernate中的类型 :type="string"
- 使用数据库中的类型 :
<id name="id" > <column name="id" sql-type="varchar"/> <!--主键生成策略--> <generator class="native"/> </id>
-
配置hibernate核心配置文件hibernate.cfg.xml
约束查找:lib/hibernate-core-5.3.7.Final.jar!/org/hibernate/hibernate-configuration-3.0.dtd
<hibernate-configuration> <session-factory> <!--必须配置--> <!--连接数据库的基本参数--> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!--配置hibernate的方言:hibernate用于生成相应数据库的sql语句--> <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">update</property> <!--告诉核心配置文件需要加载哪个orm映射配置文件--> <mapping resource="com/qf/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration>
- 必须的配置
- 驱动类
- URL
- 用户名
- 密码
- 方言
- 可选的配置
- 打印sql :hibernate.show_sql
- 格式化sql :hibernate.format_sql
- 自动建表 :hibernate.hbm2ddl.auto
- none :不使用hibernate自动建表
- create :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表
- create-drop :如果数据库中已经有表,删除原有表,执行操作,删除这个表。如果没有表,新建一个,使用完了删除该表
- update :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)
- validate :如果没有表,不会创建表。只会使用数据库中原有的表(校验映射和表结构)
- 引入映射文件
<mapping resource="com/qf/entity/User.hbm.xml"/>
- 必须的配置