04 2012 档案

摘要:在数据库开发中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候会用SP来封装数据库操作。1.开发人员如果用到其他库的Table 或者View ,务必在当前库中建立View来实现跨库操作,最好不要使用‘database.dbo.table_name’,因为sp_depends 不能显示出该SP所使用的跨库table 或 view,不方便校验。2.开发人员在提交SP前,必须已经使用set showplan on 分析过查询计划,做过自身的查询优化检查。3.提高程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点: a) SQL的使用规范: i. 尽量避免大事务操作,慎用hold... 阅读全文
posted @ 2012-04-29 22:19 jerry_xing8 阅读(372) 评论(0) 推荐(0)
摘要:众所周知,当过多的使用存储过程,触发器等 数据库方言相关的应用时,应用程序的移植性会变差,特别是在Hibernate中使用这些,简直是讽刺,但是当今中国又有哪家公司做项目会关心应用程序的移植性呢? 现在看看Hibernate中对Oracle存储过程的调用. 1.plsql 代码 proc.plsqlcreate Procedure proc()begin select * from proctab;end;1 create procedure proc1(v_no number(4))2 begin3 select * from proc14 where i... 阅读全文
posted @ 2012-04-28 22:09 jerry_xing8 阅读(15461) 评论(2) 推荐(0)
摘要:毫无疑问,Struts 的I18N是基于JAVA.UTIL.LOCALTE实现的,先简单说明两者的使用 1.java中的I18N I18NSerlvet 1 package web.struts.i18n; 2 3 import java.text.MessageFormat; 4 import java.util.Locale; 5 import java.util.ResourceBundle; 6 import java.util.ResourceBundle.Control; 7 8 public class Local_I18N { 9 public static ... 阅读全文
posted @ 2012-04-28 13:47 jerry_xing8 阅读(2236) 评论(0) 推荐(0)
摘要:在android中,可以通过AsysTask实现数据异步加载,例如更新进度条等等。 其基本的原理是通过回调方法进行,通过JavaScript也可以实现数据的异步加载,如果再深入的话就是所谓的 Ajax: Servlet代码:AjaxServlet:servlet代码 1 package web.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.Http... 阅读全文
posted @ 2012-04-27 22:55 jerry_xing8 阅读(2108) 评论(0) 推荐(0)
摘要:目录一、数据库事务的定义二、数据库事务并发可能带来的问题三、数据库事务隔离级别四、使用Hibernate设置数据库隔离级别五、使用悲观锁解决事务并发问题六、使用乐观锁解决事务并发问题Hibernate事务与并发问题处理(乐观锁与悲观锁)一、数据库事务的定义 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子. 阅读全文
posted @ 2012-04-24 22:29 jerry_xing8 阅读(17500) 评论(0) 推荐(1)
摘要:Hibernate事务和并发控制 ++YONG原创,转载请注明1.事务介绍:1.1.事务的定义:事务就是指作为单个逻辑工作单元执行的一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。1.2.事务具有ACID属性:o原子性(Atomic):事务由一个或多个行为绑在一起组成,好像是一个单独的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。o一致性(Consistent):一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。o隔离性(Isolated):事务应该允许多个用户操作同一个数据,一个用户的操作. 阅读全文
posted @ 2012-04-24 22:24 jerry_xing8 阅读(6128) 评论(0) 推荐(1)
摘要:通过对struts2的一段时间的接触,将自己对OGNL的核心值栈说说,值栈:简单的说,就是存放action的堆栈,当我们提交一个请求道服务器端 action时,就有个堆栈,如果action在服务器端进行跳转,所有action共用一个堆栈,当需要保存在action中的数据时,首先从栈顶开始 搜索,若找到相同的属性名(与要获得的数据的属性名相同)时,即将值取出,但这种情况可能出现找到的值不是我们想要的值,那么解决此问题需要用TOP语法 和N语法来进行解决。 当在客服端进行跳转时,当有请求提交到服务器的action时,只有一个堆栈存在,堆栈中存放的是当前的请求的action,而原来那么则销毁了(本人 阅读全文
posted @ 2012-04-23 23:11 jerry_xing8 阅读(45922) 评论(3) 推荐(3)
摘要:struts1.2和struts2区别2010-05-17 16:43:32|分类:struts|字号订阅struts1.2和struts2最大的不同是,struts2集成了Webwork。区别相当大,2.0改进很多,整合webwork,去掉了一些不常用得标签,struts2.x是在webwork2的基础上构建的,集成了大量的东西,像什么拦截器,校验框架等,相当复杂,struts1.x相对来说就显得小得多了,东西就那么几个。特性Struts 1.2Struts 2.0Action类Struts 1要求Action类要扩展自一个抽象基类。Struts 1的一个共有的问题是面向抽象类编程而不是面向 阅读全文
posted @ 2012-04-23 23:10 jerry_xing8 阅读(1651) 评论(0) 推荐(0)
摘要:散列函数,主要目的是需找一个好的散列方法把这个数组的每一个位置都能均匀的用到,下面先上一个比较好的散列函数实现散列函数 1 package com.wuxing; 2 3 /** 4 * 散列函数 5 * @author wuxing 6 * 7 */ 8 public class Hash { 9 10 /**11 * 12 * @param key 键值13 * @param tableSize 存放数组的长度14 * @return 存放键值在数组的位置15 */16 public static ... 阅读全文
posted @ 2012-04-15 22:01 jerry_xing8 阅读(2220) 评论(0) 推荐(0)
摘要:今天手动实现了一个小例子,模拟Hibernate将关系型数据库中的记录映射为Java对象的过程,虽然不太实用,但是却很简单明了地说明了映射的过程。下图是这个例子的类图:我们首先对上面的类图做一个简要的说明,IEntity是一个所有的实体都要实现的接口,它的getDefinition方法返回的是这个实体的定义(EntityDefinition),save方法接受一个java.sql.Connection类型的参数,然后把实体自己保存到数据库中,为简单起见这里没有定义其它数据访问的方法。EntityDefinition描述了一个实体映射到数据库中表的规则,为了简单起见我在这里设置的规则都是很简单的 阅读全文
posted @ 2012-04-15 21:53 jerry_xing8 阅读(1629) 评论(0) 推荐(1)
摘要:写程序,能够计算组合数。首先想到的是写一个求阶乘的函数,然后再另一个函数中对其调用以计算该组合数。这个思路没有问题,但是能写好代码也不是件容易的事,而且我们应该意识到,招聘方的这道简单的问题很显然是需要我们尽量写得完整的,而不是象征性写出思路,因此,必要的健壮性是要体现出来的。很多人的程序如下:privatestaticintfactorial(intn){intret=1;for(inti=2;i<=n;ret*=i++);returnret;}publicstaticintcombination1(intall,intselect){returnfactorial(all)/fact 阅读全文
posted @ 2012-04-15 21:39 jerry_xing8 阅读(735) 评论(0) 推荐(0)
摘要:Android 按钮的UI设计,ListView 以及GridView的UI设计一.按钮的状态我们一般搞UI设计,按钮通常有三个状态:normal(正常状态);focus(焦点状态),pressed(按下状态)。如下图所示:我们会在res/drawable目录下定义一个资源文件,比如我们本例中要用到的handle.xml,在里面定义三种状态,每种状态对应一张图片。代码如下:按钮Selector1<?xml version="1.0" encoding="utf-8"?>2<selector xmlns:android="htt 阅读全文
posted @ 2012-04-15 21:14 jerry_xing8 阅读(2291) 评论(2) 推荐(0)
摘要:原文出处:http://blog.csdn.net/hmg25/article/details/6203130FrameLayout 先来看官方文档的定义:FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。我的理解是,把FrameLayout当作画布canvas,固定从屏幕的左上角开始填充图片,文字等。看 阅读全文
posted @ 2012-04-15 20:55 jerry_xing8 阅读(4767) 评论(0) 推荐(0)
摘要:java 线程池 工作队列 阅读全文
posted @ 2012-04-15 20:37 jerry_xing8 阅读(11728) 评论(0) 推荐(0)
摘要:一.数据文件的扩展1.alter database datafile '$home/data/df1.dbf' antoextend on;alter database datafile '$home/data/df1.dbf' autoextend off;2.创建时启用create tablespace testuser datafile '$home/data/df1.dbf'autoExtend on next 10M maxsix 500M3.DBA_DATA_FILES ,AUTO_EXTENDselect name,auto_ext 阅读全文
posted @ 2012-04-09 23:21 jerry_xing8 阅读(327) 评论(0) 推荐(0)
摘要:接着上一篇,做配置好内存后,做好相关的文档记录,开始执行文件规划 该系统有5块磁盘,由于重做日志文件,归档文件,数据文件 有明显的IO竞争。文件规划为 1.重做日志文件 : 分为三个组,每组3个成员,分别分布在 disk:u01,disk:u02,disk:u03 2.归档日志文件 : 放在disk:u04 3.控制文件: 为了防止单点故障,分别置与 disk:u01,disk:u02,disk:u03 一.控制文件的移动 View Code 1 SQL> alter system set control_files=' 2 2 D:\oracle\product... 阅读全文
posted @ 2012-04-09 23:19 jerry_xing8 阅读(288) 评论(0) 推荐(0)
摘要:本文 所涉及的项目,是在测试机上完成,其根据真实项目按照硬件能力进行了缩放。 有一航空分析系统,其用户量在20左右,其性质介于OLTP和 DatawareHouse之间,采用普通服务器,Linux平台,物理内存为4G,5块磁盘。 初步的内存的规划为 Oracle 系统占用: 4G*80% =3.2G 系统预留 : 4G*20%=800M PGA占用 : 4G*80%*20%=640M SGA占用 : 4G*80%-pga_aggregate_target=2.56G Shared_Pool : 200M Redo_buffer : 1M L... 阅读全文
posted @ 2012-04-09 23:06 jerry_xing8 阅读(554) 评论(0) 推荐(0)
摘要:1、 观察者模式与监听器机制1.1 观察者模式1.2 监听器(Listener)机制代码的基本框架:* 被监控着package com.wonders.group;import java.util.Collection;public class ModelTie { private Collection<Object> dataSet; public interface DataSetSupervioer { public void onChange(); } private DataSetSupervioer dataSetChangeListener; public void 阅读全文
posted @ 2012-04-08 22:02 jerry_xing8 阅读(14624) 评论(0) 推荐(1)
摘要:1)Cygwin相关资料 (1)Cygwin上安装、启动ssh服务失败、ssh localhost失败的解决方案 地址:http://blog.163.com/pwcrab/blog/static/16990382220107267443810/ (2)windows2003+cygwin+ssh 地址:http://wenku.baidu.com/view/3777b8bc960590c69ec3765e.html (3)Cygwin 安裝和SSH設定教學 地址:http://blog.faq-book.com/?p=2731 (4)如何在Cygwin中安装并配置SSH 地址... 阅读全文
posted @ 2012-04-08 21:50 jerry_xing8 阅读(1249) 评论(0) 推荐(0)
摘要:1)Jsp网站中路径问题(1)JSP网页中的相对路径与绝对路径地址:http://shawnqiu.iteye.com/blog/721282http://localhost:8080/MainWeb/"/"代表根目录,"./" 代表当前目录,"../"代表上级目录。服务器端的相对地址指的是相对于你的web应用的地址,是在服务器端解析的。(http://localhost:8080/MainWeb/)html页面中的相对地址都是相对于服务器根目录,是客户端浏览器解析的。(http://localhost:8080/)webapp Ma 阅读全文
posted @ 2012-04-08 21:43 jerry_xing8 阅读(743) 评论(0) 推荐(1)
摘要:总有初学者问这个问题为什么Oracle 不要密码也可以进入。 其实这就是Oracle设计的精巧之处。 一.直接通过 sqlplus / as sysdba 方式登录。 当我们安装了Oracle 之后,直接通过sql / as sysdba,就直接可以登录Oracle,即使设置了SYS用户的密码,完全没有效果。请注意该中情况只有在 用户已经登入OS ,完成了OS认证的情况下有效,如果通过 i sqlplus 是无法登录。而且以 View Code 1 sqlplus sys123/123 as sysdba; --sys123这个用户,123这个密码都不存在。2 sqlplus ... 阅读全文
posted @ 2012-04-08 20:58 jerry_xing8 阅读(366) 评论(0) 推荐(0)
摘要:在后台修改订单的时候为了防止两个以上的工作人员同时修改订单,需要对订单进行锁定。锁定的具体方法如下:View Code 1 public Order getLockOrder(String orderid, String employee){2 em.createQuery("update Order o set o.employee=?1 where o.orderid=?2 and o.employee is null")3 .setParameter(1, employee).setParameter(2, orderid).executeUpdate();4 em. 阅读全文
posted @ 2012-04-07 22:18 jerry_xing8 阅读(2194) 评论(0) 推荐(0)
摘要:1)部门模块 1)设计实体/数据库表(领域建模/数据库建模) 2)设计业务bean(DAO层) 有些项目有Service层和DAO层,这样主要是为了解决有多个数据库来源。 一般的项目有service层就够了,不然70%的代码都是重复的。 不管有没有DAO层,事物一定要在业务层打开。 3)完成相应业务的action/jsp 2)员工模块 a)员工的分页列表 b)员工的添加【ajax校验用户名是否存在】/离职设置/改 3)权限定义与权限组模块 1>对系统的所有功能定义相应的权限。 2>由网管针对不同部门不同员工分配权限组,在分配权限组时,可以选择该组具有的权限 3>... 阅读全文
posted @ 2012-04-07 22:14 jerry_xing8 阅读(5445) 评论(0) 推荐(0)
摘要:在购物车中,我们可以删除购物项,修改产品的购买数量,清空购物车,进入结算中心。以下是购物车的代码View Code 1 /** 2 * 购物车 3 */ 4 public class BuyCart { 5 /* 购物项 */ 6 private List<BuyItem> items = new ArrayList<BuyItem>(); 7 /* 配送信息 */ 8 private OrderDeliverInfo deliverInfo; 9 /* 购买者联系信息 */ 10 private OrderContactInfo contactInfo; 11 /* 阅读全文
posted @ 2012-04-07 22:09 jerry_xing8 阅读(3622) 评论(0) 推荐(0)
摘要:存放购物车的方式有两种:一种是通过Session来存放,直接session.put(key,cart);就行了。这种方式比较好实现,但是比较消耗服务器内存。另一种是通过COOKIE+DB的方式存放,这种方式存放消耗的性能相对小一些,像卓越网、当当网就是通过这种方式存放的。首先,刚每个用户初次访问你的网站的时候,需要为用户分配一个唯一ID(UUID),存放在COOKIE里面。这个功能可以通过过滤器来实现。View Code 1 Filter(){2 //判断用户cookie里面是否存在ID,不存在就创建。3}然后从数据库获取购物车,如果数据库中不存在记录,代表用户初次购买,这时新建购物车,往购物 阅读全文
posted @ 2012-04-07 22:04 jerry_xing8 阅读(2479) 评论(0) 推荐(0)
摘要:实现方式 Cookie1.对最近浏览商品的实现需要用到cookie,一下代码可以获取cookie:View Code 1 /** 2 * 获取cookie的值 3 * @param request 4 * @param name cookie的名称 5 * @return 6 */ 7 public static String getCookieByName(HttpServletRequest request, String name) { 8 Map<String, Cookie> cookieMap = WebUtil.readCookieMap... 阅读全文
posted @ 2012-04-07 22:02 jerry_xing8 阅读(1887) 评论(0) 推荐(0)
摘要:构建保存图片的路径:View Code 1 String pathdir = "/images/product/"+ productTypeId+ "/"+ productId+ "/prototype";//构建文件保存的目录 为什么要有那么多个目录,因为java本身不会去获取图片,而是调用了操作系统的一些接口来获取图片,如果一个目录下图片太多的话,操作系统获取图片的速度会变慢,所以巴巴运动网在构建图片路径的时候搞了多个目录,分散保存图片。有了这个pathdir就可以得到图片保存目录的真实路径:View Code 1 String 阅读全文
posted @ 2012-04-07 21:55 jerry_xing8 阅读(3058) 评论(0) 推荐(0)
摘要:首先创建一个QueryResult类来存放结果集和总记录数:package cn.wuxing.bean;View Code 1 import java.util.List; 2 3 public class QueryResult<T> { 4 private List<T> resultlist; 5 private long totalrecord; 6 7 public List<T> getResultlist() { 8 return resultlist; 9 }10 public void setResultlist(List<T> 阅读全文
posted @ 2012-04-07 21:44 jerry_xing8 阅读(1603) 评论(0) 推荐(0)
摘要:JBOSS+TOMCAT+APACHE 一般的构架 集群+OSCatch+ Session Server 阅读全文
posted @ 2012-04-07 21:33 jerry_xing8 阅读(3761) 评论(0) 推荐(0)
摘要:问题:1)当大型网站系统>10万人 一个小时内,会跟数据库交互10万次(国内有京东,淘宝),这就会出现数据库瓶颈,每个数据库最大连接数(socket)2000在某一段短暂时间内1万人,会跟数据库发生1万次交互,2000-8000【30秒】 5000 30002000个用户很快就可以到页面5000个用户访问页面比较慢还有3000个用户会提示超时/服务器出现例外这是访问性能的问题,原因是数据库瓶颈。解决方案:1>页面静态化解决方案:使用模板技术(Velocity[9-10年]/Freemarket[5-6年])2>2>缓存技术 (当数据更新比较快,几秒钟就更新一次,或者需要 阅读全文
posted @ 2012-04-07 21:25 jerry_xing8 阅读(6527) 评论(0) 推荐(1)
摘要:1. 数据库的可用度,DBA 说了“不算” --物化视图,加快查询速度某些时候数据库的可用性,并不由DBA所设定。因为即使DBA对数据库有绝对掌控权,但用户可能从自己的工作和应用角度,与DBA的感受是不一样的。他们要的是速度!很简单的道理,也许你也曾遇见。某天当你正在岗位上忙碌的时候。这时在同一时间,你的老板正在查看公司的财报,在他的电脑里有个应用,其中有一个按钮,只需轻轻一点就能查看当月甚至当年的财报。当他点了一下之后,结果并没有按他预计的时间返回,于是他拿起电话打给你,问数据库为什么“崩溃”了!这让你一头雾水,好像他说的不是你眼前的数据库!有时候一个全局设置良好的库也存在这样问题。我们遇. 阅读全文
posted @ 2012-04-07 20:52 jerry_xing8 阅读(330) 评论(0) 推荐(0)