??xml version="1.0" encoding="utf-8" standalone="yes"?>久久免费成人精品视频,亚洲国产精品黑人久久久,一二三中文字幕在线 http://www.aygfsteel.com/kongshanxuelin/archive/2014/05/30/414272.html徐灵 徐灵 Fri, 30 May 2014 08:15:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2014/05/30/414272.html http://www.aygfsteel.com/kongshanxuelin/comments/414272.html http://www.aygfsteel.com/kongshanxuelin/archive/2014/05/30/414272.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/414272.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/414272.html 本文的客L(fng)Z我们的GQT开源项目:(x)http://cxlh.iteye.com/blog/2021463
本h拙见Q如有不同意见,Ƣ迎拍砖Q同时献l特别有Ҏ(gu)务端跨语a需求的E序猿们Q?br />
客户端(GQT Demo V3Q服务端配套版)(j).rarQ太大请挪步刎ͼQq下蝲Q群P(x)101189702Q,注明QGQT或JavaQC++{; Java工程代码h步下载:(x)http://cxlh.iteye.com/blog/2074307
M设计思\Q?nbsp;
高可用性:(x)每个业务服务端都是独立的个体QQ何一个业务服务器CrashӞ都不?x)?jing)响服务,q且业务服务器可以按需增加Q业务服务端使用Java代码实现Q主要是Z(jin)考虑更好的数据库操作Q更好的事务支持Q更好的C支持以及(qing)可用更多的开源服务,提高开发效率; 自动负蝲均衡Q当某个接口频繁调用Q增加的响应服务器自动分接口调用压力,也就说我们的异步的请?响应模式下,有一个Broker仲裁E序军_客户端发来的h交由哪个Java业务服务器来处理Q这个BrokerE序我们采用C++代码实现Q?/span> 客户端(包括桌面或移动端Q网养I(x)Ҏ(gu){略选取q程Socket服务器连接,Socket服务器与服务器之间的消息通讯通过地址dq程路由Q以便连在不同Socket服务器上的用户之间可以相互通讯Q典型的应用是聊天E序Q?/span> Sub/PubcL息:(x)客户端订阅服务端的服务,服务端有多个Pub服务器(Java~写Q,交由Socket服务器将客户端Sub的消息PushlC(j)lientQ此时Socket服务只作为Proxy用; 好了(jin)Q其实这里只?个C++核心(j)lgQSocket服务器,Broker仲裁E序Q和N个Java业务服务器(h处理服务器,Pub服务器)(j)Q以下介l用法(需要一定的客户端编E知识和一些脚本只是)(j)Q?/p>
客户端发送请求,异步收取Q编写业务代码步骤:(x)
~写Java服务端,比如我们~写一个按关键字读取股列表等接口Q依赖注入用的SpringQ:(x)
@Repository @CacheNamespace(implementation = org.mybatis.caches.ehcache.EhcacheCache.class, readWrite = true) public interface StockDao { @Select("select SYMBOL,SHORT_NAME from `master`") public List<Map> listStock(); @Select("select SYMBOL,SHORT_NAME from `master` where SHORT_NAME like '%${k}%' or SPELL_NAME like '%${k}%' or SYMBOL like '%${k}%' limit 0,10") public List<Map> listStockByKeyword(Map<String,String> map); @Select("select SYMBOL,SHORT_NAME from `master` where exch_id=8") public List<Map> listAllSh(Map<String,String> map); @Select("select SYMBOL,SHORT_NAME from `master` where trade_date=#dt#") public List<Map> listStockByDate(Map<String,String> map); } ~写Java服务p么简单:(x)
package com.gqt.demo;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.util.Properties;import java.util.ResourceBundle;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import com.gqt.server.BaseReqServer;import com.gqt.server.ReqCallBack;public class StockServer extends BaseReqServer { private static Logger logger = LogManager.getLogger(StockServer.class .getName()); final static Properties prop = new Properties(); static { InputStream is = null ; try { String c_path = StockServer.class .getResource("/").getPath(); logger.info("c_path:{}",c_path); is = new FileInputStream(new File(c_path+"config.properties")); prop.load(is); } catch (Exception e) { e.printStackTrace(); } } public StockServer(String ip, String port, ReqCallBack callback) { super (ip, port, callback); } public static void main(String[] args) { logger.info("=============StockServer========"); new Thread(){ @Override public void run() { ReqCallBack callback = new StockCallBack(); String ip = prop.getProperty("gqt-reqserver-ip"); String port = prop.getProperty("gqt-reqserver-port"); final StockServer ss = new StockServer(ip,port,callback); ss.startServer(); } }.start(); } }
~写客户端C++或脚本:(x)
gw.req("命o(h)代码"."命o(h)代码对应的参数列?); //回调函数 gw.s_cb_gw.connect(function(trcode,msg){ log("-----------------------------------------------------------------"); log("<p>gqt server异步方式获取数据Q回调信息:(x)trcode=" + trcode + ",msg=" + msg+"</p>"); });
效果如下Q?/strong>
q样做的好处Q?/strong>
桌面或移动的客户端再也不用编写繁琐的|络通信相关的程序,只需要发送请?订阅Q处理响?订阅数据包即可,也不用关?j)底层的数据分包合包Q客L(fng)代理Q网l传输的加解密和压羃{; 客户端开发h员(sh)几乎不用和服务端E序员沟通,通过JSON解析h透传lJavaQJava响应的数据带上包头和响应l客L(fng)Q客L(fng)解析JSON卛_Q?/span> 跨语a的服务端虽然?x)损׃定的性能Q但gq点ZeroMQ已做的够好Q?/span>
DemoE序部v步骤Q?/strong>
创徏一个MySQL Demo数据库,数据库名QstockQutf-8~码Q导入output下的stock.sqlQ?/span> 配置output下的config.properties文gQ指定机器IPQ配|jdbc.propertiesQ确保数据库配置正确Q?/span> 点击runStockServer.batQ运行stock的Java Demo服务器,可以开L个; 配置gqt-server-communicator(cpp)下的config_ims.ini文gQIP地址全部换成机器IPQ?/span> 启动ss_server.exeQss_zserver.exeQ?/span> 点击客户端GQTE序Q配|config_ims.ini中的IP地址Q切换到gateway的标{NQenjoy itQ?/span>
]]>也谈ZWeb的含工作项目的一般开发流E?/title> http://www.aygfsteel.com/kongshanxuelin/archive/2014/03/20/411264.html徐灵 徐灵 Thu, 20 Mar 2014 04:48:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2014/03/20/411264.html http://www.aygfsteel.com/kongshanxuelin/comments/411264.html http://www.aygfsteel.com/kongshanxuelin/archive/2014/03/20/411264.html#Feedback 6 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/411264.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/411264.html 该项目包含的通用模块代码{我有时间一q剥A(ch)献出来(ZWebSocket的通知引擎Q工作流整合模块Q自定义表单Q?a target="_blank">详见q里Q,ZRBAC权限设计Q,最q太忙了(jin)QW(xu)eb目有一D|间没ͼ有点生疏的感觉,主要在忙GQT目Q一套基于桌面开发的框架Q?a target="_blank">详见q里Q写代码写的有点手酸的感觉?/p>
ZWeb的含工作的目看v来ƈ不如惌的那么简单,主要需求:(x)
灉|定制工作,q跟t流E进度; 每个Order含有历史轨迹记录Q可在历史中查看Q?/span> 工作的Action灉|Q认领Q务不一定非要先提取表单Q因为很多节炚w只有几个动作Q直接按钮操作即可; 待办事宜列表在不h面情况下也能变动; 目要求Q?/span>
操作单高效; 权限l节到按钮别; q发数少Q不过3000个在U用P 主要可能使用到技术:(x)
工作引擎,我这里选用Activiti5Q很灉|好用Q?/span> 权限使用Spring SecurityQ基于标{ּ理权限很方便; 通知引擎使用WebSocketQ基于Flash实时通信Q基于socket.ioQ?/span> 权限_度Zl典的RBACQ?/span> M框架Spring MVC+MybatisQ?/span> 实现的WebSocket的M思\Q?/span>
WebSocket Server独立于Web目QW(xu)eb Server与WebSocket Server之间的局域网通信Z单的Socket通信Q这栯个组件可以完全解耦和通用Q?/span> 当Web目要Push消息到ClientӞ通过Web Server的Socket Client向WebSocket Server的Socker Server发送消息,然后WebSocket Server收到消息后解码,q播到所有浏览器Q?/span> 我们实现的事仉知非常单,讑֮全局变量q让览器侦听:(x)
var G_WebSocket=false; var EVENT_ORDER_CHANGE_STATUS = "orderChange"; var EVENT_ORDER_CHANGE_AMOUNT = "amountChange"; var EVENT_ORDER_CHANGE_REFUND = "refundChange"; WebSocket.init = function(callbackFunc){ socket = io.connect(connUrl, connOptions); socket.on('connect', function() { G_WebSocket=true; callbackFunc("connect",null); }); socket.on('disconnect', function() { G_WebSocket=false; callbackFunc("disconnect",null); }); socket.on('clientQuit', function(obj){ G_WebSocket=false; callbackFunc("clientQuit",obj); }); socket.on('broadcast', function(obj) { callbackFunc("broadcast",obj); }); };
在需要侦听WebSocket接受Web Server推送消息的地方加上一个函数即可:(x)
WebSocket.init(function(command,jsonObj){ if(command=="broadcast"){ if(jsonObj.e == EVENT_ORDER_CHANGE_STATUS){ //TODO:write your code here }else if(jsonObj.e == EVENT_ORDER_CHANGE_AMOUNT){ //TODO:write your code here }else if(jsonObj.e == EVENT_ORDER_CHANGE_REFUND){ //TODO:write your code here } } }); q样的结构要扩展推送服务很单,比如按频道推送等Q都可以很容易的扩展?/span>
再看看看工作,我们实现?jin)activiti通用的申h交Q务流E和自定义表单功能,提取跟踪程囑֊能等Q这样你要设计一个新程也变得非常简单,只需要在eclipse里划上工作流图,在后台发布,然后通过SpringMVC的RestAPI启动实例程Q申领完成Q务等Q如下图Q?/span>
程走到?jin)分支的两个节点上,q样对后l新增的工作提供了(jin)极大的遍历?/span>
最后说说Spring SecurityQ基于RBAC的权限体pL建好后(可以用在M理pȝ中)(j)Q要在页面中讉K一个资源,首先判断一下是否有权限Q如下HTMLQ?/span>
<sec:authorize ifAllGranted="r_pd"> <a href="#">resource access here</a> </sec:authorize>
<sec:authorize url="/XXX/XXX/XXX.html"> <a href="XXX/XXX/XXX.html'"> <span>XXX功能</span> </a> </sec:authorize>
前台׃目比较?yu),没有用到js的MVC框架Q如backbone{,q里׃再记录了(jin)?/span>
]]> Openfire 3.7.0提供的优U开源在U客服系l?/title> http://www.aygfsteel.com/kongshanxuelin/archive/2011/03/09/346017.html徐灵 徐灵 Wed, 09 Mar 2011 04:51:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2011/03/09/346017.html http://www.aygfsteel.com/kongshanxuelin/comments/346017.html http://www.aygfsteel.com/kongshanxuelin/archive/2011/03/09/346017.html#Feedback 12 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/346017.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/346017.html Openfire 3.7.0开始官方ؓ(f)我们提供?jin)一套优U的在U客服系l,你可以按如下步骤安装使用q套在线客服pȝQ?/span>
安装和部|Openfire 3.7.0
安装f(xi)astpath插g
从openfire的svn上下载webchat源码Qwebchat导入到eclipse中的工程如下图:(x)
q套pȝ为我们提供了(jin)嵌入到客L(fng)代码的源码,客户端只需要简单的嵌入如下代码Q即可显C在U客服图标:(x) < html >
< head >
< title > Fastpath Web Chat </ title >
< script language ="JavaScript" type ="text/javascript" src ="http://www.faqee.com:7080/webchat2/jivelive.jsp" ></ script >
</ head >
< body >
< script >
showChatButton('demo@workgroup.nb.faqee.com');
</ script >
</ body >
</ html >
但点dU客服图标时Q如下图Q?/span>
客服端用Spark接受来自访客的请求的Q点击AcceptQ如下图Q?/span>
我们为?zhn)提供?个客服̎PL(fng)Spark登陆Q嵌入的访客代码见博客,有兴的朋友可以试一下:(x)Q?/span>
服务器填入:(x)nb.faqee.com
客服账号Qvms01/vms01,vms02/vms02,……,vms09/vms09
访客嵌入代码试地址Q?/span>http://code.faqee.com/interface/fastpath.jsp
]]> Flash开发开源工h荐—FlashDevelop http://www.aygfsteel.com/kongshanxuelin/archive/2010/10/12/335406.html徐灵 徐灵 Tue, 12 Oct 2010 00:43:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/10/12/335406.html http://www.aygfsteel.com/kongshanxuelin/comments/335406.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/10/12/335406.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335406.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335406.html 偶玩的版本是3.3.1Q简单而华丽的外表Q界面截囑֦下:(x)
(tng)
安装FDQ你首先需要安装:(x)
JDK 1.6以上版本
.Netq行环境
l而你可以一路Next完成安装?jin)…?/div>
安装完成后,你必dadobe官方|站下蝲开源的Flex SDKQ我q边下蝲的版本是Qflex_sdk_3.5.0.12683_mpl
下蝲完成后,解压到某个目录下卛_Q如QF:\flex_sdk_3.5.0.12683_mpl
然后在FD中设|Flex SDKQ如下图Q?/div>
(tng)
我们q边以Open Flash ChartZQ导入项目工E,点击q行Q如下图Q?/div>
(tng)
你可以设|断点,q行表达式,使用h非常方便Q强烈推荐给大家使用Q?/div>
已有 1 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]>
国庆(jin)度假记 http://www.aygfsteel.com/kongshanxuelin/archive/2010/10/07/335407.html徐灵 徐灵 Thu, 07 Oct 2010 12:29:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/10/07/335407.html http://www.aygfsteel.com/kongshanxuelin/comments/335407.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/10/07/335407.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335407.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335407.html 10?,6日去宁L附近的度假村旅游?jin)一下,一?人出发了(jin)Q由于儿子还比较?yu),怕他累着Q所以这ơ就M(jin)?ji)龙湖开元名都大酒店度假村,5星的酒店,住了(jin)一晚,有点贵Q协议h(hun)后也?80元一晚,不过是无敌湖景房Q超大阳収ͼ阛_上就可以看到整个?ji)龙湖,甚是壮观Q儿子玩的开?j)的不得了(jin),在酒店的花园里滑滑板车?日早上出发,6日中午回来,在回来的路上Q顺便小逛了(jin)一下慈城古镇,到宁波吃?jin)点饭,到家p儿子的睡觉时间了(jin)……这个国?jin)?日就单的陪儿子在东钱湖上座了(jin)下船Q他很喜Ƣ坐船的……其实时间都在不知不觉中度过Q国?jin)长假结束?jin)…?/p>
(tng)
PSQ附上酒店小图一张,以之U念…?/p>
(tng)
已有 0 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]> 利用Spring 3实现Rest配置与开?/title> http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/28/335408.html徐灵 徐灵 Tue, 28 Sep 2010 05:19:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/28/335408.html http://www.aygfsteel.com/kongshanxuelin/comments/335408.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/28/335408.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335408.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335408.html 最q项目要用到RestQ选择?jin)Spring 3Q关于Rest的介l:(x)
(tng)
(tng)
(tng)REST关键原则
REST定义?jin)应该如何正地使用Q这和大多数人的实际使用方式有很大不同)(j)Web标准Q例如HTTP和URI。如果你在设计应用程序时能坚持REST原则Q那预C着你将?x)得C个用了(jin)优质Web架构Q这让你受益)(j)的系l。MQ五条关键原则列丑֦下:(x)
为所有“事物”定义ID
所有事物链接在一?/li>
使用标准Ҏ(gu)
资源多重表述
无状态通信
(tng)
Spring 3.0开始将全面支持RestQ而且配置实现h也相当简单,利用Spring MVC在web.xml定义片段Q?/p>
(tng)
(tng)
<servlet>
<servlet-name>mydemo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mydemo</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
(tng)
l而在Web-INF目录下增加mydemo-servlet.xmlQ内容如下:(x)
(tng)
(tng)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- Auto scan, declare the location path -->
<context:component-scan base-package="com.mydemo.springmvc.rest" />
<!-- Using annontation -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- Resolve the view, declare the prefix and suffix -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/view/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView" />
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="utf-8" />
</beans>
(tng)
q里我们定义?jin)JSP文g的标{ֺ用jstlQƈ启动?jin)注解功能,q自动扫?span style="white-space: pre;">com.mydemo.springmvc.rest下的controllerQ接着我们可以在com.mydemo.springmvc.rest包下~写controller代码
q可以用注解功能,如类似的代码如下Q?/p>
(tng)
(tng)
@Controller
public class MyDemoController {
private CommonDAO commonDAO;
@Autowired
public void setCommonDAO(CommonDAO commonDAO) {
this.commonDAO = commonDAO;
}
private MyDemoController (){}
@RequestMapping(value="/home", method=RequestMethod.GET)
public String welcome(){
return "/home";
}
}
(tng)
然后可以在view目录下通过增加home .jsp来实现显C层代码的编写工作,所有的步骤׃上这些,接下M可以通过cMQhttp://localhost:8080/mydemo/home Q来讉K?jin)(q里Controller通过注解的方式注入DAO以便q行数据库的讉KQ?/p>
已有 0 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]> 上v出差整整一?/title> http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/16/335409.html徐灵 徐灵 Thu, 16 Sep 2010 00:46:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/16/335409.html http://www.aygfsteel.com/kongshanxuelin/comments/335409.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/16/335409.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335409.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335409.html 最q一周都在上出差,l于q是军_到新公司发展Q希望能在新的环境有另一番作为吧
(tng)
本周主要在上h讨品架构,以及(qing)针对需求的概要设计Q将公司的新产品有概念{化ؓ(f)产品Q虽然新公司是个刚v步的?/p>
(tng)
司,但作Z品还是相当有?jng)场潜力的,而且目前国内做同cM品的相对很少Q希望能做出Ҏ(gu)l,也作立之年的小?/p>
(tng)
考验 Q加油…?/p>
已有 0 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]> p大声说出来…?/title> http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/09/335410.html徐灵 徐灵 Thu, 09 Sep 2010 03:13:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/09/335410.html http://www.aygfsteel.com/kongshanxuelin/comments/335410.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/09/335410.html#Feedback 1 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335410.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335410.html 今天看到首页博客上看到?a target="_blank">喜欢一个h的理?/a>”博文,深有感触Q特别是q我们这行的Q往(xin)往(xin)都比较内向,也从来不向心(j)仪的 奛_表白占了(jin)多数Q读工科的L木讷些,当初的我也一栗?/span>
我也是其中一员,曄?j)A的高?sh)女生,自我d学后Q我也跟她保持的书信来往(xin)Q记得第一ơ写信地址q是通过校友录知?/span>的,很快我们成ؓ(f)?jin)“笔友”,相对来说Q我和写那篇博文的作者差不多Q自w条件ƈ不怎么优越Q?70的n高,q要打个99 折,她算是个“全优女生”,成W好,长相也不错,所以我始终没有表白Q也是怕最后连“笔友”也没得做,一直维持着大学l?/span>束,她读ȝQ所以比我多Mq_(d)工作后,“笔友”变成了(jin)“话友”,短信IP?sh)话时时骚(d)扰Q在大学期间Q我q(sh)ؓ(f)她和我的l历虚构写成?jin)一侦探小_(d)但我比写博客的作者幸q的是,?/span>在最后的时刻q是表白?jin),?gu)马上{复我,一周后Q她成ؓ(f)?jin)我的女友?q后Q她成ؓ(f)?jin)我的妻子…?/span>
p大声说出来,要不然就?x)连最后的希望都没有……男奛_U的友谊能维持多久呢……我想都是用来忽(zhn)的吧,所以应该抓?/span>每一ơ机?x),p大声说出来…?/span>
已有 5 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]> JDBC操控Oracle XMLDB http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/06/335411.html徐灵 徐灵 Mon, 06 Sep 2010 05:21:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/06/335411.html http://www.aygfsteel.com/kongshanxuelin/comments/335411.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/06/335411.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335411.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335411.html 现在XML数据库大行其道,特别在数据交换领域,׃XML数据库本w的特点Q可以大显n手,那么JDBC如何来操作XMLDB呢,我们丑և个简单的例子抛砖引玉一下吧
(tng)
(tng)
在数据库中获取XMLTypecd的列|比如存储q程q回XmlType{,代码如下Q?/li>
public static String getOracleXMlType2String(Object obj){
try{
if(obj instanceof OPAQUE){
StringBuffer sb = new StringBuffer();
OPAQUE op =(OPAQUE)obj;
if(op!=null){
XMLType poxml = XMLType.createXML(op);
if(poxml!=null){
sb.append(poxml.getStringVal());
}
}
return sb.toString();
}
return obj.toString();
}catch(Exception ex){
return null;
}
} (tng)
执行存储q程代码Q?/div>
Object[] res = DbUtils.ExecuteSP("{call 存储q程??,?)}", new Object[]{
new SpParameter(Types.VARCHAR, "IN", "in参数", "in参数?)
,new SpParameter(OracleTypes.OPAQUE,"OUT","x",null)}, conn);
(tng)
(tng)
可以通过XmlType列的clob|代码如下Q?/li>
select x.sys_nc_rowinfo$.getclobval() as column_value from xmltypeTable
(tng)
执行存错q程Q存储过E中含XmlTYPEq回|(j)
public static final Object[] ExecuteSP(String stmt, Object[] inparams,
Connection connection) {
int i = 1;
CallableStatement st = null;
SpParameter sp = null;
SpParameter outp = null;
int DataType;
String Direction;
String Name;
String DataValue;
try {
st = connection.prepareCall(stmt);
int oupcount = 0;
for (i = 0; i < inparams.length; i++) {
if (inparams[i] instanceof SpParameter) {
sp = (SpParameter) inparams[i];
if (sp.GetDirection().toUpperCase().equals("IN")) {
switch (sp.GetDataType()) {
case Types.FLOAT:
case Types.INTEGER:
st
.setLong(i + 1, Long.parseLong(sp
.GetDataValue()));
break;
case Types.DATE:
st.setDate(i + 1, java.sql.Date.valueOf(sp
.GetDataValue()));
break;
case Types.SQLXML:
st.setSQLXML(i + 1, null);
break;
default:
st.setString(i + 1, sp.GetDataValue());
break;
}
} else {
if(sp.getDataType() == OracleTypes.OPAQUE){
st.registerOutParameter (i+1, OracleTypes.OPAQUE,"SYS.XMLTYPE");
}else
st.registerOutParameter(i + 1, sp.GetDataType());
oupcount = oupcount + 1;
}
} else
st.setObject(i + 1, inparams[i]);
}
st.execute();
i = 1;
if (oupcount > 0) {
Object[] outps = new Object[oupcount];
int j = 0;
for (i = 0; i < inparams.length; i++) {
if (!(inparams[i] instanceof SpParameter))
continue;
sp = (SpParameter) inparams[i];
if (!sp.GetDirection().toUpperCase().equals("IN")) {
DataType = sp.GetDataType();
Direction = sp.GetDirection();
Name = sp.GetName();
switch (DataType) {
case Types.FLOAT:
DataValue = String.valueOf(st.getLong(i + 1));
break;
case Types.INTEGER:
DataValue = String.valueOf(st.getInt(i + 1));
break;
case Types.DATE:
DataValue = st.getDate(i + 1).toString();
break;
case OracleTypes.OPAQUE:
DataValue = getOracleXMlType2String(st.getObject(i+1));
break;
default:
DataValue = st.getString(i + 1);
break;
}
sp.setDataValue(DataValue);
outps[j++] = DataValue;
// res.addElement(new SpParameter(DataType, Direction,
// Name,
// DataValue));
}
}
return outps;
} else {
return null;
}
} catch (SQLException ex) {
} finally {
if (st != null) {
try {
st.close();
} catch (Exception ex) {
log.error(ex);
}
}
}
}
(tng)
已有 0 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]>
成龙大哥Q麻?ch)请不要以这U方式再高调做善事…?/title> http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/06/335412.html徐灵 徐灵 Mon, 06 Sep 2010 00:20:00 GMT http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/06/335412.html http://www.aygfsteel.com/kongshanxuelin/comments/335412.html http://www.aygfsteel.com/kongshanxuelin/archive/2010/09/06/335412.html#Feedback 0 http://www.aygfsteel.com/kongshanxuelin/comments/commentRss/335412.html http://www.aygfsteel.com/kongshanxuelin/services/trackbacks/335412.html (tng)
我很疑惑Q作为知名的华h演员Q在“咋捐门”出来后Q还要写信l北川同学,在信中还
(tng)
在一个劲的解释“ؓ(f)什么还没捐”,而且q冠冕堂皇的不会(x)l你M承诺׃时能到̎Q号
(tng)
U原则问题, 搞个 “国家L(fng)”大型主题活动还在一个劲的重复着?/span> 自己的歌“国家”,看q?/span>
(tng)
信p得越变扭Q?/span>
p不能也和中国首善 陈光标一P做善事可以高调,但不能再高调的背后炒作,宣传?/span>
(tng)
己商业品或在当?/span> 搞投资啥的……这点偶很看?/span> 陈光标同志,MԒ(hu)一下!
新闻引用 写道
亲爱的同学们Q?br>你们好吗Q! 虽然盔R遥远Q但此时此刻Q在我眼前Q现的是你们一张张U真、质朴而可q脸庞。曾几何Ӟ那场H如其来的可诅咒的天灾Q夺M(jin)你们中的许多亲hQ毁?jin)你们的家园和校园。每每想赯些我心(j)痛,而你们在N中坚强挺立,奋发MQ又让我?j)生感动。你们不愧是龙的传hQ是国家的骄(jing)Ԍ 令我感到无比ƣ慰的是Q短短两q多旉Q一个新的北川拔地而vQ一座新的校园又飘荡h朗读书声。我从网上图片中看到Q新北川中学很气z,很现代,很漂亮。我pCؓ(f)你们感到高兴。这也再一ơ验证了(jin)天灾不可怕,?j)齐力量大。h间有情,大爱无疆Q?br>同学们还记得d5月我们在一h的情景吗Q那一天,不,准确地说是两天,全校同学放下功课Q从临时校舍里赶到那片地震残(hu)留的废墟上,全情出演由我d的“国家L(fng)”大型主题活动,以纪念地震一周年。那真是一个激动h?j)的场景Q我和你?000名同学,一起将?00公斤、面U?000qx(chng)c的巨幅国旗~缓展开Q此举打破了(jin)一吉斯U录大全。我们还?sh)h声歌唱《国家》,“国是我的国Q家是我的家Q我爱我的国Q我爱我的家……”当时你们专注凝重的表情Q还有不同学眼眶噙满泪_(d)都深深印d我的?j)里。当天内地和香港许多媒体记者来到现场,竞相采访报道q一盛况Q让׃遍四方,让暖溢满h间?br>作ؓ(f)一名华人知名演员,我时ȝ记自己承担的一份社?x)责任,因此一直把慈善公益事业攑֜重要C。此ơ在北川的主题活动,是由我亲自构思设计,我相信此举一定能够引发全C会(x)的共鸣,吸引更多人关注灾区的重徏。而我q光有q些是不够的Q我q得为大家做点实实在在的事情。所以我当场做出一个重要决定ƈ郑重宣布Q将捐献我的C《大兵小》部分票房援建北川中学!同学们对我所做爱?j)承诺报以热烈的掌声Q我q深p得?br>但是同学们,旉q去?jin)一q多Q新北川中学在政府等斚w的努力下已经v来了(jin)Q而我的新片子也早已上?jng),我承诺的捐款却ƈ没有CQ这是实情。近些天媒体UL(fng)指责我,甚至用上?jin)“诈捐”这样难听的词汇。我当然很冤Q当然是事出有因。我?x)是a而无信的人吗Q我?x)是说大话ɞ钱或者干脆拿不出q人吗Q我很气愤,很?zhn)哀。对于个别媒体率先造谣的行为我采取法律手D,l护自己的声誉和权益?br>不过此事我必须亲自向同学们做以解释Q因为我不允许当初面Ҏ(gu)做下承诺时你们那1000双热切期待的眼神中生丝毫的疑虑Q那h于?j)难安。其实我的主要解释已l通过我的助手向外界发布过?jin),我认为是完全合乎逻辑和情理的?strong>W一Q我发布捐款承诺Ӟ《大兵小》还没上映呢Q而Q何一部片子都有一个风险问题,房是挣(zhun)是赔不好_(d)如果房赔了(jin)Q我拿什么捐Q是吧!所以我当时主要是表达一个奉献爱?j)的心(j)情与希望,q没有说l对?x)捐出多数额,q个怿大家能够理解Q第二,《大兵小》最l票房卖?.5亿多Q是赚钱?jin),但是属于我的那部分分U我q没有拿到手Q还需要一个过E,而这个过E有可能需要两三年Q所以我当初承诺时也没有说具体的落实旉Q其实就是考虑C(jin)q个因素Q第三,有居?j)不良者说我既然是{应捐款“重建”北川中学,而片子分U又没下来,׃可以从别的地Ҏ(gu)调资金先救徏校之急吗Q我说不可以。我们搞慈善不能太随意,必须实行专项闭q行。我许诺捐出?sh)?jing)部分房Q那׃a厩出驷马难追Q必Lq个办,不好中途更改的。ƈ且我理解重徏不单指盖学校Q比如ؓ(f)学校重新建立校园安全pȝQ不也是重徏吗?q样的钱q年都要花,所以我的捐ƾ什么时间到位,与我的承诺没有必然联pR?/strong> 好了(jin)Q我也解释清楚了(jin)。M请同学们攑ֿ(j)Q我成龙做了(jin)那么多慈善项目,跨国的都做了(jin)不少Q动用金额成百上千万的难以计敎ͼ岂会(x)在牵涉地震灾害的捐款zd中背信弃义,让h所不者R所以我一定会(x)兑现承诺Q大家只要关?j)接下来的动作就可以了(jin)。不q如前所qͼ有些原则性的东西我还是要坚持Q也是此项捐款q得{我《大兵小》的l算下来Q所以还是需要一D|间。希望大家怀着好的心(j)情,慢慢{待。如果有提前毕业的同学看不到我兑现承诺的那一刻,也请永远C我的一片爱?j),我爱你们Q?br>最后,让我们从头再׃遍《国家》,我v_(d)(x)“一玉口中国Q一瓦顶成家Q都说国很大Q其实一个家……?br>同学们加油!
(tng)
(tng)
已有 6 人发表留aQ猛?>>q里 <<-参与讨论
JavaEye推荐
]]>
վ֩ģ壺
° |
ͼ |
|
˳ |
̨ʡ |
|
|
|
|
|
¡ |
ʡ |
괨 |
˳ |
Ƿ |
|
з |
|
פ |
˻ |
ˮ |
|
|
|
|
|
ɽ |
|
ˮ |
|
|
|
̨ |
|
|
|
|
|
|
|
ʡ |