hibernate简单配置

1.先介绍下hebernate

        Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架

2.核心配置文件

<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/person</property>
        <!--hibernate特有的方言,用于指定数据库-->
        <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">update</property>
        <!--指定映射文件,resource是相对路径,还有file绝对路径-->
        <mapping resource="Person.hbm.xml"></mapping>
    </session-factory>
</hibernate-configuration>

方言:根据不同的方言选择不同,

表的创建方式

3.分三方面建立关系

R ->关系表

首先准备一个表,在这使用的是mysql,大概是这么个表

         create table person(

               id int ,

               name varchar(50)

       )

O ->

**
 * O 实体类
 * 不能重写equals和hashcode方法
 * 类不能是final修饰(hibernate内部是使用动态代理)
 */
public class Person {

    private Integer id;
    private String name;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Person() {
    }
    public Person(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

M ->

<?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 package="com.self.entity">
    <!--指向映射的表-->
    <class name="Person" table="person">
        <!--设置主键,将实体类属性和关系表字段映射-->
        <id name="id" column="id">
            <!--主键生成策略-->
            <generator class="native"></generator>
        </id>
        <!--一样列可省略-->
        <property name="name"></property>

    </class>
</hibernate-mapping>

主键的生成策略

使用序列时注意:

    

以上就是一个简单的案例,增删改查写在一起了,直接执行可能有些问题,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值