hibernate搭建入門idea版(配置文件方式)

hibernate搭建入門idea版(配置文件方式)

這裏使用的是maven方式搭建

一、搭建項目準備
選擇默認maven骨架,直接next,創建好項目
在這裏插入圖片描述
然後Add添加Hibernate核心配置文件
在這裏插入圖片描述
添加配置文件
在這裏插入圖片描述
然後按照如下建包和文件:
在這裏插入圖片描述
二、配置環境依賴

  1. pom加上jar依賴座標
		<!--hibernate jar-->
		<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.1.2.Final</version>
        </dependency>
        <!--mysql驅動jar-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>

2、User.hbm.xml配置

<?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="cn.hb.entity.User" table="t_user">
        <!--2、配置實體類id和表id對應
            hibernate要求實體類有一個屬性唯一值
            hibernate要求表有字段作爲唯一值
        -->
        <!--id標籤
                name屬性:實體類裏面的id屬性名稱
                column屬性:生成的表字段名稱
        -->
        <id name="id" column="id">
            <!--設置數據庫表id增長策略
                native:生成表id值就是主鍵自動增長-->
            <generator class="native"/>
        </id>
        <!--配置其他屬性和表字段對應
                name屬性:實體類裏面的id屬性名稱
                column屬性:生成的表字段名稱
                length屬性:字段長度
                -->
        <property name="username" column="username" length="32"/>
        <property name="password" column="password" length="32"/>
        <property name="address" column="address" length="32"/>
    </class>
</hibernate-mapping>

3、hibernate.cfg.xml 配置

<?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>
      <!--第一部分:配置數據庫信息-->
      <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
      <property name="hibernate.connection.url">jdbc:mysql://主機ip地址:3306/db</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.connection.password">root</property>

      <!--第二部分:配置hibernate信息   可選的-->

      <!--輸出底層sql語句-->
      <property name="hibernate.show_sql">true</property>
      <!--輸出底層sql語句格式-->
      <property name="hibernate.format_sql">true</property>
      <!--hibernate自動創建表,需要配置之後
        update:如果已經有表,更新,如果沒有,創建
      -->
      <property name="hibernate.hbm2ddl.auto">update</property>
      <!--配置數據庫方言
        mysql中實現分頁,用limit的關鍵字  -只能mysql中使用
        oracle中實現分頁,用rownum關鍵字
        讓hibernate框架識別不同數據庫自己特有的語句(方言)
      -->
      <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

        <!--第三部分:把映射文件放到核心配置文件中 必須的-->
      <mapping resource="User.hbm.xml"/>

  </session-factory>
</hibernate-configuration>

三、測試

public class test_hibernate {
 public static void main(String[] args) {
   //加載配置
  Configuration configuration = new Configuration();
  configuration.configure();
  //創建SessionFactory工廠對象
  SessionFactory sessionFactory = configuration.buildSessionFactory();
  //創建Session對象
  Session session = sessionFactory.openSession();
  //開啓事物
  Transaction tx = session.beginTransaction();
  //執行操作crud
  User user = new User();
  user.setUsername("張三");
  user.setPassword("123456");
  user.setAddress("中國");
  session.save(user);
  //提交事物
  tx.commit();
  //釋放資源
  session.close();
  sessionFactory.close();
 }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章