核心提示:Hibernate初级入门:一、Hibernate扮演的是什么角色。Hibernate在javaee中的三层结构中扮演的是DAO层框架使用Hibernate框架简化了JDBC复杂的代码,是一种开源的轻...
       Hibernate初级入门:一、Hibernate扮演的是什么角色。
Hibernate在javaee中的三层结构中扮演的是DAO层框架
使用Hibernate框架简化了JDBC复杂的代码,是一种开源的轻量级的框架
二、如何搭建Hibernate的环境
1.导入包:
记得build path
三、ORM
Object Reational Mapping----对象关系模型
在web阶段学习的javabean,现在叫实体类;
一个实体类对应数据库中一个表,,实体类中的属性对应数据库表字段
比如:
private String userName;<--------------->t_userName(这个我们要通过映射文件来创建)
四、如何写一个实体类的映射文件:
项目结构:
Customer:客户 LinkMan:联系人
场景:一个客户对应多个联系,一个联系人对应一个客户
package cn.cq.enty;
import java.util.HashSet;
import java.util.Set;
public class Customer {
//客户id
private Integer cid;
//客户名称
private String custName;
//客户级别
private String custLevel;
//客户来源
private String custSource;
//联系电话
private String custPhone;
//手机
private String custMobile;
//客户实体类中表示对个联系人
private Set setLinkMan = new HashSet();
public Set getSetLinkMan() {
return setLinkMan;
}
public void setSetLinkMan(Set setLinkMan) {
this.setLinkMan = setLinkMan;
}
public Customer() {
super();
}
public Customer(Integer cid, String custName, String custLevel,
String custSource, String custPhone, String custMobile) {
super();
this.cid = cid;
this.custName = custName;
this.custLevel = custLevel;
this.custSource = custSource;
this.custPhone = custPhone;
this.custMobile = custMobile;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public String getCustLevel() {
return custLevel;
}
public void setCustLevel(String custLevel) {
this.custLevel = custLevel;
}
public String getCustSource() {
return custSource;
}
public void setCustSource(String custSource) {
this.custSource = custSource;
}
public String getCustPhone() {
return custPhone;
}
public void setCustPhone(String custPhone) {
this.custPhone = custPhone;
}
public String getCustMobile() {
return custMobile;
}
public void setCustMobile(String custMobile) {
this.custMobile = custMobile;
}
}
package cn.cq.enty;
public class LinkMan {
private Integer lkm_id; // 联系人编号(主键)
private String lkm_name;// 联系人姓名
private String lkm_gender;// 联系人性别
private String lkm_phone;// 联系人办公电话
//表示一个联系人对应一个客户
private Customer customer;
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public LinkMan() {
super();
}
public LinkMan(Integer lkm_id, String lkm_name, String lkm_gender,
String lkm_phone) {
super();
this.lkm_id = lkm_id;
this.lkm_name = lkm_name;
this.lkm_gender = lkm_gender;
this.lkm_phone = lkm_phone;
}
public Integer getLkm_id() {
return lkm_id;
}
public void setLkm_id(Integer lkm_id) {
this.lkm_id = lkm_id;
}
public String getLkm_name() {
return lkm_name;
}
public void setLkm_name(String lkm_name) {
this.lkm_name = lkm_name;
}
public String getLkm_gender() {
return lkm_gender;
}
public void setLkm_gender(String lkm_gender) {
this.lkm_gender = lkm_gender;
}
public String getLkm_phone() {
return lkm_phone;
}
public void setLkm_phone(String lkm_phone) {
this.lkm_phone = lkm_phone;
}
}
Customer.hbm.xml(放在同一个包下)
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"https://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
LinkMan.hbm.xml:
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"https://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
五。创建核心配置文件:
要求:放到src目录下
名称必须写成:hibernate.cfg.xml
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"https://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
com.mysql.jdbc.Driver
jdbc:mysql:///hibernate03
root
bdqn
org.hibernate.dialect.MySQLDialect
true
true
update
thread
六:HibernateUtils:
package cn.cq.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static Configuration cfg = null;
private static SessionFactory sessionFactory = null;
static {
cfg = new Configuration().configure();
sessionFactory = cfg.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
public static Session getSession(){
return sessionFactory.getCurrentSession();
}
}
七,实现CURD操作:
package cn.cq.test;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import cn.itcast.enty.Customer;
import cn.itcast.enty.LinkMan;
public class HibernateOneToMang {
@Test
public void add(){
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
Customer cus = new Customer();
cus.setCustName("baidu");
cus.setCustLevel("vip");
cus.setCustSource("network");
cus.setCustPhone("111");
cus.setCustMobile("999");
LinkMan linkMan = new LinkMan();
linkMan.setLkm_name("kevin");
linkMan.setLkm_gender("nan");
linkMan.setLkm_phone("3333");
cus.getSetLinkMan().add(linkMan);
session.save(cus);
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
}
}
@Test
public void delete(){
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
Customer cus = session.get(Customer.class, 1);
session.delete(cus);
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
}
}
@Test
public void update(){
Session session = null;
Transaction tx = null;
try {
session = HibernateUtils.getSession();
tx = session.beginTransaction();
Customer qq = session.get(Customer.class,3);
LinkMan cidy = session.get(LinkMan.class, 3);
qq.getSetLinkMan().add(cidy);
cidy.setCustomer(qq);
tx.commit();
} catch (Exception e) {
tx.rollback();
}finally{
}
}
}



 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                