Hibernate入门和环境搭建
in 学习笔记 with 0 comment

Hibernate入门和环境搭建

in 学习笔记 with 0 comment

搭建hibernate环境

导入jar包

  1. 导入hibernate的jar包
  2. hibernate/lib中的required jar包
  3. hibernate日志jar包
  4. mysql的驱动jar包

创建实体类 ecfa048ee1963bbbe7829dabd5002836.png

(1)使用hibernate时候,不需要手动创建表,hibernate会自动帮助创建。

创建映射配置文件

使用配置文件来实现映射关系

  1. 创建xml格式的配置文件
  2. 名称和位置没有固定要求,但是一般在实体类的包里面创建,实体类名称.hbm.xml
  3. 配置文件是xml格式的,在配置文件中首先引入xml约束。 dtd,schema, 目前在hibernate中引入dtd约束。
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <!-- 1.配置类和表对应
        class标签
        name属性,实体类的全路径
        table属性,数据表名称
     -->
    <class name="com.jasmine.entity.User" table="t_user">
        <!-- 配置实体类id和表id对应
            类的id和表的id对应
        -->
        <id name="id" column="id">
            <!-- 设置id增长策略
            native:生成id值就是主键自动增长-->
            <generator class="native"></generator>
        </id>
        <property name="name" column="name"></property>
        <property name="password" column="password"></property>
        <property name="address" column="address"></property>
    </class>
</hibernate-mapping>

创建核心映射文件

(1) 核心配置文件格式xml,但是文件名称和位置固定
位置必须在src下面
名称必须为hibernate.cfg.xml
(2) 引入dtd约束
(3)hibernate在操作的过程中只会加载核心文件,其他配置文件不会加载。

配置的信息


<?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.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>

        <!--配置hibernate信息,可选的-->
        <property name="hibernate.show_sql">true</property>

        <property name="hibernate.format_sql">true</property>

        <!--hibernate可以帮助我们创建表格,但是需要配置之后-->
        <property name="hibernate.hbm2ddl.auto">update</property>
        <!--update,如果有的话,更新,没有,创建-->


        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!--数据库配置方言,比如分页limit,只能使用在mysql中。但是在oracle中使用的是rownum。这个配置让-->
       <!--hibernate识别不同数据库特有的语句 -->



        <!--配置映射表信息,必须的-->
        <mapping resource="com/jasmine/entity/User.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>

实现增加操作

  1. 是否生成表
  2. 是否有记录

这这里遇到的问题

提示方言错误:!

26652861bd0f50b0a1c243ad3925e191.png

 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
 
 需要注意的是,中间5dialect。而不是直接的mysqlDialect。
 

关于jaxb错误。

由于jdk9当中引入了模块,而jaxb这个jar包并不包含于JavaSE中,所以当创建JavaSE项目使用jdk9时,会找不到相关的jar包。
可以选择降至8/7
或者手动导入相关的jar包。
具体要导入哪一个,请看另一篇博客。

Responses