当前位置: 首页 > news >正文

郑州高端建站广点通投放平台

郑州高端建站,广点通投放平台,wordpress plugins.php,苏州网站建设姜超myeclipse试用小记----Hibernate多对一双向关联#xff08;2#xff09;在上篇文章“myeclipse试用小记----Hibernate多对一单向关联#xff08;1#xff09;”中#xff0c;讲到了“Hibernate多对一单向关联”#xff0c;现在我打算把这个做成双向的#xff0c;也就是多…myeclipse试用小记----Hibernate多对一双向关联2 在上篇文章“myeclipse试用小记----Hibernate多对一单向关联1”中讲到了“Hibernate多对一单向关联”现在我打算把这个做成双向的也就是多对一双向关联看看myeclipse是如何实现的。 环境、数据库还和上篇文章的一样。只是表中的数据清空了。 注意对于有外键的表清空数据有两种方法第一是先drop掉外键约束后进行清除。第二种是先清除从表数据orders然后清除主表的数据customers具体我及不说了有空我在写写数据库外键约束的方面的文章这点也很重要的。 步骤 1、清除orders、customers两表数据。 2、用myeclipse新建web工程sx_d2y加入hibernate支持。 3、同时选中orders、customers生成实体Bean和mapping文件并对mapping做小的改动。 4、写两个测试类分别保存Orders对象和Customers的实体对象看看能否保存到数据库中。 废话不说了看过程吧 一、通过myeclipse生成实体和配置文件 Customers.java --------------------- public class Customers implements java.io.Serializable { // Fields private Long id; private String name; private Set orderses new HashSet(0); // Constructors /** default constructor */ public Customers() { } /** full constructor */ public Customers(String name, Set orderses) { this.name name; this.orderses orderses; } // Property accessors public Long getId() { return this.id; } public void setId(Long id) { this.id id; } public String getName() { return this.name; } public void setName(String name) { this.name name; } public Set getOrderses() { return this.orderses; } public void setOrderses(Set orderses) { this.orderses orderses; } } Orders.java --------------------- public class Orders implements java.io.Serializable { // Fields private Long id; private Customers customers; private String orderNumber; // Constructors /** default constructor */ public Orders() { } /** minimal constructor */ public Orders(Customers customers) { this.customers customers; } /** full constructor */ public Orders(Customers customers, String orderNumber) { this.customers customers; this.orderNumber orderNumber; } // Property accessors public Long getId() { return this.id; } public void setId(Long id) { this.id id; } public Customers getCustomers() { return this.customers; } public void setCustomers(Customers customers) { this.customers customers; } public String getOrderNumber() { return this.orderNumber; } public void setOrderNumber(String orderNumber) { this.orderNumber orderNumber; } } Customers.hbm.xml ------------------- ?xml version1.0 encodingutf-8? !DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//EN [url]http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd[/url] !-- Mapping file autogenerated by MyEclipse Persistence Tools -- hibernate-mapping class nameorg.lavasoft.Customers tablecustomers id nameid typejava.lang.Long column nameID / generator classincrement / /id property namename typejava.lang.String column nameNAME length15 / /property         set nameorderses inversetrue cascadeall-delete-orphan             key                 column nameCUSTOMER_ID not-nulltrue /             /key             one-to-many classorg.lavasoft.Orders /         /set /class /hibernate-mapping Orders.hbm.xml ------------------- ?xml version1.0 encodingutf-8? !DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//EN [url]http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd[/url] !-- Mapping file autogenerated by MyEclipse Persistence Tools -- hibernate-mapping class nameorg.lavasoft.Orders tableorders catalogtestdb id nameid typejava.lang.Long column nameID / generator classincrement / /id         many-to-one namecustomers classorg.lavasoft.Customers fetchselect cascadesave-update             column nameCUSTOMER_ID not-nulltrue /         /many-to-one property nameorderNumber typejava.lang.String column nameORDER_NUMBER length15 / /property /class /hibernate-mapping 二、写测试类进行测试 在测试之前先清空这两个关联表的数据。 D:\mysql-5.0.37-win32\binmysql -uroot -pleizhimin Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 32 Server version: 5.0.37-community MySQL Community Edition (GPL) Type help; or \h for help. Type \c to clear the buffer. mysql use testdb; Database changed mysql show tables; ------------------ | Tables_in_testdb | ------------------ | card             | | customers        | | orders           | | person           | | t_user           | | user             | ------------------ 6 rows in set (0.00 sec) mysql delete from orders; Query OK, 2 rows affected (0.03 sec) mysql delete from customers; Query OK, 1 row affected (0.03 sec) 看清了我已经干掉这个两个表的所有数据了。 然后我写一个测试类TestbyOrder从保存Orders实体对象看能否级联保存相关的Customers对象 package org.lavasoft; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; public class TestbyOrder { /** * param args */ public static void main(String[] args) { // TODO Auto-generated method stub if(HibernateSessionFactory.getSession()null)System.out.println(null); Session sessionHibernateSessionFactory.getSession(); Transaction txsession.beginTransaction(); Customers cnew Customers(); c.setName(c1); Orders o1 new Orders(); o1.setOrderNumber(11); Orders o2 new Orders(); o2.setOrderNumber(22); c.getOrderses().add(o1); c.getOrderses().add(o2); o1.setCustomers(c); o2.setCustomers(c); try { session.save(o1); session.save(o2); //session.save(c); tx.commit(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); tx.rollback(); }finally{ session.close(); }       } } 运行这个类控制台信息如下 Hibernate: select max(ID) from orders Hibernate: select max(ID) from customers Hibernate: insert into customers (NAME, ID) values (?, ?) Hibernate: insert into testdb.orders (CUSTOMER_ID, ORDER_NUMBER, ID) values (?, ?, ?) Hibernate: insert into testdb.orders (CUSTOMER_ID, ORDER_NUMBER, ID) values (?, ?, ?) 从控制台信息发现已经级联保存进去了。 在从开库看看到底写的进去的数据是什么 mysql select * from orders; ------------------------------- | ID | ORDER_NUMBER | CUSTOMER_ID | ------------------------------- |  1 | 11           |           1 | |  2 | 22           |           1 | ------------------------------- 2 rows in set (0.00 sec) mysql select * from customers; ---------- | ID | NAME | ---------- |  1 | c1   | ---------- 1 row in set (0.00 sec) mysql 开库查结果表明写入Orders对象的同时写入了相关的Customers对象。 下面再进行一下反向测试 先清空两个表 mysql delete from orders; Query OK, 2 rows affected (0.03 sec) mysql  delete from customers; Query OK, 1 row affected (0.00 sec) mysql 然后写测试类 package org.lavasoft; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; public class TestbyCustomer { /** * param args */ public static void main(String[] args) { // TODO Auto-generated method stub if(HibernateSessionFactory.getSession()null)System.out.println(null); Session sessionHibernateSessionFactory.getSession(); Transaction txsession.beginTransaction(); Customers cnew Customers(); c.setName(c1); Orders o1 new Orders(); o1.setOrderNumber(11); Orders o2 new Orders(); o2.setOrderNumber(22); c.getOrderses().add(o1); c.getOrderses().add(o2); o1.setCustomers(c); o2.setCustomers(c); try { session.save(c); tx.commit(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); tx.rollback(); }finally{ session.close(); }       } } 运行这个测试类控制台信息如下 Hibernate: select max(ID) from customers Hibernate: select max(ID) from orders Hibernate: insert into customers (NAME, ID) values (?, ?) Hibernate: insert into testdb.orders (CUSTOMER_ID, ORDER_NUMBER, ID) values (?, ?, ?) Hibernate: insert into testdb.orders (CUSTOMER_ID, ORDER_NUMBER, ID) values (?, ?, ?) 开库查看看写入数据是什么: mysql select * from orders; ------------------------------- | ID | ORDER_NUMBER | CUSTOMER_ID | ------------------------------- |  1 | 11           |           1 | |  2 | 22           |           1 | ------------------------------- 2 rows in set (0.00 sec) mysql select * from customers; ---------- | ID | NAME | ---------- |  1 | c1   | ---------- 1 row in set (0.00 sec) mysql 开库查结果表明写入Customers对象的同时写入了相关的Orders对象。 从而可以证明这个双向关联是成功的。 呵呵myeclipse不错是个好东西。 myeclipse试用小记----Hibernate多对一单向关联1
http://www.pierceye.com/news/841119/

相关文章:

  • 云梦网站开发什么是网络营销市场营销学
  • 六安建六安建设网站徐州招标信息网
  • 公司做一个网站内容如何设计方案效果图网址
  • 环保部网站建设项目验收方案软件界面设计工具都有什么
  • 外贸 静态网站 怎么做微信红包建设网站
  • 南京网站优化哪家好卖文具的网站建设
  • 黔西南州住房和城乡建设局网站wordpress导航浮动
  • 建设建材网站的目的免费网站建设的
  • 沈阳模板建站公司推荐wordpress 增加导航
  • 一般网站系统并发量建立网站的技术
  • 乐清网站推广公司佛山行业网站设计公司
  • 如何将优酷视频放到自己的网站傻瓜式建个人网站
  • 网站搭建与生成技术教材做网站用什么免费字体
  • flash 制作网站福田蒙派克图片
  • 使用cdn的网站赤水市建设局官方网站
  • 免费做个人网站产品推广方案策划书
  • 水利工程建设监理网站做餐厅logo什么网站素材多
  • 影楼行业网站做网站怎么宣传
  • 云做网站南宁网站建设索q.479185700
  • 运城做网站要多少钱天山网站
  • php网站端口企业网站建设及运营现状分析
  • 北京做网站价格如何知道一个网站是用什么做的
  • 海外域名网站国外做多媒体展览的网站
  • 阿里 网站建设方案书 模板wordpress影视模版
  • 广西网站建设工具网站推广方法主要有哪些
  • 源码购买网站郑州新一网站建设
  • 大学生网站设计论文范文某集团网站建设规划书
  • 温州哪里有网站建设深圳关键词首页排名
  • 做网站用什么面板好网站建设网站公司
  • 寻求网站建设技术网页升级访问永久你懂的