实践Maven之Hibernate项目

首先介绍一下hibernate框架:

1.优秀的持久化(通俗讲把内存上的短时间运行信息存储在持久化硬盘上)框架。

2.作用于持久层,因为没什么侵入性,所以同样适用于其他层面上的存储

3.高度整合jdbc,简化了很多jdbc的操作。比如查询,比如存储

4.二级缓存。缓存一部分所查询的数据,方便随时调用,大大的减少了数据库查询。

5.ORM(Object/Rational Mapping)关系映射工具。对象关系映射把数据表的操作简化为对于对象的操作,让面向对象思维更加实际。

实现步骤:原文链接

1.在我们上期所创建好的Maven项目中添加以下依赖。

<!-- 添加Junit依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <!-- 添加mysql驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

        <!-- 添加hibernate依赖包 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.6.Final</version>
        </dependency>

2.对目录进行配置,在Project Structure - Module添加resources文件夹,并设置为Resources。

3.添加 Hibernate 配置文件

结果如下

4.配置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="connection.url"/>-->
    <!--<property name="connection.driver_class"/>-->
    <!-- <property name="connection.username"/> -->
    <!-- <property name="connection.password"/> -->

    <!-- DB schema will be updated if needed -->
    <!-- <property name="hbm2ddl.auto">update</property> -->
      <!--  mysql账户名  -->
      <property name="connection.username">root</property>

      <!--  mysql密码  -->
      <property name="connection.password">123456</property>

      <!--  mysql驱动  -->
      <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

      <!--  mysql连接URL  -->
      <property name="connection.url">jdbc:mysql:///HelloMaven?useUnicode=true&amp;characterEncoding=UTF-8</property>

      <!--  数据库方言  -->
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

      <!--  显示sql语句  -->
      <property name="show_sql">true</property>

      <!--  格式化sql语句  -->
      <property name="format_sql">true</property>

      <!--  根据需要创建数据库  -->
      <property name="hbm2ddl.auto">create</property>

      <mapping class="com.yada.Hibernate"></mapping>
      <!--<mapping resource="Hibernate.hbm.xml"></mapping>-->
  </session-factory>
</hibernate-configuration>

5.注意这里最后有两个

<mapping class="com.yada.Hibernate"></mapping> 
<mapping resource="Hibernate.hbm.xml"></mapping>

先说如果配置的是第一种,这种需要创建数据库。

6.生成映射类

7.生成映射类文件

package com.yada;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Hibernate {
    private int sit;
    private String name;
    private Double price;


    public Hibernate(int sit,String name,Double price){
        this.sit =sit;
        this.name = name;
        this.price =price;
    }

    public Hibernate() {
    }

    @Id
    @Column(name = "sit")
    public int getSit() {
        return sit;
    }

    public void setSit(int sit) {
        this.sit = sit;
    }

    @Basic
    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "price")
    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Hibernate hibernate = (Hibernate) o;

        if (sit != hibernate.sit) return false;
        if (name != null ? !name.equals(hibernate.name) : hibernate.name != null) return false;
        if (price != null ? !price.equals(hibernate.price) : hibernate.price != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = sit;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (price != null ? price.hashCode() : 0);
        return result;
    }
}

接下来用第五步所说的第二种

8.在Rerourser创建Hibernate.hbm.xml文件

<hibernate-mapping package="com.yada">
    <class name="HibernateTest" table="hibernate"><!--这里的table值对应数据库中的表名;如果没有table值,默认等于类名小写 -->
        <id name="sit" column="sit">
            <generator class="native"></generator><!--采用主键自增长方式-->
        </id>
        <property name="name" column="name"/><!-- 这里的column值对应数据库中的属性名;如果没有column值,默认等于属性名 -->
        <property name="price" column="price"/>
    </class>
</hibernate-mapping>
9.手动创建映射类文件
package com.yada;

public class HibernateTest {
    private int sit;
    private String name;
    private Double price;

    public  HibernateTest(int sit,String name,Double price){
        this.sit =sit;
        this.name =name;
        this.price = price;

    }

    public HibernateTest() {
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public int getSit() {
        return sit;
    }

    public void setSit(int sit) {
        this.sit = sit;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public Double getPrice() {
        return price;
    }
}
10.编写测试类
package com.yada;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class TestHiber {
    private SessionFactory sessionFactory;
    private Session session;
    private Transaction transaction;
    @Before
    public void init() {
        Configuration configuration = new Configuration().configure();//创建配置对象
        sessionFactory = configuration.buildSessionFactory();//创建会话工厂
        session = sessionFactory.openSession();//开启会话
        transaction = session.beginTransaction();//开启事务
    }

    @After
    public void destory() {
        transaction.commit();//事务提交
        session.close();//关闭会话
        sessionFactory.close();//关闭会话工厂
    }

    @Test
    public void testGoods() {
        //生成对象
//        Hibernate goods = new Hibernate(4, "4", 4.0);
        HibernateTest goods = new HibernateTest(5, "4", 4.0);
        //保存对象进数据库
        session.save(goods);
    }
}
11.完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值