您现在的位置:首页 >> 前端 >> 内容

Hibernate初级入门

时间:2017/4/11 10:24:00 点击:

  核心提示: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{

}

}

}

 

Tags:HI IB BE ER 
作者:网络 来源:不详
  • 上一篇:css页面样式设置
  • 下一篇:CSS_文本样式