hibernate的相关学习

1.hibernate是个orm框架。也就是对象关系型映射。拥有三种状态(瞬时态,持久态,游离态)

瞬时态就是刚创建的对象,和数据库没有对应的数据映射

持久态就是在session的管理范围之内

游离态就是与数据库有映射,但是不在session的管理之中

搭建hibernate

1.引入jar包如下图

hibernate的相关学习

2.创建hibernate.cfg.xml文件。设置相关配置如下

<?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.password">root</property>                   数据库密码
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>    数据库链接
        <property name="hibernate.connection.username">root</property>                ----数据库账号
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>    ---设置数据库方言
        <property name="hibernate.current_session_context_class">thread</property>    ----设置多线程

 

        //注解方式配置
        <mapping class="com.seve.entity.Areainfo" />   ----配置对应的实体数据

      //xml文件方式配置
       <mapping rescorce="com/seve/entity/Areainfo.xml">   -----配置对应的实体xml文件


    </session-factory>
</hibernate-configuration>

3.设置对应的实体(可以使用hibernate.reveng.xml进行生成,也可手写)

package com.seve.entity;
// Generated by Hibernate Tools 4.3.5.Final

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Areainfo generated by hbm2java
 */
@Entity
@Table(name = "areainfo", catalog = "test")
public class Areainfo implements java.io.Serializable
{

    private Integer aid;
    private String aname;
    private String aremark;
    private Set<Companyinfo> companyinfos = new HashSet<Companyinfo>(0);

    public Areainfo()
    {
    }

    public Areainfo(String aname, String aremark, Set<Companyinfo> companyinfos)
    {
        this.aname = aname;
        this.aremark = aremark;
        this.companyinfos = companyinfos;
    }

    @Id
    @GeneratedValue(strategy = IDENTITY)

    @Column(name = "aid", unique = true, nullable = false)
    public Integer getAid()
    {
        return this.aid;
    }

    public void setAid(Integer aid)
    {
        this.aid = aid;
    }

    @Column(name = "aname", length = 50)
    public String getAname()
    {
        return this.aname;
    }

    public void setAname(String aname)
    {
        this.aname = aname;
    }

    @Column(name = "aremark", length = 100)
    public String getAremark()
    {
        return this.aremark;
    }

    public void setAremark(String aremark)
    {
        this.aremark = aremark;
    }

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "areainfo")
    public Set<Companyinfo> getCompanyinfos()
    {
        return this.companyinfos;
    }

    public void setCompanyinfos(Set<Companyinfo> companyinfos)
    {
        this.companyinfos = companyinfos;
    }

}
 

 

如若想要一键生成就需要根据如下步骤

1.创建hibernate.reveng.xml

hibernate的相关学习

2.引入对应的项目和数据库

hibernate的相关学习

3.点击确定之后运行这个文件

hibernate的相关学习

3.1选择项目的src文件如上图为/ajax/src

3.2写入包名 如上图com.seve.entity

3.3.选择目前的生成工具  reveng.xml

然后可以选择两个生成文件方式  此时是注解

hibernate的相关学习

第二种是实体和xml映射如下

hibernate的相关学习

选择合适的方式之后点击apply然后就实现了自动生成pojo类