- 浏览: 73141 次
- 性别:
最新评论
-
zuozhimin:
多回头看看自己走过的路,你会有很多你意想不到的收获!我们必须让 ...
回头看看,是否会有更好的人与物…… -
朋在无锡:
去看看effient java上面讲的很细,你这个还不全.如果 ...
equals(),equalsIgnoreCase().compareTo()以及==de 的区别 -
肆无忌惮_:
贴错代码了
java 多线程 -
glory521521:
LZ最后两种对比的时候,是不是写错了???最后两种对比,你没有 ...
java 多线程
文章列表
hibernate中,多对多的关联关系
诸多场景多会使用到多对多的关联关系。譬如:老师与学生之间
在hibernate中,两表之间没有直接的关联,所要要借助第三方表来确认两表之间的关系。
在持久化的实体对象 ...
hibernate中自身之间的一对多与多对一的关联关系
在一些实际的场景当中,通常会发现一个表之间也会存在一对多与多对一的关联关系。比如:同事之间,存在一个老伙计带着好几个新学员等等。
碰到这是不是也会觉得有点儿棘手啊?不过也不过如此而已。掌握了一般的双向的一对多关联关系也就不难了。可以吧通常的两个对象合成一个对象来处理。即双向的一对多关联关系中的多的那一端与一的那一端均写在同一个对象之中。
实例:以User为例:
public class User {
private int id;
private String name;
private ...
双向的一对多与多对一的关联关系:
1、双向的一对多的关联关系:
在双向的一对多的关联关系中,配置与单向的一对多的关联关系、双向的一对一关联关系也没有什么大的差别。在双向的一对多的关联关系中多的那一端与单向的一对多关联关系设置配置一致;但是在少的那一端呢?
在持久化对象中需要引用多的那一端的对象,在Xxx.hbm.xml中添加<many-to-one></many-to-one>标签;还需在该标签中添加name属性与column属性。name属性的值为引用对象的属性名;column值为外键的字段名
实例:在上面的单向一对多的关联关系中进行修改:
少的一端:不变
...
hibernate中,单向一对多与多对一的关联关系
1.一对多关联关系
在一对多关系中,只要在少的那一端使用集合封装多的那一端的对象就可以了。
在Xxx.hbm.xml中添加集合的配置标签,在该标签下使用<one-to-many></one-to-many>子表签,并且在子标签中的class属性指定属性类的全路径;
比如set标签中:
<set name="set属性名">
<key column="外键名"></key>
<one-to ...
hibernate中一一关系映射
1.基于外键的一对一关联映射:
1.单向的关联映射
单向的关联映射中,主控端知道关联的另一表是谁,而被控端不知道被谁给关联了。
怎么配置呢?
在数据持久化类当中,被控端与无关联时候一样的写法,主控端则是应用被控端的对象,并实现get/set方法
Xxx.hbm.xml中,被控端也无需任何的改变,主控端则是添加<many-to-one></many-to-one>标签,
其中name值为应用被控端属性的属性名 column值为外键名 unique属性值来决定是否是一一对应,true则是一一对应,false否
持久化对象J ...
struts2与Android数据交互
在实际的开发当中,Android不会只有只使用自带的sqlite微小型数据库等的单机应用;使用ssh开发的服务器也不会只有在pc平台使用。在实际应用当中,Android+struts2组合应用也是经常看到的。那么怎么来实现这两者之间的联系呢?
基本环境配置:
除了struts2所需的最基本的jar包之外还得需要以下两个包来支持:
1.\struts-2.3.24.1\lib下的struts2-json-plugin-2.3.24.1.jar ;//基于struts2的json插件
2.\struts-2.3.24.1\lib下的json-li ...
解决win10 下genymotion打开显示unable to load virtualbox engine问题
在做Android开发的同志都知道,genymotion要比自带的Android模拟器快上很多。但是呢,更换到新的win10系统之后,genymotion就突然的挂了。怎么解决呢?
在VirtualBox的安装文件路径下,以管理员身份运行EXE文件
打开之后,点击右上角的:管理菜单---->全局设定菜单----->网络----->仅主机网络
然后设置里面的参数,可以按照图片中的参数设置
再将genymotion、VirtualBox ...
hibernate中对集合属性的操作
在hibernate中,持久化对象中不仅仅有基本数据类型与类类型的属性,也有List,Map,Set,collection等集合属性。但是在这些属性使用中,最好使用的是接口。
Set集合操作:
配置:在Xxx.hbm.xml中<set> ...
hibernate的基本查询
在Hibernate中常用的查询方式会有三种:hql,标准化条件查询,原生派sql
HQL基本查询
HQL:Hibernate uses a powerful query language . Hibernate uses a powerful query language (HQL) that is similar in appearance to SQL. Compared with SQL, however, HQL is fully object-oriented and understands notions like inheritance, ...
Session的缓存及基本操作
Session缓存原理:
Session缓存被称为Hibernate的一级缓存。
当程序调用session的CRUD方法,以及调用session的查询接口的list()、 iterate()或者filter()方法时。如果缓存中还不存在相应的对象,Hibernate就会把相应的对象缓到一级缓存当中。
当Transaction.commit()/session.flush()等方法缓存清理时,Hibernate就会根据相应的对象的状态改变来同步更新到数据库当中
Session缓存的作用:
1.减少对数据库的访问,提高数据操作的性能。当缓存当中存在下相应 ...
hibernate的开发环境配置以及开发步聚
一、开发环境配置:
1.下载:hibernate下载地址
2.配置:将hibernate-release-5.0.6.Final\lib\required下的jar包全部复制到项目的lib文件目录下并将数据库的jar包一起复制进去。将hibernate-release-5.0.6.Final\project\etc下的hibernate.cfg.xml、log4j.properties文件复制到src目录下面。
二、开发步聚:
1.新建一个JavaBean类,并对属性实现get/set方法。
2.配置编写Xxx.hbm.xml文件
...
struts2的输入校验
1.输入校验的概述
输入校验是对用户的输入是否是按照开发者的意愿的校验
2.输入校验的必要性
由于web的开放性,输入校验会直接影响了系统的稳定性。因为不能保证每个用户的属于都会按照开发者的意图来输入相关的数据,而且有的用户还会恶意输入写非法数据来进行测试和破坏。
3.客户端校验和服务器校验
(1) 客户端校验:一般的开发者都是在客户端使用JS脚本进行对用户的客户端输入校验。但是呢,这也会有一定的问题。一般来说这是对大多数的用户都是可行的,但是还是会有一些及其聪明的或者有一定的“洁癖”的用户来说是不有任何作用的。比如:用户给浏览器设置了禁止运行脚本语言。 ...
struts2返回结果集input值的作用于用法
在struts.xml配置文件当中action下的result标签name值为input时,即:<result name="input"></result>能起到校验数据并自动跳转到指定的链接下。
比如咋输入的数据要求是整形实际输入却是字符串;要求不能提交为空的字符,提交的实际数据却是空的等等。当检验数据不符合要求时候,可以使用<result name="input"></result>跳转到指定的页面链接或者action等。
诶呀,讲的不清楚,用实 ...
struts2的动态方法调用
在默认的情况下,一个action类只能有一个方法execute()能被调用,这样的话,再开发当中就会需要些很多的action类,在配置文件struts.xml文件当中也要写很多的配置文件。要是能够灵活的运用struts2的动态方法调用就可以很好的解决这个问题了。
那么问题来了,怎么来实现struts2的动态方法调用呢?
实现struts2动态方法调用有三种方法:
使用感叹号
在配置文件中的action中,指定method属性
使用通配符
该怎么具体的使用这三种方法去实现struts2的动态方法调用
1.使用感叹号实现struts ...
struts2拦截器的实现
拦截器顾名思义,就是当有请求访问action时候,拦截器拦截下请求进行某些操作(但是呢,当请求到来时,请求会先到达action类的构造方法,再到达拦截器)。这是请求访问action的时序图: 在struts2当中自带这很多很强大的拦截器,那么是不是我们自己实现一个自定义的struts2的拦截器是不是也就很困难了?答案是否定的。相反,实现struts2的自定义拦截器是相当的容易的。
实现接口方式实现一个自定义的struts2拦截器:
所需实现接口:com.opensymphony.xwork2.interceptor.Interceptor
实现了该接口 ...