一、hibernate环境搭建

hibernate环境搭建

  1. 下载hibernate

    hibernate的jar

    连接数据库的jar

  2. 解压hibernate,解压后目录结构

    documentation :对应hibernate开发文档

    lib :对应hibernate开发所依赖的jar包

    optional :对应hibernate开发可选的jar包

    required :对应hibernate开发必须的jar包

    project :对应hibernate的项目

  3. 创建表

    create table user(
        id int primary key unique auto_increment,
        name varchar(20),
        password varchar(20)
    );
    
  4. 创建表对应实体类

    扫描二维码关注公众号,回复: 4566157 查看本文章
    public class User {
        private int id;
        private String name;
        private String password;
        ......
    }
    
  5. 创建对象关系映射

    一般命名:实体类名.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> 
      
  6. 配置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>
    
    1. 必须的配置
      • 驱动类
      • URL
      • 用户名
      • 密码
      • 方言
    2. 可选的配置
      • 打印sql :hibernate.show_sql 
      • 格式化sql :hibernate.format_sql 
      • 自动建表 :hibernate.hbm2ddl.auto 
        • none :不使用hibernate自动建表
        • create :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表
        • create-drop :如果数据库中已经有表,删除原有表,执行操作,删除这个表。如果没有表,新建一个,使用完了删除该表
        • update :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)
        • validate :如果没有表,不会创建表。只会使用数据库中原有的表(校验映射和表结构)
    3. 引入映射文件
      • <mapping resource="com/qf/entity/User.hbm.xml"/>

猜你喜欢

转载自www.cnblogs.com/qf123/p/10143689.html