﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Java天空</title><link>http://www.blogjava.net/jia8zy/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:05:22 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:05:22 GMT</pubDate><ttl>60</ttl><item><title>土办法解决 ubuntu wine 1.3 安装ies4linux 2.99.0.1</title><link>http://www.blogjava.net/jia8zy/archive/2010/09/09/331569.html</link><dc:creator>YY</dc:creator><author>YY</author><pubDate>Thu, 09 Sep 2010 12:15:00 GMT</pubDate><guid>http://www.blogjava.net/jia8zy/archive/2010/09/09/331569.html</guid><wfw:comment>http://www.blogjava.net/jia8zy/comments/331569.html</wfw:comment><comments>http://www.blogjava.net/jia8zy/archive/2010/09/09/331569.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jia8zy/comments/commentRss/331569.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jia8zy/services/trackbacks/331569.html</trackback:ping><description><![CDATA[由于wine 1.3使用了winepath代替wineprefixcreate，所以安装ies4linux的时候，会提示wine版本太旧，wineprefixcreate有误。可以通过修改ies4linux 2.99.0.1/lib的functions.sh、install.sh来简单解决ie6的安装问题。<br />
<br />
在install.sh 426行左右<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;subsection&nbsp;$MSG_CREATING_PREFIX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_wine_prefix&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$BASEDIR/ie1/</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>wineprefixcreate<span style="color: #000000;"> </span><span style="color: #000000;">&amp;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clean_tmp<br />
</span></div>
<br />
改为：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;subsection&nbsp;$MSG_CREATING_PREFIX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_wine_prefix&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$BASEDIR/ie1/</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>winepath<span style="color: #000000;"> </span><span style="color: #000000;">&amp;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clean_tmp<br />
</span></div>
<br />
在functions.sh 242行左右<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">function&nbsp;create_wine_prefix&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;which </span>wineprefixcreate<span style="color: #000000;"> </span><span style="color: #000000;">&amp;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;&nbsp;then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;( </span>wineprefixcreate<span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;)&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;debugPipe<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error&nbsp;$MSG_ERROR_NO_WINEPREFIXCREATE<br />
&nbsp;&nbsp;&nbsp;&nbsp;fi<br />
}<br />
</span></div>
<br />
改为：<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">function&nbsp;create_wine_prefix&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;which&nbsp;winepath&nbsp;</span><span style="color: #000000;">&amp;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;&nbsp;then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;winepath&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;&amp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;)&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;debugPipe<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error&nbsp;$MSG_ERROR_NO_WINEPREFIXCREATE<br />
&nbsp;&nbsp;&nbsp;&nbsp;fi<br />
}<br />
</span></div>
<br />
保存后重新运行./ies4linux安装即可。<br />
<br />
<span style="color: red;">PS：因为没有需要，所以我安装的时候没有安装flash player。</span><br />
<img src ="http://www.blogjava.net/jia8zy/aggbug/331569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jia8zy/" target="_blank">YY</a> 2010-09-09 20:15 <a href="http://www.blogjava.net/jia8zy/archive/2010/09/09/331569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 10.04 安装oracle 10g</title><link>http://www.blogjava.net/jia8zy/archive/2010/07/13/325930.html</link><dc:creator>YY</dc:creator><author>YY</author><pubDate>Tue, 13 Jul 2010 02:19:00 GMT</pubDate><guid>http://www.blogjava.net/jia8zy/archive/2010/07/13/325930.html</guid><wfw:comment>http://www.blogjava.net/jia8zy/comments/325930.html</wfw:comment><comments>http://www.blogjava.net/jia8zy/archive/2010/07/13/325930.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jia8zy/comments/commentRss/325930.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jia8zy/services/trackbacks/325930.html</trackback:ping><description><![CDATA[<p>（摘自Ubuntu中文论坛 作者：孙高勇）</p>
<p>http://wiki.ubuntu.org.cn/%E9%A6%96%E9%A1%B5/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9C%8D%E5%8A%A1/Oracle%E6%9C%8D%E5%8A%A1%E4%B9%8B%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97</p>
<p>本文是在 ununtu linux 下 Oracle10g 的安装笔记。我假设您已经成功的安装并配置了Ubuntu
Linux。并且安装好了 gcc, make, binutils, lesstif2, libc6, and rpm libaio1 awk
rpm j2re 的运行环境,可通过 apt-get install 完成安装(ununtu 和 debian 的这种安装方式蛮方便的)。</p>
<ul>
    <li>创建用户和组<br />
    oracle 安装需要两个 unix 用户组和一个运行时的 oracle 用户。</li>
</ul>
<pre>#sudo addgroup oinstall<br />
$sudo addgroup dba<br />
$sudo addgroup nobody<br />
$sudo useradd -m -s /bin/bash oracle<br />
<br />
# 设置oracle用户密码<br />
$sudo passwd oracle<br />
$sudo gpasswd -a oracle oinstall<br />
$sudo gpasswd -a oracle dba<br />
$usermod -g nobody nobody</pre>
<ul>
    <li>创建目录<br />
    有很多文档，建议您将 oracle
    安装到一个独立的分区上面。比如：/opt。请您根据您的需要选择合适自己的安装目录。在本文档中，我们假设 Oracle
    的安装目录为/opt/ora10。确保有至少 3.0G 的可用空间。</li>
</ul>
<pre>#mkdir -p /opt/ora10<br />
#chown -R oracle:oinstall /opt/ora*<br />
#chmod -R 775 /opt/ora*</pre>
<p>您生成了 oracle 的运行时路径，并且授写权限给 oracle 用户，执行权限给 dba 组。</p>
<ul>
    <li>设置内核参数
    <ul>
        <li>修改 sysctl.conf<br />
        添加如下的行到/etc/sysctl.conf 中：</li>
    </ul>
    </li>
</ul>
<pre># 这个最大内存要实现情况给，底下是给了3000M<br />
<br />
kernel.shmmax = 3147483648<br />
kernel.shmmni = 4096<br />
kernel.shmall = 2097152<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 65536<br />
net.ipv4.ip_local_port_range = 1024 65000</pre>
<p><em><strong>注：</strong>shmmax(最大共享内存)是一个很重要参数，根据您的机器的内存来设定。如果您设置不合适的
话，在创建数据库到约 86%的时候就会挂掉。祝您好运。<sup>_</sup></em></p>
<ul>
    <li>
    <ul>
        <li>修改 limits.conf<br />
        添加下面的行到/etc/security/limits.conf 以修改你的资源限制：</li>
    </ul>
    </li>
</ul>
<pre>oracle soft nofile 65536<br />
oracle hard nofile 65536<br />
oracle soft nproc 16384<br />
oracle hard nproc 16384</pre>
<ul>
    <li>
    <ul>
        <li>让修改生效<br />
        修改了以上文件后，您必须让其生效，您重启系统，或者切换到 root 用户下用以下的方式改变内核运行参数：</li>
    </ul>
    </li>
</ul>
<pre>#sysctl -p</pre>
<ul>
    <li>
    <ul>
        <li>创建程序链接</li>
    </ul>
    </li>
</ul>
<pre>#ln -s /usr/bin/awk /bin/awk<br />
#ln -s /usr/bin/rpm /bin/rpm<br />
#ln -s /usr/bin/basename /bin/basename</pre>
<ul>
    <li>设置 Oracle 用户环境<br />
    以 oracle 用户登录：</li>
</ul>
<pre>~$su oracle</pre>
<p>修改~/.bash_profile （也有可能是.profile）文件，去掉下列三行的注释符，使.bashrc 文件生效：</p>
<pre>#if [ -f ~/.bashrc ]; then<br />
# . ~/.bashrc<br />
#fi</pre>
<p>ununtu 默认是没有注释的，debian 用户需要取消掉这个。<br />
添加下列行到~/.bashrc:</p>
<pre># oracle 10g<br />
export ORACLE_BASE=/opt/ora10<br />
export ORACLE_HOME=/opt/ora10<br />
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH<br />
export ORACLE_OWNER=oracle<br />
export ORACLE_SID=compiere<br />
export ORACLE_TERM=xterm<br />
# Edit paths<br />
export LD_LIBRARY_PATH=/usr/lib:/lib/:$LD_LIBRARY_PATH:/opt/ora10/lib:/opt/ora10/lib/stubs/<br />
export PATH=/opt/ora10/bin:$PATH</pre>
<p><br />
我是将上面的内容保存到另一个文件中，.bash_oracle，然后在.bashrc 中使用 source.bash_oracle 进行调用
的。您可以根据您的好恶进行设置。您需要注意的是，ORACLE_BASE 和ORACLE_HOME 的设置一定得和您在前面创建的目录相符。
ORACLE_SID 是默认数据库的名称，在本文档中，我们假设默认的数据库名叫 compiere，如果您想用其他的名字，请您作相应的修改。</p>
<ul>
    <li>执行安装
    <ul>
        <li>交换分区的调整<br />
        以 oracle 用户启动 X，进行安装。<br />
        差点忘了，为了安装 Oracle 10g,oracle 推荐至少 512M 内存和至少 400M
        交换空间。内存，好象不够关系也不大，但是交换分区呢，您还是大方一点吧。如果您的交换分区不够 400M，那么您还是先看看这一步吧。</li>
    </ul>
    </li>
</ul>
<pre>重设交换分区可以使用如下操作：<br />
<br />
shell# dd if=/dev/zero of=tmp_swap bs=1k count=900000<br />
shell# chmod 600 tmp_swap<br />
shell# mkswap tmp_swap<br />
shell# swapon tmp_swap<br />
<br />
完成安装以后，可以释放这个空间：<br />
<br />
shell# swapoff tmp_swap<br />
shell# rm tmp_swap<br />
<br />
count 值是根据您需要调整的交换分区大小而定。</pre>
<ul>
    <li>
    <ul>
        <li>安装前的准备<br />
        终于可以安装了。我们假设下载的安装文件位于/home/sungaoyong/oracle 下，名称为
        10201_database_linux32.zip 解压后。 创建一个文件 /etc/redhat-release:添加如下内容。</li>
    </ul>
    </li>
</ul>
<pre>Red Hat Linux release 3.1 (drupal)</pre>
<p>安装了的话， 这一步是也没有必要。</p>
<p> </p>
<p>oracle 将会把系统认为是 redhat 3 了：）</p>
<ul>
    <li>java 中文的显示<br />
    进入 java 的安装路径</li>
</ul>
<pre>$ cd /usr/lib/j2se/1.4/lib<br />
$ sudo cp font.properties.zh_CN_UTF8.Sun font.properties</pre>
<p>将最下面的一行改为如下：</p>
<pre>filename.-misc-fzsongti-medium-r-normal--*-%d-*-*-p-*-iso10646- 1=/usr/share/fonts/VeraSansYuanTi/VeraSansYuanTi-Regular.ttf<br />
appendedfontpath=/usr/share/fonts/VeraSansYuanTi</pre>
<p>java 就支持中文显示了。以上这步，在java6中是无效的，因为java6的字体配置不是这样子的.</p>
<ul>
    <li>
    <ul>
        <li>运行 Installer<br />
        进入 oracle 数据库解压的目录</li>
    </ul>
    </li>
</ul>
<pre>./runInstaller -jreLoc /usr/lib/j2se/1.4/jre</pre>
<p>指定 jre 的目的就是始安装界面可以显示中文，否则安装界面的中文都是小框框，不信试试，嘿嘿！接下的一般选择默认设置就可以了。</p>
<p>以上这步，如果你安装的是java6，那么还是请你用</p>
<pre>export LANG=en_CN</pre>
<p>比较好， 直接使用英文环境来安装，
因为在安装界面用上面所说的方法，确实是中文了，但到后面的数据库配置界面，又会重新变回小方块。所以还是推荐大家直接用英文环境来安装吧。</p>
<ul>
    <li>启动数据库
    <ul>
        <li>启动</li>
    </ul>
    </li>
</ul>
<pre>$ sqlplus " scott/tiger as sysdba"</pre>
<p>将出现如下连接数据库信息：</p>
<pre>SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 3 月 24 16:23:27 2004<br />
<br />
Copyright (c) 1982, 2004, Oracle. All rights reserved.<br />
<br />
连接到:<br />
<br />
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production<br />
<br />
With the Partitioning, OLAP and Data Mining options<br />
<br />
SQL&gt;</pre>
<p>表明登录数据库系统成功，运行 startup 命令启动数据库。</p>
<pre>SQL&gt; startup<br />
<br />
ORACLE instance started.<br />
<br />
Total System Global Area 336356520 bytes<br />
<br />
Fixed Size 279720 bytes<br />
<br />
Variable Size 268435456 bytes<br />
<br />
Database Buffers 67108864 bytes<br />
<br />
Redo Buffers 532480 bytes<br />
<br />
Database mounted.<br />
<br />
Database opened.<br />
<br />
SQL&gt;</pre>
<p>表示数据库正常启动。</p>
<ul>
    <li>
    <ul>
        <li>关闭 Oracle10g 数据库</li>
    </ul>
    </li>
</ul>
<pre>$ sqlplus "scott/tiger as sysdba" //以 sysdba 用户登录数据库</pre>
<p>成功登录数据库系统后，运行 shudown 命令关闭数据库。</p>
<pre>SQL&gt; shutdown</pre>
<ul>
    <li>
    <ul>
        <li>启动 Oracle10g 监听程序<br />
        Oracle 的监听程序主要是为客户端的连接提供接口，在控制台窗口键入如下命令：</li>
    </ul>
    </li>
</ul>
<pre>$ lsnrctl</pre>
<p>将出现如下监听程序信息：</p>
<pre>LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 24-3 月 -2004 16:59:51<br />
<br />
Copyright (c) 1991, 2004, Oracle. All rights reserved.<br />
<br />
欢迎来到 LSNRCTL, 请键入"help"以获得信息。<br />
<br />
LSNRCTL&gt;</pre>
<p>表明登录监听程序控制台成功，运行 start 命令启动监听程序。</p>
<pre>LSNRCTL&gt; start</pre>
<p>将出现监听程序的一系列启动和配置情况信息列表。信息行的最后一行是&#8220;The command completed
successfully&#8221;字样时，监听程序启动成功。</p>
<ul>
    <li>
    <ul>
        <li>关闭 Oracle10g 监听程序<br />
        运行 stop 命令关闭监听程序。</li>
    </ul>
    </li>
</ul>
<pre>LSNRCTL&gt; stop</pre>
<ul>
    <li>创建自启动脚本<br />
    创建 oracledb 脚本到/etc/init.d/oracledb,内容如下</li>
</ul>
<pre>#!/bin/bash<br />
<br />
#<br />
# /etc/init.d/oracledb<br />
<br />
#<br />
# Run-level Startup script for the Oracle Instance, Listener, and<br />
# Web Interface<br />
export ORACLE_HOME=/opt/ora10<br />
export ORACLE_SID=compiere<br />
export PATH=$PATH:$ORACLE_HOME/bin<br />
ORA_OWNR="oracle"<br />
# if the executables do not exist -- display error<br />
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]<br />
then<br />
echo "Oracle startup: cannot start"<br />
exit 1<br />
fi<br />
# depending on parameter -- startup, shutdown, restart<br />
# of the instance and listener or usage display<br />
case "$1" in<br />
start)<br />
# Oracle listener and instance startup<br />
echo -n "Starting Oracle: "<br />
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"<br />
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart<br />
touch /var/lock/oracle<br />
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole<br />
echo "OK"<br />
;;<br />
stop)<br />
# Oracle listener and instance shutdown<br />
echo -n "Shutdown Oracle: "<br />
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"<br />
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut<br />
rm -f /var/lock/oracle<br />
su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole<br />
echo "OK"<br />
;;<br />
reload|restart)<br />
$0 stop<br />
$0 start<br />
;;<br />
***)<br />
echo "Usage: `basename $0` start|stop|restart|reload"<br />
exit 1<br />
esac<br />
exit 0</pre>
<p>设置权限，放到启动脚本中去</p>
<pre>#chmod 755 /etc/init.d/oracledb<br />
#update-rc.d oracledb defaults 99</pre>
<ul>
    <li>使用企业管理器<br />
    启动控制台</li>
</ul>
<pre>#emctl start dbconsole</pre>
<p>访问数据库控制器<a href="http://localhost.localdomain:1158/em/" class="external free" title="http://localhost.localdomain:1158/em/" rel="nofollow">http://localhost.localdomain:1158/em/</a> 要提供 sys/passwd
as sysdba; 你要从一个客户端浏览器访问 em 数据库控制器,必须要运行 dbconsole 进程.安装之后,dbconsole
进程是自动会启动的.然后,如果这个集成没有启动,你可以向下面的命令行手工的启动它:</p>
<pre>#cd $ORACLE_HOME/bin<br />
#emctl start dbconsole</pre>
<p>这样你就可以打开 web 浏览器,输入下面的 <a href="http://hostnameortnumber/em" class="external free" title="http://hostnameortnumber/em" rel="nofollow">http://hostnameortnumber/em</a>
来访问 em db control. host 那么是你的计算机的名字或地址.portnumber 是 em db control http
的端口号,这是在安装的时候指定的.默认的是 1158 ,你可以在$ORACLE_HOME/install/portlist.ini
文件中找到这个值.<br />
如果实例启动了,EM 就会显示 db control 登录页.你必须使用授权访问 db control 的用户登录到数据库.一开始是 sys
用户,使用在安装的时候你确定的 sys 用户的密码.从 connect as 下拉框选 sysdba,然后点登录.这样就会出现
dbcontrol 的主页.这是同 Oracle 9i 的不同的。其它的大家共同学习吧！</p>


<img src ="http://www.blogjava.net/jia8zy/aggbug/325930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jia8zy/" target="_blank">YY</a> 2010-07-13 10:19 <a href="http://www.blogjava.net/jia8zy/archive/2010/07/13/325930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ibatis eclipse plugin Abator配置使用简单说明</title><link>http://www.blogjava.net/jia8zy/archive/2007/08/19/137964.html</link><dc:creator>YY</dc:creator><author>YY</author><pubDate>Sun, 19 Aug 2007 11:09:00 GMT</pubDate><guid>http://www.blogjava.net/jia8zy/archive/2007/08/19/137964.html</guid><wfw:comment>http://www.blogjava.net/jia8zy/comments/137964.html</wfw:comment><comments>http://www.blogjava.net/jia8zy/archive/2007/08/19/137964.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/jia8zy/comments/commentRss/137964.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jia8zy/services/trackbacks/137964.html</trackback:ping><description><![CDATA[<strong>安装：<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eclipse自动安装url： http://ibatis.apache.org/tools/abator<br><br><strong>配置：</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装好后将在New菜单中看到一个新的文件类型Abator for iBATIS Configuration File<font face="Courier New">，这个是Abator的配置文件，new一个并修改配置文件，配置样式如下所示：<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">&lt;?</span><span style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="COLOR: #0000ff">?&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;!</span><span style="COLOR: #ff00ff">DOCTYPE&nbsp;abatorConfiguration&nbsp;PUBLIC&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Abator&nbsp;for&nbsp;iBATIS&nbsp;Configuration&nbsp;1.0//EN"<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;"http://ibatis.apache.org/dtd/abator-config_1_0.dtd"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">abatorConfiguration</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">abatorContext&nbsp;</span><span style="COLOR: #ff0000">generatorSet</span><span style="COLOR: #0000ff">="Java5"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">&nbsp;TODO:&nbsp;Add&nbsp;Database&nbsp;Connection&nbsp;Information&nbsp;</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jdbcConnection&nbsp;</span><span style="COLOR: #ff0000">driverClass</span><span style="COLOR: #0000ff">="oracle.jdbc.driver.OracleDriver"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connectionURL</span><span style="COLOR: #0000ff">="jdbc:oracle:thin:@127.0.0.1:1521:orcl"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userId</span><span style="COLOR: #0000ff">="user"</span><span style="COLOR: #ff0000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password</span><span style="COLOR: #0000ff">="password"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">&nbsp;注意：以下的classPathEntry一定要设置，否则会出现Exception&nbsp;JDBC&nbsp;Driver的错误&nbsp;</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">classPathEntry&nbsp;</span><span style="COLOR: #ff0000">location</span><span style="COLOR: #0000ff">="D:/workspace/lib/ojdbc14_g.jar"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jdbcConnection</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">javaModelGenerator&nbsp;</span><span style="COLOR: #ff0000">targetPackage</span><span style="COLOR: #0000ff">="com.iamyy.test.ibatis.vo"</span><span style="COLOR: #ff0000">&nbsp;targetProject</span><span style="COLOR: #0000ff">="AbatorTest"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">sqlMapGenerator&nbsp;</span><span style="COLOR: #ff0000">targetPackage</span><span style="COLOR: #0000ff">="com.iamyy.test.ibatis.dao"</span><span style="COLOR: #ff0000">&nbsp;targetProject</span><span style="COLOR: #0000ff">="AbatorTest"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">daoGenerator&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">="IBATIS"</span><span style="COLOR: #ff0000">&nbsp;targetPackage</span><span style="COLOR: #0000ff">="com.iamyy.test.ibatis.dao"</span><span style="COLOR: #ff0000">&nbsp;targetProject</span><span style="COLOR: #0000ff">="AbatorTest"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">table&nbsp;</span><span style="COLOR: #ff0000">tableName</span><span style="COLOR: #0000ff">="T_Role"</span><span style="COLOR: #ff0000">&nbsp;domainObjectName</span><span style="COLOR: #0000ff">="Role"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">generatedKey&nbsp;</span><span style="COLOR: #ff0000">column</span><span style="COLOR: #0000ff">="role_id"</span><span style="COLOR: #ff0000">&nbsp;identity</span><span style="COLOR: #0000ff">="true"</span><span style="COLOR: #ff0000">&nbsp;sqlStatement</span><span style="COLOR: #0000ff">="select&nbsp;s_role.nextval&nbsp;from&nbsp;dual"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">columnOverride&nbsp;</span><span style="COLOR: #ff0000">column</span><span style="COLOR: #0000ff">="role_id"</span><span style="COLOR: #ff0000">&nbsp;property</span><span style="COLOR: #0000ff">="id"</span><span style="COLOR: #ff0000">&nbsp;javaType</span><span style="COLOR: #0000ff">="java.lang.String"</span><span style="COLOR: #ff0000">&nbsp;jdbcType</span><span style="COLOR: #0000ff">="VARCHAR"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">columnOverride&nbsp;</span><span style="COLOR: #ff0000">column</span><span style="COLOR: #0000ff">="role_name"</span><span style="COLOR: #ff0000">&nbsp;property</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #ff0000">&nbsp;javaType</span><span style="COLOR: #0000ff">="java.lang.String"</span><span style="COLOR: #ff0000">&nbsp;jdbcType</span><span style="COLOR: #0000ff">="VARCHAR"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">table</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">abatorContext</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">abatorConfiguration</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>&nbsp;&nbsp;&nbsp;</font> abatorContext的一个属性generatorSet有3个选项Legacy、Java2、Java5，一般用Java5;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Legacy：如果没有generatorSet属性的话，默认是Legacy。但并不推荐使用Legacy因为它在生成Example类（用于查询条件）的时候有很多限制，他将查询条件写在sqlMap配置文件中，将查询值写在Example中，这样就对修改产生一些困难。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Java2和Java5：他们只支持iBATIS 2.20以上的版本。在以这个模式成生的Example文件中包含了查询条件和查询值。这样修改就方便多了，对于用join的select时的查询就更方 便了，自己可以定义查询条件，自由度高了很多（对于join的and查询可能还得自己修改一下Example代码）。对于or和and的应用Legacy 的限制就比较大了。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;javaModelGenerator&gt;、 &lt;sqlMapGenerator&gt;、 &lt;daoGenerator&gt;描述了个自生成的位置。&lt;daoGenerator&gt;中type属性则用来告诉abator生成的DAO是用于iBATIS还是SPRING等容器。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&gt;告诉abator生成那个table的sqlMap。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;generatedKey&gt;来告诉abator那些列需要自动返回值（当插入的时候可以返回插入记录的主键，这对有外键的数据库极其有用）identity默认为false，则在sqlMap配置文件中&lt;selectKey&gt;的位置在sql命令前面，所以identity应该改为true。根据数据库类型的不同sqlStatement属性取值也不同。<br></p>
<p><strong><br>运行：</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;右键单击配置文件，点击Generate iBatis Artifacts，生成文件。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>ps: 如果&lt;daoGenerator&gt;中type属性是ibatis的话，由于Abator生成的DAOImpl文件继承自com.ibatis.dao.client.template.SqlMapDaoTemplate，在ibatis ver. 2.3.0.677中会有错误提示，需酌情修改。<br></em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em>ps的ps: 不建议使用自动生成的Example去操作数据，一是因为Example中生成的方法有拼写SQL之嫌不符合OO思想，二是拼写后SQL效率有待进一步考证，没仔细看，但至少看到not in语句，如果要使用的话至少要进行一些修改。(^-^)个人愚见。</em><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;参考：Abator document: <a href="http://ibatis.apache.org/docs/tools/abator/">http://ibatis.apache.org/docs/tools/abator/</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a class=blog_name href="http://pigdogyourmother.yculblog.com/"><font color=#5f9ea0>枫</font></a>&nbsp;&nbsp;<a class=post_title href="http://pigdogyourmother.yculblog.com/post.1641016.html" rel=follow><strong><font color=#000080>iBATIS的Eclipse插件Abator使用方法</font></strong></a></p>
<img src ="http://www.blogjava.net/jia8zy/aggbug/137964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jia8zy/" target="_blank">YY</a> 2007-08-19 19:09 <a href="http://www.blogjava.net/jia8zy/archive/2007/08/19/137964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ibatis操作oracle数据库时，空值(null)异常的不完全解决方法</title><link>http://www.blogjava.net/jia8zy/archive/2007/08/16/137311.html</link><dc:creator>YY</dc:creator><author>YY</author><pubDate>Thu, 16 Aug 2007 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/jia8zy/archive/2007/08/16/137311.html</guid><wfw:comment>http://www.blogjava.net/jia8zy/comments/137311.html</wfw:comment><comments>http://www.blogjava.net/jia8zy/archive/2007/08/16/137311.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jia8zy/comments/commentRss/137311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jia8zy/services/trackbacks/137311.html</trackback:ping><description><![CDATA[ibatis操作oracle数据库时，如果出现空值，ibatis不是插入NULL,而是出现异常，异常信息大致如下：<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">Caused&nbsp;by:&nbsp;com.ibatis.common.jdbc.exception.NestedSQLException:&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #000000">---</span><span style="COLOR: #000000">&nbsp;The&nbsp;error&nbsp;occurred&nbsp;in [someSqlMapFile.xml]</span><span style="COLOR: #000000">.&nbsp;&nbsp;<br></span><span style="COLOR: #000000">---</span><span style="COLOR: #000000">&nbsp;The&nbsp;error&nbsp;occurred&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;applying&nbsp;a&nbsp;parameter&nbsp;map.&nbsp;&nbsp;<br></span><span style="COLOR: #000000">---</span><span style="COLOR: #000000">&nbsp;Check&nbsp;the&nbsp;insertUser</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">InlineParameterMap.&nbsp;&nbsp;<br></span><span style="COLOR: #000000">---</span><span style="COLOR: #000000">&nbsp;Check&nbsp;the&nbsp;parameter&nbsp;mapping&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;the&nbsp;</span><span style="COLOR: #000000">'[</span><span style="COLOR: #000000">someProperty</span><span style="COLOR: #000000">]'</span><span style="COLOR: #000000">&nbsp;property.&nbsp;&nbsp;<br></span><span style="COLOR: #000000">---</span><span style="COLOR: #000000">&nbsp;Cause:&nbsp;java.sql.SQLException:&nbsp;无效的列类型<br>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:</span><span style="COLOR: #000000">91</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:</span><span style="COLOR: #000000">447</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:</span><span style="COLOR: #000000">82</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:</span><span style="COLOR: #000000">59</span><span style="COLOR: #000000">)<br></span></div>
<br><br>如果你先插入空值，必须告诉IBatis当该字段出现NULL值该用什么值来替代,方法有2种，如下:<br><br>方法一(parameterClass):<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">1</span>&nbsp;<span style="COLOR: #000000">INSERT&nbsp;INTO&nbsp;TEST(ID,&nbsp;NAME,&nbsp;PASSWD)&nbsp;VALUES&nbsp;(#id#,#name#,&nbsp;#passwd:VARCHAR:NULL#)</span></div>
<br>支持的类型在 java.sql.Types 中列示出来了<br>注意：DATA 类型默认不能为NULL<br><br>方法二(parameterMap):<br><span style="FONT-WEIGHT: bold; TEXT-DECORATION: underline">使用这个方法时，首先应保证你的Oracle jdbc driver是10G以上版本，不然也是白搭。</span><br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameterMap&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="insert-person-paraMap"</span><span style="COLOR: #ff0000">&nbsp;class</span><span style="COLOR: #0000ff">="com.unmi.Person"</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter&nbsp;</span><span style="COLOR: #ff0000">property</span><span style="COLOR: #0000ff">="id"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter&nbsp;</span><span style="COLOR: #ff0000">property</span><span style="COLOR: #0000ff">="name"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">parameter&nbsp;</span><span style="COLOR: #ff0000">property</span><span style="COLOR: #0000ff">="passwd"</span><span style="COLOR: #ff0000">&nbsp;jdbcType</span><span style="COLOR: #0000ff">="VARCHAR"</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">parameterMap</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #008000">&lt;!--</span><span style="COLOR: #008000">&nbsp;插入一条Person对应的记录到数据库中&nbsp;</span><span style="COLOR: #008000">--&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">insert&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">="insertPerson"</span><span style="COLOR: #ff0000">&nbsp;parameterMap</span><span style="COLOR: #0000ff">="insert-person-paraMap"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;INSERT&nbsp;INTO&nbsp;PERSON&nbsp;(ID,&nbsp;NAME,&nbsp;PASSWD)&nbsp;VALUES&nbsp;(?,?,?)<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000"></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">insert</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000"></span></div>
<br><span style="FONT-SIZE: 10pt; FONT-STYLE: italic">参考：http://www.blogjava.net/fatbear/archive/2007/06/07/122607.html&nbsp; </span><br style="FONT-STYLE: italic"><span style="FONT-STYLE: italic">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iBatis 应用程序向 Oralce 数据表字段插入 NULL 值 </span><br style="FONT-STYLE: italic"><span style="FONT-STYLE: italic">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 作者：肥熊熊</span><br>
<img src ="http://www.blogjava.net/jia8zy/aggbug/137311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jia8zy/" target="_blank">YY</a> 2007-08-16 16:18 <a href="http://www.blogjava.net/jia8zy/archive/2007/08/16/137311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Delphi 7使用DBExpress中的SQLConnection连接SQLSERVER数据库出错原因及解决</title><link>http://www.blogjava.net/jia8zy/archive/2006/09/16/70054.html</link><dc:creator>YY</dc:creator><author>YY</author><pubDate>Sat, 16 Sep 2006 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/jia8zy/archive/2006/09/16/70054.html</guid><wfw:comment>http://www.blogjava.net/jia8zy/comments/70054.html</wfw:comment><comments>http://www.blogjava.net/jia8zy/archive/2006/09/16/70054.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jia8zy/comments/commentRss/70054.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jia8zy/services/trackbacks/70054.html</trackback:ping><description><![CDATA[
		<p>安装完Delphi 7后，使用DBExpress中的SQLConnection连接MS SQLSERVER时，如果数据库的sa用户没有设置密码的话，会提示出错。这是因为缺少一个补丁程序，可以去网上搜索：dbExpress Driver Patch1，下载这个补丁并安装，问题应该可以解决。<br />ps:如果Delphi是安装在除C盘外其它盘符，使用SQLConnection会找不到数据库驱动信息，需要修改注册表，将安装过补丁后的C:\Program Files\Common FIles\Borland*改成你自己的盘符。<br /><br />    有问题可以跟我联系：<a href="mailto:yy-man@163.com">yy-man@163.com</a></p>
		<p> </p>
<img src ="http://www.blogjava.net/jia8zy/aggbug/70054.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jia8zy/" target="_blank">YY</a> 2006-09-16 17:17 <a href="http://www.blogjava.net/jia8zy/archive/2006/09/16/70054.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>commons DBCP 配置参数简要说明</title><link>http://www.blogjava.net/jia8zy/archive/2006/04/20/42133.html</link><dc:creator>YY</dc:creator><author>YY</author><pubDate>Thu, 20 Apr 2006 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/jia8zy/archive/2006/04/20/42133.html</guid><wfw:comment>http://www.blogjava.net/jia8zy/comments/42133.html</wfw:comment><comments>http://www.blogjava.net/jia8zy/archive/2006/04/20/42133.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/jia8zy/comments/commentRss/42133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jia8zy/services/trackbacks/42133.html</trackback:ping><description><![CDATA[
		<p>　　前段时间因为项目原因，要在修改数据库连接池到DBCP上，折腾了半天，有一点收获，不敢藏私，特在这里与朋友们共享。<br />　　在配置时，主要难以理解的主要有：removeAbandoned 、logAbandoned、removeAbandonedTimeout、maxWait这四个参数，设置了rmoveAbandoned=true那么在getNumActive()快要到getMaxActive()的时候，系统会进行无效的Connection的回收，回收的Connection为removeAbandonedTimeout(默认300秒)中设置的秒数后没有使用的Connection，激活回收机制好像是getNumActive()=getMaxActive()-2。 :) 有点忘了。<br />　　logAbandoned=true的话，将会在回收事件后，在log中打印出回收Connection的错误信息，包括在哪个地方用了Connection却忘记关闭了，在调试的时候很有用。<br />　　在这里私人建议maxWait的时间不要设得太长，maxWait如果设置太长那么客户端会等待很久才激发回收事件。<br />　　以下是我的配置的properties文件：<br />#连接设置<br />jdbc.driverClassName=oracle.jdbc.driver.OracleDriver<br />jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:DBSERVER<br />jdbc.username=user<br />jdbc.password=pass</p>
		<p>#&lt;!-- 初始化连接 --&gt;<br />dataSource.initialSize=10</p>
		<p>#&lt;!-- 最大空闲连接 --&gt;<br />dataSource.maxIdle=20</p>
		<p>#&lt;!-- 最小空闲连接 --&gt;<br />dataSource.minIdle=5</p>
		<p>#最大连接数量<br />dataSource.maxActive=50</p>
		<p>#是否在自动回收超时连接的时候打印连接的超时错误<br />dataSource.logAbandoned=true</p>
		<p>#是否自动回收超时连接<br />dataSource.removeAbandoned=true</p>
		<p>#超时时间(以秒数为单位)<br />dataSource.removeAbandonedTimeout=180</p>
		<p>#&lt;!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 --&gt;<br />dataSource.maxWait=1000<br /><br />　　以下是我在连接控制中调用的方法：<br /><br />        Properties  dbProps=null;<br />　　//下面的读取配置文件可以根据实际的不同修改<br />        dbProps = ConfigProperties.getInstance().getProperties("jdbc.properties");<br />        try {<br />         String driveClassName = dbProps.getProperty("jdbc.driverClassName");<br />         String url = dbProps.getProperty("jdbc.url");<br />         String username = dbProps.getProperty("jdbc.username");<br />         String password = dbProps.getProperty("jdbc.password");<br />         <br />         String initialSize = dbProps.getProperty("dataSource.initialSize");<br />         String minIdle = dbProps.getProperty("dataSource.minIdle");<br />         String maxIdle = dbProps.getProperty("dataSource.maxIdle");<br />         String maxWait = dbProps.getProperty("dataSource.maxWait");<br />         String maxActive = dbProps.getProperty("dataSource.maxActive");<br />           //是否在自动回收超时连接的时候打印连接的超时错误<br />          boolean logAbandoned = (Boolean.valueOf(dbProps.getProperty("dataSource.logAbandoned","false"))).booleanValue();</p>
		<p>          //是否自动回收超时连接<br />          boolean removeAbandoned = (Boolean.valueOf(dbProps.getProperty("dataSource.removeAbandoned","false"))).booleanValue();</p>
		<p>          //超时时间(以秒数为单位)<br />          int removeAbandonedTimeout = Integer.parseInt(dbProps.getProperty("dataSource.removeAbandonedTimeout","300"));<br />        <br />         dataSource = new BasicDataSource();<br />         dataSource.setDriverClassName(driveClassName);<br />         dataSource.setUrl(url);<br />         dataSource.setUsername(username);<br />         dataSource.setPassword(password);</p>
		<p>         //初始化连接数<br />         if(initialSize!=null)<br />          dataSource.setInitialSize(Integer.parseInt(initialSize));<br />         <br />         //最小空闲连接<br />         if(minIdle!=null)<br />          dataSource.setMinIdle(Integer.parseInt(minIdle));</p>
		<p>         //最大空闲连接<br />         if(maxIdle!=null)<br />          dataSource.setMaxIdle(Integer.parseInt(maxIdle));<br />         <br />         //超时回收时间(以毫秒为单位)<br />         if(maxWait!=null)<br />          dataSource.setMaxWait(Long.parseLong(maxWait));<br />         <br />         //最大连接数<br />         if(maxActive!=null){<br />          if(!maxActive.trim().equals("0"))<br />           dataSource.setMaxActive(Integer.parseInt(maxActive));<br />         }</p>
		<p>         System.out.println("logAbandoned="+logAbandoned);<br />            dataSource.setLogAbandoned(logAbandoned);<br />         dataSource.setRemoveAbandoned(removeAbandoned);<br />         dataSource.setRemoveAbandonedTimeout(removeAbandonedTimeout);<br />         <br />         Connection conn = dataSource.getConnection();<br />         if(conn==null){<br />          log("创建连接池时,无法取得连接!检查设置!!!");<br />         }else{<br />          conn.close();<br />         }<br />         System.out.println("连接池创建成功!!!");<br />        }<br />        catch (Exception e) {<br />         e.printStackTrace();<br />            System.out.println("创建连接池失败!请检查设置!!!");<br />        }<br /><br />　　有使用问题或建议可与我联系：<a href="mailto:yy-man@163.com">yy-man@163.com</a><br />      <br />         2006-04-20   By: 小土</p>
<img src ="http://www.blogjava.net/jia8zy/aggbug/42133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jia8zy/" target="_blank">YY</a> 2006-04-20 11:49 <a href="http://www.blogjava.net/jia8zy/archive/2006/04/20/42133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>