- 浏览: 65041 次
- 性别:
- 来自: 珠海
最新评论
-
marrymyy:
楼主总结的很好,学习了,就是代码怎么都没有空格断开,看着很不爽 ...
interceptor
文章列表
Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表
Java数据类型
Hibernate数据类型
标准SQL数据类型(PS:对于不同的DB可能有所差异)
byte、java.lang.Byte
byte
TINYINT
short、java.lang.Short
short
SMA ...
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
UserBean userBean = (UserBean) targetObject;
String userName = userBean.getUserName();
Object result = null;
if(userName!=null && !"".equals(userNa ...
1.第一个例子
1)定义接口
ServiceBean.java
public interface ServiceBean {
public void addUser();
public void deleteUser();
public void updateUser();
public void findUser();}
2)实现接口
MyServiceBean.java
public class MyServiceBean implements ServiceBean {
public void addUser() { System.out.println( ...
用一个例子演示一个动态代理过程,提供参考。
1.定义接口
//IUserBean.java
public interface IUserBean {
public void getUser();
public void addUser();
public void updateUser();
public void deleteUser();}
2.实现接口
//UserBean.java
public class UserBean implements IUserBean {
public UserBean() { }
public void addUser ...
Struts2的拦截器和Servlet过滤器类似。在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法。
Struts2拦截器类必须从com.opensymphony.xwork2.interceptor.Interceptor接口继承,在Intercepter接口中有如下三个方法需要实现:
voiddestroy();
voidinit();
Stringintercept(ActionInvocationinvocation) ...
【方法1】使用Struts2 Aware拦截器
这种方法需要Action类实现相应的拦截器接口。如我们要获得HttpServletResponse对象,需要实现org.apache.struts2.interceptor.ServletResponseAware接口,代码如下:
packageaction;
importcom.opensymphony.xwork2.Actio ...
全局result
有很多时候一个<result>初很多<action>使用,这时可以使用<global-results>标签来定义全局的<result>,代码如下:
<struts> <packagename="demo"extends="struts-default"> <global-results> <resultname="print">/result.jsp</result> < ...
<s:form action="multiplesubmit"> <s:submit value="保存" method="save"/> <s:submit value="打印" method="print"> </s:submit> </s:form>
调用指定方法
<action name="myMethod" class="com.multiplesubmit.MutipleSub ...
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <includefile="newstruts.xml"/> <packagename=& ...
衍生属性(derive
propertie)是一个特别强大的特征。这些属性应该定义为只读,属性值在装载时计算生成。 你用一个 SQL
表达式生成计算的结果,它会在这个实例转载时翻译成一个 SQL 查询的 SELECT
子查询语句。
<!-- XML : generated by JHighlight v1.0 (http://jhighlight.dev.java.net) -->
<
property
name
=
"totalPrice"
formula
=
"( S ...
typename
可以是如下几种:
Hibernate
基本类型名(比如:integer, string, character,date,
timestamp, float, binary, serializable, object, blob
)。
一个 Java 类的名字,这个类属于一种默认基础类型(比如:int, float,char, java.lang.String, java.util.Date,
java.lang.Integer, java.sql.Clob
)。
一个可以序列化的 Java 类的名字。 ...
:它将一个不可变(immutable)并且只读的实体映射到一个数据库的子查询中。当你想用视图代替一张基本表的时候,这是有用的,但最好不要这样做。
更多的介绍请看下面内容。
<
class
name
=
"Summary"
>
<
subselect
>
select item.name, max(bid.amount), count(*)
from item
...
(可选)指定一个附加的 SQL WHERE
条件,在抓取这个类的对象时会一直增加这个条件。
(可选,默认为 false
):指定 Hibernate
除非确定对象真正被修改了(如果该值为 true — 译注),否则不会
执
行 SQL UPDATE
操作。在特定场合(实际上,它只在一个瞬时对象(transient object)关联到一个新的 session 中时执行的 update()
中生效),这说明 Hibernate 会在 UPDATE
之前执行一次额外的 SQL SELECT
操作来决定是否确实需要执行 UPDATE
。
今天在update记录的时候遇到一个问题
我从数据库里查询出一条数据 并在页面显示出来 修改之
但是问题就出在表单提交之后了 我数据库中有很多字段 但是我更新的只有几个字段
如果用hibernate的update会更新所有的字段 包括没有发生变化的字段 也就是说会把你不想改变的字段全部清空
这样的话更新数据可是相当的麻烦 有没有简便的方法呢 ? 有 hibernate提供了dynamic-update属性
你只要设置为true就可以在更新的时候只更新发生改变的字段 其余字段保持数据库中的原有值。
但是这个dynamic-update=‘true’只在如下情况下 ...