hibernate入门级案例2018版

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Technology_liu/article/details/79490444

(1)首先创建lib文件夹并把架包导进去,并build path一下,相应架包如下图所示:
这里写图片描述
(2)创建实体类

package com.baidu.entity;

public class User {
    private int id;
    private String ename;
    private int age;
    private int sex;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getSex() {
        return sex;
    }
    public void setSex(int sex) {
        this.sex = sex;
    }   
}

(3)创建名称格式为“实体类名.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.配置类和表的对应关系
        name属性:类的全路径

        table属性:表的名称 -->

    <class name="com.baidu.entity.User" table="t_class">

        <!-- 2.配置实体类id和表中id一一对应关系

            name属性:实体类中的id

            column属性:表中的属性

         -->

         <id name="id" column="id">

            <!-- 设置数据库表的增长策略
                native属性:生成id值主键自动增长 -->
            <generator class="native"></generator>

         </id>

         <!--3.配置表的其他属性和字段对应

            name属性:实体类中的属性

            column属性:表中的属性

          -->

         <property name="ename" column="ename"></property>

        <property name="age" column="age"></property>

        <property name="sex" column="sex"></property>
    </class>



</hibernate-mapping>

(4)创建名称为“hibernate.cfg.xml”配置文件,并做相应配置,如下图所示:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>

    <session-factory>

        <!-- 1.配置数据库连接 -->

        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/project</property>

        <property name="hibernate.connection.username">root</property>

        <property name="hibernate.connection.password">12345678</property>

        <!-- 配置hindernate信息 -->
        <!-- 输出底层sql语句 -->
        <property name="hibernate.show_sql">true</property>

        <!-- hindernate帮助创建表 配置之后 

            update:更新:如果有就忽略,没有就创建

        -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- 配置数据库的方言
        在mysql中实现分页 关键字limit 只能使用mysql里面 
        oracle数据库中,实现rownum
        让hidernate框架识别数据库的
        只要做分页就需要做这个信息 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>


        <!-- 3.引入映射文件,因为hidernate框架只识别核心文件,不识别映射文件 -->

        <mapping resource="com/baidu/entity/user.hbm.xml"/>

    </session-factory>




</hibernate-configuration>


(5)创建单元测试代码,并对其进行单元测试,如下图所示:

package com.baidu.hidernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.jupiter.api.Test;

import com.baidu.entity.User;

public class hidernateDemo {
    @Test
    public void testAdd()
    {
//      1.加载hidernate核心配置文件
//      到src下面找到名称是核心配置文件
//      在hidernate里面封装对象
        Configuration cfg=new Configuration();

        cfg.configure();

//      2.创建SessionFactory对象

//      读取hidernate框架核心内容,创建

        SessionFactory sessionFactory=cfg.buildSessionFactory();

//      3.使用SessionFactory创建Session

        Session session=sessionFactory.openSession();

//      4.开启事务

        Transaction tran=session.beginTransaction();


//      ‘实现crud操作

        User user=new User();

        user.setId(1);

        user.setEname("小王");

        user.setAge(85);

        user.setSex(0);


//      调用Session执行添加

        session.save(user);


//      6.关闭事务

        tran.commit();


//      7.关闭资源

        session.close();
        sessionFactory.close();


    }
}

具体包名配置如下:
这里写图片描述

阅读更多

没有更多推荐了,返回首页