Hibernate------基础配置

1.首先创建数据库:(用户名 :root,密码:123456)

create database test;

2.创建表product_,有3个字段:

use test;
create table product_(
    id int(11) not null auto_increment,
    name varchar(30),
    price float,
    PRIMARY KEY(id)
)DEFAULT CHARSET=UTF8;

3.准备一个java project.导入hibernate所依赖的jar包。

4.创建实体类Produc,用于映射数据库中的表product_

package com.fubin.pojo;

public class Product {
    int id;
    String name;
    float price;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public float getPrice() {
        return price;
    }

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

5.在与实体类同包下新建一个配置文件Product.hbm.xml,用于映射Product类对应数据库中的product_表。

<?xml version="1.0" ?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.fubin.pojo">
    <!--类名与实体类名要完全相同-->
    <class name="Product" table="product_">
        <!--属性id的自增长的方式采用数据库的本地方式-->
        <id name="id" column="id">
            <generator class="native"></generator>
        </id>
        <!--只写属性name没有通过column显式指定,那么字段的名字也是name-->
        <property name="name"/>
        <property name="price"/>
    </class>
</hibernate-mapping>

6.在src目录下创建hibernate.cfg.xml配置范文数据库要用到的驱动,url,账号密码等等。

<?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="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>

        <!--表示使用mysql方言,开发者不需要知道底层使用什么数据库,只需要告诉hibernate底层用的是什么数据库,它才知道该用什么样的方言去对话-->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!--Hibernate事务管理方式,即每个线程一个事务-->
        <property name="current_session_context_class">thread</property>
        <!--是否在控制台显示执行的sql语句-->
        <property name="show_sql">true</property>
        <!--是否会自动更新数据库的表结构,可自动创建表结构-->
        <property name="hbm2ddl.auto">update</property>

        <!--Hibernate会去识别Product这个实体类-->
        <mapping resource="com/fubin/pojo/Product.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

7.测试类:创建一个Product对象,并通过hibernate把这个对象插入到数据库中

hibernate的基本步骤:

  • 获取SessionFactory
  • 通过SessionFactory获取一个Session
  • 在Session基础上开启一个事务
  • 通过调用Session的save方法把对象保存到数据库
  • 提交事务
  • 关闭Session
  • 关闭SessionFactory
package com.fubin.test;

import com.fubin.pojo.Product;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class TestHibernate {
    public static void main(String[] args){
        SessionFactory factory = new Configuration().configure().buildSessionFactory();
        Session s = factory.openSession();
        s.beginTransaction();
        Product p = new Product();
        p.setName("iphoneX");
        p.setPrice(10000);
        s.save(p);
        s.getTransaction().commit();
        s.close();
        factory.close();
    }
}

通过Hibernate(批量)插入数据到数据库:

for(int i = 0 ; i < 10; i++){
    Product p = new Product();
    p.setName("iphone"+i);
    p.setPrice(i);
    s.save(p);
}

通过ID获取一个对象:

Product p = (Product) s.get(Product.class,6);
System.out.print("id = 6产品名称:"+ p.getName());

删除一条数据:

Product p = (Product) s.get(Product.class,5);
s.delete(p);

修改一条数据:

Product p = (Product)s.get(Product.class,6);
p.setName("modified");
s.update(p);
发布了25 篇原创文章 · 获赞 1 · 访问量 7526

猜你喜欢

转载自blog.csdn.net/qq_28334237/article/details/83867193