Java 框架之Hibernate (二、Hibernate简单的增删改及关系的简单分析)
来源:互联网 发布:星宫社 知我麻社 编辑:程序博客网 时间:2024/06/05 18:55
在上一篇博客中,我简单的介绍了一下如何搭建Hibernate框架,那么这篇博客就简单的介绍一下,使用Hibernate进行简单的增删改,查询我会在下一篇博客中去分析,这篇博客还会简单的分析一下Hibernate的关系(一对一,一对多,多对多)
好了,废话不多说,先简单的回顾一下
这就是我们在上篇博客中说到的。那么我们现在已经搭建好了框架,现在我们来进行测试,也就是简单的增删改
这里,第四步就是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; }}
我们可以看到,在实体类中都有一个对象属性,这就把两者结合了,接下里就是映射文件
<?xml versi"1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibern.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-8-22 14:32:20 by Hibernate Tools 3.5.0.Final --><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>
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-8-22 14:32:20 by Hibernate Tools 3.5.0.Final --><hibernate-mapping> <class name="com.zking.entity.Card" table="CARD"> <id name="uid" type="int"> <column name="UID" /> <generator class="foreign"> <param name="property">user</param> </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 (二、Hibernate简单的增删改及关系的简单分析)
- hibernate的环境搭建及简单的增删改查
- Hibernate七部曲(二)简单的增删改查
- Hibernate 简单的增删改查 示例
- Hibernate的简单增删改查例子
- Hibernate实现简单的增删改查
- Hibernate 简单 的 增删改查 实例
- 力所能及之hibernate简单的增删查改
- 【Hibernate】Hibernate入门2-简单的增删改查源码
- Java-Hibernate简单增删改查
- Java 框架之Hibernate (三、Hibernate一对多及多对多的关系分析)
- Hibernate简单增删改查
- Hibernate简单增删改查
- hibernate——简单的增删改查
- Hibernate第二课 单表的简单增删改查
- Hibernate基本配置以及简单的增删改差功能
- 使用Hibernate实现简单的数据库增删改查。
- 初学Hibernate,简单实现单表的增删查改
- PHP 装饰器模式
- 周志华《机器学习》笔记:第5章 神经网络
- Watering Grass UVA
- GIT常用命令
- 使用for update卡住锁表的解决办法(转)
- Java 框架之Hibernate (二、Hibernate简单的增删改及关系的简单分析)
- Xlist
- Android Service完全解析,关于服务你所需知道的一切(下)
- CSRF安全攻击原理,以及防御措施
- 通过FileInputStream读取build.prop中的键值对
- php 缩略图函数
- kettle数据库连接错误
- 【Python】numpy学习总结1
- 弗洛伊迪算法(本人修改过后的)