摘要: 四、N—N关联关系1.1单向N-N的关联单向的N-N关联和1-N关联的持久化类完全一样,控制关系的一端需要增加一个set集合属性,被关联的持久化实例以集合的形式存在。 N-N关联必须使用连接表,N-N关联与有连接表的1-N关联非常相似,只需要去掉<many-to-many.../>元素的unique="true"即可。其他的配置和1-N关联一样。 由于与1-N关联非常相似,这里就不演示了。1.2双向N-N的关联 对于双向的N-N关联,我们只需要转换为两个1-N关联模型即可。双向N-N关联两端都需要使用set集合属性,两端都增加对集合属性的访问。双向N-N同样必须 阅读全文
posted @ 2012-07-17 10:59 chenssy 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 三、1—N 对于1-N而言,它的持久化类发生了一点改变,持久化类里需要使用集合属性。因为1的一端需要访问N的一端,而N的一端将以集合(Set)形式表现。1、单向1-N关联 对于单向的1-N关联关系,只需要在1的一端增加Set类型的属性,该属性记录当前实体的关联实体。 同样以员工-部门为例(Employee-->Department)。两个持久化类如下: Department 1 public class Department { 2 private Integer id; 3 private String name; 4 private Set<Employee> e... 阅读全文
posted @ 2012-07-17 10:56 chenssy 阅读(581) 评论(0) 推荐(1) 编辑
摘要: 二、1—1 无论是单向1-1映射关联,还是双休1-1映射关联,都有三种映射策略:基于主键、基于外键、采用连接表。 1、单向1-1映射关联 1.1、基于主键的单向1-1映射关联 对于基于主键的单向1-1关联,基于主键关联的持久化类不能拥有自己的主键生成器策略,它的主键由关联实体来负责生成。 是根据他自己的person属性来获得的。即他通过自身的一个getPerson()方法来获得Person对象。然后通过Person对象中的getID()方法获得id,然后赋值给自身id。这样就可以不需要自己来生成id。 采用基于主键的1-1关联时,应使用<one-to-one.../>元素来映射关联 阅读全文
posted @ 2012-07-17 10:52 chenssy 阅读(573) 评论(0) 推荐(1) 编辑
摘要: 我们所生活的世界很少有事物是孤立存在的,每个事物必然会存在着与它相关联的事物。在面向对象设计当中,关联关系是非常重要的。关联关系一般可以分为以下两种: 单向关系:只需单向访问关联端 双向关系:关联的两端都可以互相访问 单向关系可分为:1—N、1—1、N—1、N—N 双向关系可分为:1—1、1—N、N—N 下面就上面的每种关联映射分别讲解:一、N—1关联映射1、单向N—1关联 1.1、无连接表的N-1关联(基于外键的N-1关联) 对于单向的N—1关联而言只需要从N的一端可以访问1的一端。为了让这个两个持久化类支持这种关联映射,程序应该在N的一端的持久化类中增加一个熟悉,该属性引用1一端的关联实. 阅读全文
posted @ 2012-07-17 10:46 chenssy 阅读(493) 评论(0) 推荐(2) 编辑
摘要: Hibernate采用低侵入式的设计,它对持久化类几乎不做任何要求。也就是说hibernate操作的持久化类基本都是普通java对象。对于持久化类的要求这里不做说明。只就持久化对象的状态和各个状态之间的转换。 Hibernate持久化对象有如下几种状态: 1、瞬态:对象有new操作符创建,但是并没与HibernateSession关联。处于瞬态的对象是不会被持久化到数据库中的。如果程序中失去了瞬态对象的引用,瞬态对象就会被垃圾回收机制销毁。 2、持久化:持久化实力在数据库中有对应的记录,并且拥有一个持久化标识。对于持久化对象,它必须要与指定的HibernateSession关联起来。 3、托. 阅读全文
posted @ 2012-07-17 10:43 chenssy 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 上一篇波博客我部署的第一个hibernate工程,现在就这个工程里面的细节来分析下。 一、POJO类 POJO类即持久化对象。他是完成hibernate持久化操作。说本质点就是简单的java类。但是并不是所有的java类都可以是POJO的。对于这个java类它是有如下几个限制:1、它必须存在默认的构造方法 如果存在带参数的构造方法,那么hibernate就不能管理这个pojo了。2、有无意义的标示符id 这个是可选的。这个id和表里面的主键是相对应的。一般来说hibernate是建议有这个属性id的。因为这样hibernate操作就会更加方便和高效率。3、这个类应该是非final的 如果某个. 阅读全文
posted @ 2012-07-17 10:41 chenssy 阅读(411) 评论(0) 推荐(1) 编辑
摘要: 在介绍hibernate之前我们有必要的简单了解一下ORM 目前的主流数据库依然是关系型数据库,但是java则是面向对象的编程语言,当把两者结合在一起使用时非常麻烦。这时便催生了ORM框架的产生。ORM,全称为Object/RelationMapping,即对象/关系数据库映射,我们可以把他理解成一种规范。它完成面向对象的编程语言到关系数据库的映射。因此,我们可以把ORM框架作为面向对象编程语言到数据库之间的桥梁。当我们采用ORM框架之后,应用程序不再直接访问数据库,而是以面向对象的方式来操作持久化对象,而ORM框架则将这些面向对象的操作转化为底层的SQL操作。所以我们可以把ORM的作用理解. 阅读全文
posted @ 2012-07-17 10:34 chenssy 阅读(698) 评论(0) 推荐(1) 编辑
摘要: 在SQL/92标准可以使用USING子句对连接条件进行简化,但是只有在查询满足以下两个条件时才能给使用USING进行简化:1、查询必须是等连接的2、等连接中的列必须是同名如:商品表goods表和商品类型表category表中goods的外键和category的主键相同:categoryid而且是等连接,这里可以使用using1 select goodsname,categoryname2 from goods inner join category3 using(categoryid)在使用using是需要注意以下几个问题1、在select子句中只能指定该列... 阅读全文
posted @ 2012-07-13 12:48 chenssy 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 游标是从数据库中提取出来一临时表的形式存放在内存中的数据。可以把游标看作是内存的SQL工作区域,游标名称相当于该区域的句柄。通过该句柄可以有效地控制游标,从而实现对数据的操作。所以对游标的操作实际上就是对数据库库的间接操作。 1.1游标的定义 定义游标的格式如下: CURSOR游标ISSELECT语句; 例如:把数据表中emp中部门号为20的员工定义为游标:1 CURSOR exce_emp is select * from scott.emp where deptno=20; 定义游标后,我们就可以使用游标了。但是要对游标进行操作我们必须先打开游标: Open游标名; 打开游标实际上是从数. 阅读全文
posted @ 2012-07-13 12:47 chenssy 阅读(559) 评论(3) 推荐(1) 编辑
摘要: 一、PL/SQL程序流程控制上面的结构与其他的高级语言程序一样,就不做介绍了。下就条件结构和循环结构说明。 1)IF条件控制句 1.1IF...THEN语句 其语法是: IFpTHEN 基本语句段; ENDIF; 例如:declare flag1 integer := 1; flag2 integer := 2;begin if flag1 < flag 2 then dbms_output.put_line('Flag1<flag2'); end if;end;注意:上面的IF与ENDIF必须成对出现 1.2IF...THEN...ELSE语句 该语句用于需要在两 阅读全文
posted @ 2012-07-13 12:44 chenssy 阅读(648) 评论(3) 推荐(3) 编辑
摘要: 历时三个星期的时间终于把Struts2给看完了。中间断断续续的学习,在这个过程中学到了很多东西,也真正的明白了时间是挤出来的。大三了课程越来越来多了,有自己学校的课程要学习,又是各种各样的实验,时间的真的是太紧了。这个时间,利用一切的空余时间来学习编程。这个过程的苦和乐真的只有经历了才明白... 不多说了,下面是对这三个星期学习Struts2的知识总结:一、Struts2应用的开发步骤 1、首先要先下载Struts2的jar包,将必须的类库放入到Web应用下的WEB-INF/lib路径下。 2、配置web应用的web.xml配置文件,配置Struts2的核心Filter 3、定义处理用户请求. 阅读全文
posted @ 2012-07-13 12:33 chenssy 阅读(1087) 评论(1) 推荐(3) 编辑
摘要: PL/SQL是一种高效的事物处理语言,它具有如下优点 1、支持SQL 2、支持面向对象的编程方法 3、更好的性能和更高的效率 4、编写方便 5、与Oracle高度集成 6、安全性好一、PL/SQL变量和基本数据类型 1、PL/SQL变量的定义 基本数据类型变量的定义方法如下: 变量名类型标识符[:=值]; 如:Strvarchar2[100]:='中国'; 也可以使用关键字default来代替赋值符。 strvarchar2[100]default'中国'; 注意:赋值符合中的冒号和等号是不能分开的;2、基本数据类型三、PL/SQL程序的结构首先看一个简单的例子 阅读全文
posted @ 2012-07-13 12:23 chenssy 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 准备五一开始学习oracle,所以今天就打算把oracle10g安装下。安装完后就来进行测试是否能够正常的工作。 在安装的过程中,配置的全局数据库为tmt。 但是使用SQLPlus登陆的时候,用户名:scott,口令为:tiger,主机字符串为:tmt。但是总是登陆不上,报提示ora-12154tns无法解析指定的连接标识符。百度了下,原来是我的TNSNAMES.ORA文件中并没有tmt的相关配置。于是对TNSNAMES.ORA文件增加如下配置:TMT = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(... 阅读全文
posted @ 2012-07-13 12:22 chenssy 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 在很多情况下我们都需要将一个对象转换为String类型。一般来说有三种方法可以实现:Object.toString()、(String)Object、String.valueOf(Object)。下面对这三种方法一一分析: 一、采用Object.toString() toString方法是java.lang.Object对象的一个public方法。在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法。这是采用该种方法时,常派生类会覆盖Object里的toString()方法。但是在使用该方法时要注意,必须保证Object不是null值,否则将抛. 阅读全文
posted @ 2012-07-13 12:00 chenssy 阅读(779) 评论(0) 推荐(0) 编辑
摘要: 在做java课程设计的时候,需要一个做许多的表格,由于数据量比较,所以决定给JTable增加个Jcollpan滑动窗口。 可是在我给表格设定的大小超过了Jscollpan,它只会出现垂直滑动条。对于这个我很蛋疼很纠结!! 当我查看帮助文档后,发现了一个这样的方法:setAutoResizeMode(JTable.AUTO_RESIZE_OFF);这个方法用于关闭表格的自动调整,也就是表格大小并不会随框架的变化而变化,根据自身的大小来调整。添加这个方法后的效果是依然没有水平滑动条。这又要纠结了!!最后实在是解决不了,在百度上面找了解决方案:最终代码如下:1 JScrollPane jScrol. 阅读全文
posted @ 2012-07-13 11:59 chenssy 阅读(250) 评论(0) 推荐(0) 编辑