Hibernate学习(一)

Hibernate框架的概述

Hibernate框架的概述
*hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
*Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
*Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架。

ORM

 ORM映射:Object Relational Mapping
 * O:面向对象领域的Object(JavaBean对象)
 * R:关系数据库领域的Relational(表的结构)
 * M:映射Mapping(XML的配置文件)

Hibernate框架的快速入门

第一步 创建maven工程

添加maven依赖

    <dependencies>
        <!--hibernate依赖-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.14.Final</version>
        </dependency>
        <!--数据库连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>
        <!--log4j日志-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.6.4</version>
        </dependency>
        <!--单元测试-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>RELEASE</version>
        </dependency>

    </dependencies>

第二步 创建表结构

建表语句如下

Create database hibernate_learn;
    Use hibernate_learn;
    CREATE TABLE `cst_customer` (
      `cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
      `cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
      `cust_user_id` bigint(32) DEFAULT NULL COMMENT '负责人id',
      `cust_create_id` bigint(32) DEFAULT NULL COMMENT '创建人id',
      `cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
      `cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属行业',
      `cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
      `cust_linkman` varchar(64) DEFAULT NULL COMMENT '联系人',
      `cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
      `cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
      PRIMARY KEY (`cust_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8;

第三步 创建Javabean

创建Customer类

public class Customer {
    /*使用包装类,默认值是NULL*/
    private Long cust_id;
    private String cust_name;
    private Long cust_user_id;
    private Long cust_create_id;
    private String cust_source;
    private String cust_industry;
    private String cust_level;
    private String cust_linkman;
    private String cust_phone;
    private String cust_mobile;
    /*省略get和set方法*/
}

第四步创建表结构的映射

创建Customer.hbm.xml

    <hibernate-mapping>
        <class name="com.itheima.domain.Customer" table="cst_customer">
            <id name="cust_id" column="cust_id">
                <generator class="native"/>
            </id>
            <property name="cust_name" column="cust_name"/>
            <property name="cust_user_id" column="cust_user_id"/>
            <property name="cust_create_id" column="cust_create_id"/>
            <property name="cust_source" column="cust_source"/>
            <property name="cust_industry" column="cust_industry"/>
            <property name="cust_level" column="cust_level"/>
            <property name="cust_linkman" column="cust_linkman"/>
            <property name="cust_phone" column="cust_phone"/>
            <property name="cust_mobile" column="cust_mobile"/>
        </class>
    </hibernate-mapping>

第五步 编写Hibernate核心配置文件

编写hibernate.cfg.xml的配置文件

<hibernate-configuration>
    <session-factory>
        <!--必须配置的参数5个 4大参数和方言-->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate_learn</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        <!--数据库方言-->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>
        <!--可选参数-->
        <!--显示sql语句-->
        <property name="hibernate.show_sql">true</property>
        <!--格式化SQL语句-->
        <property name="hibernate.format_sql">true</property>
        <!--自动创建表
        create 每次都创建新表
        update 如果没有表创建表
        create-drop 每次都创建表然后删除表
        validate 校验 生厂环境使用
        -->
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="mapper/Customer.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

第六步 编写测试代码

测试代码如下

    @Test
    public void testSave(){
        // 先加载配置文件
        Configuration config = new Configuration();
        // 默认加载src目录下的配置文件
        config.configure();
        // 创建SessionFactory对象
        SessionFactory factory = config.buildSessionFactory();
        // 创建session对象
        Session session = factory.openSession();
        // 开启事务
        Transaction tr = session.beginTransaction();
        // 编写保存代码
        Customer c = new Customer();
        // c.setCust_id(cust_id);   已经自动递增
        c.setCust_name("测试");
        c.setCust_mobile("110");
        // 保存客户
        session.save(c);
        // 提交事务
        tr.commit();
        // 释放资源
        session.close();
        factory.close();
    }

查看数据库,如果有数据,说明搭建成功了

猜你喜欢

转载自blog.csdn.net/qq_36594966/article/details/81056259
今日推荐