搜索到关键字为 Apache 的相关日志 9 篇: ("[空格]和"+"[加号] 可作搜索分隔符号使用.)

myBatis 存储过程返回值的问题 cloud

今天在调试myBatis调用Sybase数据库的存储过程的时候,出现了如下错误:

org.apache.ibatis.binding.BindingException: Mapper method 'getNextKey' (interface com.xxxxxxx.PackHandleMapper) attempted to return null from a method with a primitive return type (long).
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:37)
at $Proxy17.getNextKey(Unknown Source)
....

报错信息言下之意是返回值为空,可是我的存储过程明明是返回了一个记录集,存储过程如下:

   sql代码
  1. CREATE PROCEDURE prc_seq(@seq_name varchar(20)) 
  2. AS 
  3. BEGIN
  4.     UPDATE seq SET val=val+1 WHERE [name]=@seq_name 
  5.     SELECT val from seq WHERE [name]=@seq_name 
  6. END 
  7. GO 

而且在数据库终端,可以成功执行和返回数据:
exec prc_seq 'xxx'

--------------------------------------------------------------------------------------------------------

经过排查得知,故障是由于update语句引起的,执行上面的语句,会产生两条执行记录,myBatis获取了update语句的执行情况:

1 record(s) affected
1 record(s) selected  [Fetch MetaData: 0/ms]  [Fetch Data: 0/ms] 

解决方法,去掉update语句的执行情况返回,即增加语句:SET NOCOUNT ON

   sql代码
  1. CREATE PROCEDURE prc_seq(@seq_name varchar(20)) 
  2. AS 
  3. BEGIN 
  4.     SET NOCOUNT ON 
  5.     UPDATE seq SET val=val+1 WHERE [name]=@seq_name 
  6.     SELECT val from seq WHERE [name]=@seq_name 
  7. END 
  8. GO 

...

iBatis改名myBatis,逐步脱离apache,投向Google Code suny

iBatis改名myBatis,逐步脱离apache,投向Google Code。

半自动的iBatis/myBatis ORM框架
      iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于Java和.net的持久层框架。

      使用ibatis 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的 Java对象,这一层与通过Hibernate 实现 ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而ibatis 则要求开发者编写具体的 SQL 语句。相对Hibernate等 “全自动”ORM机制而言,ibatis 以 SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM实现的一种有益补充,ibatis 的出现显得别具意义。

原官方网站、更名和迁移公告:http://ibatis.apache.org

新官方网站:

CentOS 5.3快速搭建Apache+PHP5+MySQL完美Web服务器 suny

LAMP是Linux, Apache, MySQL, PHP组合的简称,本文旨在CentOS 5.3 i386/x86_64上快速安装Apache2 Web服务器,还有PHP、MySQL等支持组件,另外,再简单地介绍一下MySQL管理利器phpMyAdmin的安装。

1. 一些说明
本文将和大家一起在Ubuntu 9.04 Server上快速搭建支持Apache2、PHP5、MySQL的最佳Web服务器。文中使用的一些基础配置信息如下: 

  • hostname:server1.example.com 
  • IP地址:192.168.0.100 

实际应用中,改为自己的相应配置即可。

2. 安装MySQL 5.0
...

Struts 2框架的两个核心配置文件详解 suny

    struts.xmlstruts.properties

    其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。除此之外,Struts 2框架还包含一个struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。

     struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对象,每个key就是一个Struts 2属性,该key对应的value就是一个Struts 2属性值。

...

Windows2003 IIS6整合PHP5.3.0(FastCGI) suny

最近要帮朋友修改一些php程序,而自己一直从事java/jsp开发工作,虽然早前配置过几次php环境,毕竟都是过去了。

今晚按照以往的经验去安装php5.3.0,结果折腾了一个小时才解决!

PHP For Windows: http://windows.php.net/download/

...

Tomcat5.x get提交的中文乱码问题 suny

本来解决 Tomcat 中文乱码很久了,但是今天重装了一下Tomcat,忘记配置了,结果用URL get方式传递的中文参数出现了乱码,这里就再提一下不用filter,直接修改Tomcat配置文件的解决方法:

Tomcat5+已经把get和post分开处理了,其设置编码方式也有所不同。
根据 http://tomcat.apache.org/tomcat-5.5-doc/config/http.html 得需要设置URIEncoding & useBodyEncodingForURI,否则默认编码方式为"ISO-8859-1"

这里以Tomcat 5.0 为例,其他版本的类似,修改  conf/server.xml :

<Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

红色部分为新增,URIEncoding 可以改为 gbk 或者 gb2312,但是建议还是使用UTF-8!最好就是从代码到应用全都utf-8!

另外,jsp页面也需要声明编码:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
...

学习使用DispatchAction rainy

DispatchAction继承自Action类,它是一个抽象类,封装了一些基础方法,来解决使用一个Action处理多个操作的能力,这就是DispatchAction最大的用途,它可以帮助我们用一个Action类,封装一套类似的操作方法,节省了类的数目,同时也减轻了后期维护的困难。

DispatchAction中主要包括一下几个方法:

protected ActionForward dispatchMethodprotected java.lang.reflect.Method getMethodprotected java.lang.String getMethodName

DispatchAction在配置上于标准的Action稍有不同,就是要在Action配置中多一个parametr属性,这个属性将指导DispatchAction找到对应的方法,例如这样配置:

<action path="/saveSubscription"
        type="org.apache.struts.actions.DispatchAction"
        name="subscriptionForm" scope="request" input="/subscription.jsp"   
        parameter="method" />

parameter的属性值是可以任意起的,只要你记得在传参数的时候统一就可以了。比如我写了一个类似这样的Action,它继承自DispatchAction类,包含了三个操作方法,有Add(),Update(),Delete()。当我想要调用这个Action的Update操作时,提交的URL应该类似这样的:

http://localhost:8080/myapp/saveSubscription.do?method=update

就是这么简单,不过非常方面我们程序员了,开发中我感觉的确省了好多代码,至少以前的三个类文件变成了现在一个类了,而且在后期维护的时候感觉也是方便很多。

例解:
<html:form action="/insert.do?method=insertRecord" method="post">
这个请求中包含了参数method.这样的请求需要使用DispatchAction进行处理,参数中的方法就是自定义的DispatchAction类中的方法.

在Action中的应用(只要让其Action继承于DispatchAction类):
...

spring 编程入门十大问题解答 cloudy

1、如何学习Spring?
你可以通过下列途径学习spring:
(1) spring下载包中doc目录下的MVC-step-by-step和sample目录下的例子都是比较好的spring开发的例子。

(2) AppFuse集成了目前最流行的几个开源轻量级框架或者工具Ant,XDoclet,Spring,Hibernate(iBATIS),JUnit,Cactus,StrutsTestCase,Canoo's WebTest,Struts Menu,Display Tag Library,OSCache,JSTL,Struts 。
你可以通过AppFuse源代码来学习spring。
...

Tomcat配置Https (SSL) suny

以下以Tomcat5为例:

1、安装Tomcat5(略)

2、生成keystore
       转到%JAVA_HOME%/bin(JDK安装目录)
...