hibernate的相关学习
1.hibernate是个orm框架。也就是对象关系型映射。拥有三种状态(瞬时态,持久态,游离态)
瞬时态就是刚创建的对象,和数据库没有对应的数据映射
持久态就是在session的管理范围之内
游离态就是与数据库有映射,但是不在session的管理之中
搭建hibernate
1.引入jar包如下图
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.Finalimport 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
2.引入对应的项目和数据库
3.点击确定之后运行这个文件
3.1选择项目的src文件如上图为/ajax/src
3.2写入包名 如上图com.seve.entity
3.3.选择目前的生成工具 reveng.xml
然后可以选择两个生成文件方式 此时是注解
第二种是实体和xml映射如下
选择合适的方式之后点击apply然后就实现了自动生成pojo类