Java 框架之Hibernate (二、Hibernate简单的增删改及关系的简单分析)

在上一篇博客中,我简单的介绍了一下如何搭建Hibernate框架,那么这篇博客就简单的介绍一下,使用Hibernate进行简单的增删改,查询我会在下一篇博客中去分析,这篇博客还会简单的分析一下Hibernate的关系(一对一,一对多,多对多)

好了,废话不多说,先简单的回顾一下
Java 框架之Hibernate (二、Hibernate简单的增删改及关系的简单分析)_第1张图片

这就是我们在上篇博客中说到的。那么我们现在已经搭建好了框架,现在我们来进行测试,也就是简单的增删改
Java 框架之Hibernate (二、Hibernate简单的增删改及关系的简单分析)_第2张图片
这里,第四步就是Hibernate执行数据库的操作,但其他步骤必须要,而且,顺序不可以乱,所以,我们可以将他封装起来,像这样

package com.zking.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    private static  SessionFactory sessionFactory; 
    private static  Session session; 
    private static  Transaction transaction;

    public static Session getSession(){

        Configuration configuration=new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
        session = sessionFactory.openSession();
        transaction = session.beginTransaction();

        return session;

    }

    public static void ConnClose(){

        transaction.commit();
        session.close();
        sessionFactory.close();
    }

}

那么现在来介绍一下如何操控数据库,因为Hibernate是一个全封装的框架,所以,对数据库进行操纵极其简单,增删改就是三个方法:
session.save();//增加
session.update();//修改
session.delete();//删除

这三个方法都需要一个参数,放对象就好比如,你需要添加一行数据
你可以new一个对象然后执行上面的操作
第四步改成session.save(对象名)即可,其他操作以此类推

我们现在来分析一下Hibernate的关系
主要有一对一,一对多,多对多,我们一个一个来
一对一:
我们举一个例子 :
每个人对应有一个唯一的身份证号。这就是一对一。那么怎么具体的体现在我们Hibernate中呢??

首先是数据库的设计,我们设计两张表 user 和 card 都有两个字段 uid,uname和uid,cnum

id记得都设主键自动增长。这就是数据的设计了,在这里,并没有体现他们的关系。。他们的关系主要在实体类以及映射文件中体现

那么接下来就是实体类的设计

package com.zking.entity;

public class User {
    private int uid;
    private String uname;
    private Card card;

    public Card getCard() {
        return card;
    }
    public void setCard(Card card) {
        this.card = card;
    }
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    public User(String uname) {
        super();
        this.uname = uname;
    }
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getUname() {
        return uname;
    }
    public void setUname(String uname) {
        this.uname = uname;
    }
}
package com.zking.entity;

public class Card {
    private int uid;
    private String cnum;
    private User user;

    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public Card() {
        super();
    }
    public Card(String cnum) {
        super();
        this.cnum = cnum;
    }
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getCnum() {
        return cnum;
    }
    public void setCnum(String cnum) {
        this.cnum = cnum;
    }
}

我们可以看到,在实体类中都有一个对象属性,这就把两者结合了,接下里就是映射文件




<hibernate-mapping>
    <class name="com.zking.entity.User" table="USER">
        <id name="uid" type="int">
            <column name="UID" />
            <generator class="native" />
        id>
        <property name="uname" type="java.lang.String">
            <column name="UNAME" />
        property>
        <one-to-one name="card" class="com.zking.entity.Card" cascade="all-delete-orphan">one-to-one>
    class>
hibernate-mapping>



<hibernate-mapping>
    <class name="com.zking.entity.Card" table="CARD">
        <id name="uid" type="int">
            <column name="UID" />
            <generator class="foreign">
                <param name="property">userparam>
            generator>
        id>
        <property name="cnum" type="java.lang.String">
            <column name="CNUM" />
        property>
        <one-to-one name="user" class="com.zking.entity.User">one-to-one>
    class>
hibernate-mapping>

那么现在,我们的一对一的关系就已经建立好了。这只是简单的建立关系,如需要使用可以参考别的教程,今天就讲到这里,下篇博客就讲其他两种关系

你可能感兴趣的:(JAVA,hibernate,java,框架)