﻿<?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-网摘-文章分类-MySQL</title><link>http://www.blogjava.net/jvict/category/33912.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 14 Jan 2010 21:37:43 GMT</lastBuildDate><pubDate>Thu, 14 Jan 2010 21:37:43 GMT</pubDate><ttl>60</ttl><item><title>FreeBSD 8 mysql apache php java整合</title><link>http://www.blogjava.net/jvict/articles/309446.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Thu, 14 Jan 2010 05:47:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/309446.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/309446.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/309446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/309446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/309446.html</trackback:ping><description><![CDATA[<strong>1.下载安装FreeBSD 8，ＤＶＤ１<br />
2.安装mysql 5 - 利用ports安装<br />
</strong><font size="2">cd /usr/ports/databases/mysql50-server/ <br />
make install clean # n长的编译过程 <br />
rehash <br />
mysql_install_db --user=mysql <br />
chown -R mysql /var/db/mysql/<br />
chgrp -R mysql /var/db/mysql/<br />
/usr/local/bin/mysqld_safe -user=mysql &amp;<br />
<br />
mysqld_safe－－MySQL服务器启动脚本 <br />
mysqld_safe是在Unix或是NetWare系统推荐使用来启动MySQL服务器的方法。mysqld_safe添加了许多安全的特征，例如，当发生错误时重新启动服务器，并且可以将运行时的信息写入错误日志文件<br />
<br />
<li>The port installation will put a script file mysql-server.sh<br />
in /usr/local/etc/rc.d which will has capability to start MySQL server.<br />
To enable MySQL server to start automatically after every FreeBSD<br />
server reboot, enter the following command in CLI:
<p><span style="color: red">echo &#8216;mysql_enable=&#8221;YES&#8221;&#8216; &gt;&gt; /etc/ rc.conf<br />
</span></p>
<p>mysqladmin -u root password newpassword (改变root帐户密码）<br />
</p>
<li>MySQL 5.0 installation done. <br />
------------------------------------------------------------------------<br />
<strong>3.安装 Apache Web Server 2.2<br />
</strong>Install Apache HTTP Server 2.20 by using FreeBSD Ports Collection: <br />
cd /usr/ports/www/apache22<br />
make install clean<br />
<li>A Apache HTTP Server script apache22.sh is located at<br />
/usr/local/etc/rc.d to provide Apache HTTP Server start and shutdown <font color="#333333">.</font> <br />
service. To enable Apache web server to automatically starts whenever<br />
after server reboots, issue the following command at CLI: <br />
<span style="color: red">echo &#8216;apache22_enable =&#8221;YES&#8221;&#8216; &gt;&gt; /etc/ rc.conf<br />
</span>
<li>To start Apache HTTP web server immediately, use: <br />
/usr/local/sbin/apachectl start<br />
or<br />
/usr/local/etc/rc.d/apache22.sh start<br />
<li>Apache installation finished. <br />
<br />
<strong>4.Installing PHP Hypertext Preprocessor Scripting Language 5 and PHP 5 Extensions<br />
</strong>
<li>Install by enter the following commands on FreeBSD OS command line,<br />
wait for previous command to finish before running the next command: cd /usr/ports/lang/php5<br />
make install clean<br />
<li>If you&#8217;re prompted, select &#8220;use Apache 2.x instead&#8221;. <br />
<li>Continue with the following commands to install PHP5 extensions and modules to enable the support of the modules in Apache: <br />
cd /usr/ports/lang/php5-extensions </font>make config<br />
<li>At Options for php5-extension 1.0 menu, select all PHP<br />
extensions and modules that you may use with Apache webserver. This is<br />
a part of the configuration for PHP, where you need to enable features<br />
of PHP that come in modules, such as ability to manage user sessions,<br />
interface with databases and many others. Default extensions such as<br />
ctype functions support, HASH Message Digest Framework support, session<br />
support and etc have been selected. Other popular extensions that you<br />
most likely to be in used are MySQL database support and GD library<br />
support. Use space bar to select or unselect the extensions and press<br />
Enter when done.
<li>Continue the installation of php5-extensions with the following commands: <br />
make install clean<br />
<li>If there are any message the pops up and prompts you to select<br />
some options or configurations, you can just accept the default<br />
settings by pressing Enter. Some modules that may prompt you for action&nbsp; <br />
include php5-gd, php5-mbstring and php5-sqlite.
<li>Edit the Apache configuration file in order to enable Apache web server to load the PHP modules when initialization: <br />
<li>Go to Apache configuration file location by cd /usr/local/etc/apache2/ <br />
<li>Edit Apache configuration file by vi httpd.conf <br />
<li>Search for LoadModule lines, after the last LoadModule line, but within the same section, add the following 2 lines: <br />
AddType application/x- httpd-php .php<br />
AddType application/x- httpd-php-source .phps<br />
<li>Optionally, copy /usr/local/etc/php.ini-recommended or<br />
/usr/local/etc/php.ini-dist to /usr/local/etc/php.ini (in same<br />
directory), which will enable you to tune and change the default<br />
settings of behaviours of PHP.
<li>Start the Apache HTTP web server by using apachectl start<br />
(or restart Apache HTTP web server by using apachectl restart).<br />
apachectl is located in /usr/local/sbin, if you encounter Command not<br />
found problem, try to change directory to its location.
<li>PHP5 installation done. <font color="#333333">。</font> <br />
A web server has been setup with the FreeBSD with Apache, MySQL and<br />
PHP. The document root of the web server (where you should put your<br />
HTML and PHP files is at /usr/local/www/apache22/data/ and you will<br />
need a SecureFTP (SFTP) client such as WinSCP to upload your files to<br />
web server securely.
<p><br />
<strong>5.安装php后若apache不能启动：<br />
</strong>在 FreeBSD 下安装 apache22 会出现类似的 warming:<br />
No such file or directory: Failed to enable the 'httpready' Accept Filter</p>
<p>解决方案：<br />
#kldload accf_http并在 /boot/defaults/loader.conf 中加入下面 2 行，以便下次启动自动装载模块<br />
accf_data_load="YES"<br />
accf_http_load="YES"<br />
<br />
<strong>问题</strong><br />
[root@freebsd ~]# apachectl -t<br />
httpd: Could not reliably determine the server's fully qualified domain name, using freebsd.web for ServerName</p>
<p>解决方案：<br />
vi /usr/local/etc/apache22/httpd.conf<br />
添加这么一行：<span style="color: red">ServerName 127.0.0.1:80</span></p>
</li>
<img src ="http://www.blogjava.net/jvict/aggbug/309446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2010-01-14 13:47 <a href="http://www.blogjava.net/jvict/articles/309446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PHP_ZendFramework相关备注-PDO_MSQL安装</title><link>http://www.blogjava.net/jvict/articles/305661.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Fri, 11 Dec 2009 15:26:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/305661.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/305661.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/305661.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/305661.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/305661.html</trackback:ping><description><![CDATA[&#183;PDO_MYSQL未安装<br />
之前安装php5.3.1时，未安装PDO_MYSQL扩展，所以ZendFramewok程序做好后无法连接mysql。直接下载PDO_MSQL扩展单独安装时提示mysql.h找不到。<br />
重新编译php5.3.1源码，编译时加上参数<br />
&nbsp;--with-mysql=/usr/local/mysql&nbsp; --with-mysqli=/usr/local/mysql/bin/mysql_config&nbsp; --with-pdo-mysql=/usr/bin/mysql_config<br />
后，程序能正常运行。
 <img src ="http://www.blogjava.net/jvict/aggbug/305661.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2009-12-11 23:26 <a href="http://www.blogjava.net/jvict/articles/305661.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rhel5 LAMP整体环境搭建（discuz）</title><link>http://www.blogjava.net/jvict/articles/261160.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Sat, 21 Mar 2009 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/261160.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/261160.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/261160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/261160.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/261160.html</trackback:ping><description><![CDATA[<p><strong><font style="font-size: 16px"><a href="http://blog.sina.com.cn/s/blog_517e2e1b0100b9jc.html">原文: http://blog.sina.com.cn/s/blog_517e2e1b0100b9jc.html</a><br />
<br />
一、拷贝软件到服务器</font></strong>（Discuz、UCenter、mysql、 php、apache、ZendOptimizer）</p>
<p><font style="font-size: 16px"><strong>二、修改远程登录显示乱码</strong></font></p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 1.编辑：/etc/sysconfig/il8n</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 2.把UTF-8改成GB18030</p>
<p><strong><font style="font-size: 16px">三、关闭不需要的服务（discuz可选）</font></strong></p>
<p># ntsysv</p>
<p>以下仅列出需要启动的服务，未列出的服务一律推荐关闭：</p>
<p>atd</p>
<p>crond</p>
<p>irqbalance</p>
<p>microcode_ctl</p>
<p>network</p>
<p>sendmail</p>
<p>sshd</p>
<p>syslog</p>
<p>&nbsp;<wbr><font style="font-size: 16px"><strong>四、重启</strong></font></p>
<p>&nbsp;<wbr>#init 6</p>
<p><strong><font style="font-size: 16px">五、安装mysql</font></strong></p>
<p>&nbsp;<wbr>1.如果有老版本的rpm包，给他卸载了</p>
<p>&nbsp;<wbr># rpm -e mysql-5.0.45-7.el5 --nodeps</p>
<p>&nbsp;<wbr>--nodeps：参数安装和卸载的时候不考虑依赖关系</p>
<p>&nbsp;<wbr>2. 解压</p>
<p>&nbsp;<wbr>&nbsp;<wbr> #tar -zxvf mysql-5.0.56.tar.gz -C /usr/local/src/</p>
<p>&nbsp;<wbr>&nbsp;<wbr> -C: 解压到制定目录</p>
<p>&nbsp;<wbr>3.进入目录</p>
<p>&nbsp;<wbr> # cd /usr/local/src/mysql-5.0.56/<br />
&nbsp;<wbr>4. 配置安装 (配置前先建立一个mysql文件夹)</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr># ./configure --prefix=/usr/local/mysql/ \<br />
&nbsp;<wbr>&nbsp;<wbr> &gt; --with-extra-charsets=all \</p>
<p>&nbsp;<wbr>&nbsp;<wbr> &gt; --sysconfdir=/etc&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>配置文件的路径</p>
<p>（出现Thank you for choosing MySQL!就成功了）</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>以下可选：</p>
<p>&nbsp;<wbr>&nbsp;<wbr>--localstatedir=/usr/local/mysql/data \&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 数据库存放的路径<br />
&gt; --enable-assembler \&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 使用一些字符函数的汇编版本<br />
&gt; --with-mysqld-ldflags=-all-static \&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 以纯静态方式编译服务端<br />
&gt; --with-charset=utf8 \&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 添加utf8字符支持<br />
&gt; --with-extra-charsets=all&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 添加所有字符支持</p>
<p><br />
&nbsp;<wbr>5 make</p>
<p>&nbsp;<wbr>6 make install</p>
<p>&nbsp;<wbr>7 拷贝一个配置文件，当作以后mysql的配置文件</p>
<p>&nbsp;<wbr>&nbsp;<wbr> # cp /usr/local/mysql/share/mysql/my-large.cnf /etc/my.cnf（出现cp: overwrite `/etc/my.cnf'? y问是否覆盖，因为rpm装过所以有一个原来的，选择y是）</p>
<p>&nbsp;<wbr>！这里添加一个选择项，如果没有用rpm装过，那么系统本身不会有mysql的用户和组，所以要自己建立。</p>
<p>&nbsp;<wbr>&nbsp;<wbr> groupadd mysql</p>
<p>&nbsp;<wbr>&nbsp;<wbr> useradd -g mysql -d m/usr/local/var mysql</p>
<p>&nbsp;<wbr>8 改Mysql用户的宿主目录</p>
<p>&nbsp;<wbr>&nbsp;<wbr> # vi /etc/passwd 找mysql用户，把宿主目录的路径改成/usr/local/mysql/var （var文件夹要自己建立# mkdir /usr/local/mysql/var）</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 建立完了用ll -d var/看下文件夹的属性，发现属主和属组不对，应该是mysql</p>
<p>&nbsp;<wbr>9 改mysql用户宿主目录的属主和属组</p>
<p>&nbsp;<wbr>&nbsp;<wbr> chown -R mysql:mysql /usr/local/mysql/var/</p>
<p>&nbsp;<wbr>&nbsp;<wbr> -R:递归处理</p>
<p>&nbsp;<wbr> 10 切换到mysql用户</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> # su - mysql&nbsp;<wbr></p>
<p>&nbsp;<wbr></p>
<p>&nbsp;<wbr>11 初始化mysql服务器中的数据库，也就是安装数据库</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> $ /usr/local/mysql/bin/mysql_install_db</p>
<p>&nbsp;<wbr>12 启动mysql</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> $ /usr/local/mysql/bin/mysqld_safe &amp;（出现Starting mysqld daemon with databases from /usr/local/var，多按几下回车）</p>
<p><br />
&nbsp;<wbr>13 测试下是否运行</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> $ netstat -tnl |grep 3306&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> （看到 3306 就是mysql 的默认端口，显示3306端口表示成功启动了mysql）</p>
<p>14 登陆mysql</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> $ mysql -uroot</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 显示所有数据库：mysql&gt; show databases;</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> \q:退出</p>
<p>15 设置自动启动</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>1. su - 换成管理员身份</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> # echo "/usr/local/bin/mysqld_safe &amp;" &gt;&gt; /etc/rc.local</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> more /etc/rc.local&nbsp;<wbr> 查看是否添加成功</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>2.这是另外一种方法</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 在<font face="Arial">MySQL</font>二进制包里面有一个叫<font face="Arial">myslq.server</font>的启动脚本程序。把它复制到<font face="Arial">/etc/rc.d/init.d</font>目录里面</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> #cp /usr/local/src/mysql-5.0.56/support-files/mysql.server /etc/rc.d/init.d/mysqld （cp: overwrite `/etc/rc.d/init.d/mysqld'? y询问是否覆盖，选y是）</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 修改/etc/rc.d/init.d/mysqld文件的权限</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> # chmod 700 /etc/rc.d/init.d/mysqld</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 使用 chkconfig<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> #chkconfig --level 35 mysqld on</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> # chkconfig --list mysqld</p>
<p><strong><font style="font-size: 16px">六、安装apache</font></strong></p>
<p>&nbsp;<wbr><wbr> 1 查看gcc环境：#rpm -q gcc</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr>2 <wbr><wbr><wbr>将源码包拷贝到/usr/local/src/目录下</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> #mv httpd-2.2.9.tar.gz php-5.2.6.tar.gz /usr/local/src/</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr><wbr><wbr>3 <wbr>解压</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> #tar zxvf httpd-2.2.9.tar.gz</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr>4 <wbr><wbr>进入目录</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>#cd httpd-2.2.9</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 5 新建apache2文件夹</p>
<p>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> mkdir /usr/local/apache2</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 6 编译前的配置</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> #./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> --prefix=:指定apache安装的目录（如果不指定，就安装到=/usr/local目录下）</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> --enable-so ：开启动态加载模块功能</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> --enable-rewrite:开启rewrite功能</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 7 编译程序</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> #make</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 8 安装已编译好的程序</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> #make install&nbsp;<wbr>&nbsp;<wbr></p>
<p>&nbsp;<wbr>&nbsp;<wbr> 9 apache启动</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> #/usr/local/apache2/bin/apachectl start</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> 查看：#ps -All |grep httpd</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> 在浏览器测试一下，因该能看见：It works!</p>
<p>&nbsp;<wbr><strong><font style="font-size: 16px">七、以模块方式安装php</font></strong></p>
<p>&nbsp;<wbr> 1 解压</p>
<p>&nbsp;<wbr>&nbsp;<wbr> # tar -zxvf php-5.2.6.tar.gz -C /usr/local/src/</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> -C ：配合tar命令，把源码包释放到指定目录</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 2 进入目录</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> # cd /usr/local/src/php-5.2.6&nbsp;<wbr></p>
<p>&nbsp;<wbr>&nbsp;<wbr> 3 编译前配置</p>
<table style="width: 80%" cellspacing="1" cellpadding="3" border="1">
    <tbody>
        <tr>
            <td>
            <p>&nbsp;<wbr># cd php-5.2.6/<br />
            [root@localhost php-5.2.6]# ./configure --prefix=/usr/local/php5 \<br />
            &gt; --with-apxs2=/usr/local/apache2/bin/apxs \<br />
            &gt; --with-config-file-path=/usr/local/php5 \</p>
            <p>&gt; --with-mysql=/usr/local/mysql/</p>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;<wbr></p>
--with-apxs2 ：设置php为apache服务器提供的模块安装的位置
<p><wbr><wbr><wbr>--with-config-file-path ：设置php程序的配置文件所在位置。</p>
<p>--with-mysql=/usr/local/mysql/：设置php为mysql提供模块的位置</p>
<p>&nbsp;<wbr> 4 编译和安装</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr>#<wbr>make ；make install</p>
<p>&nbsp;<wbr> 5 拷贝模板配置文件</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> 因为安装完成后，还没有配置文件，所以把php源码包里的php.ini-dist文件拷贝出来</p>
<p>&nbsp;<wbr>&nbsp;<wbr> # cp php.ini-dist /usr/local/php5/php.ini</p>
<p>&nbsp;<wbr> 6 apache设置</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 打开apache配置文件：/usr/local/apache2/conf/httpd.conf</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>看看是否存在这行：LoadModule php5_module&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> modules/libphp5.so</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 再加入一行 AddType application/x-httpd-php .php （加在AddType application/x-compress .Z<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> AddType application/x-gzip .gz .tgz下面就行）</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 再找到&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>DirectoryIndex关键字：添加 index.php</p>
<p>&nbsp;<wbr> 7 重启apache服务</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> [root@localhost php5]# /usr/local/apache2/bin/apachectl stop<br />
&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>[root@localhost php5]# /usr/local/apache2/bin/apachectl start</p>
<p>&nbsp;<wbr> 8 测试一下</p>
<p>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> 在/usr/local/apache2/htdocs下建立test.php文件</p>
<p>&nbsp;<wbr></p>
<table style="width: 80%" cellspacing="1" cellpadding="3" border="1">
    <tbody>
        <tr>
            <td>&nbsp;<wbr>&lt;?php<br />
            phpinfo();<br />
            ?&gt;</td>
        </tr>
    </tbody>
</table>
<p>&nbsp;<wbr>&nbsp;<wbr> 八 安装ZendOptimizer</p>
<p>&nbsp;<wbr>&nbsp;<wbr>1 解压</p>
<p>&nbsp;<wbr> # tar zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz -C /usr/local/src/</p>
<p>&nbsp;<wbr> 2 进入目录</p>
<p>&nbsp;<wbr> #cd /usr/local/src/ZendOptimizer-3.3.0a-linux-glibc21-i386</p>
<p>&nbsp;<wbr>&nbsp;<wbr>3 安装</p>
<p>&nbsp;<wbr>&nbsp;<wbr> ./install</p>
<p>然后一路回车，看到这个，php.ini的路径，要写的是目录路径</p>
<p><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=517e2e1b0100b9jc&amp;url=http://static14.photo.sina.com.cn/orignal/517e2e1bt59d40f803d5d" target="_blank"><img src="http://static14.photo.sina.com.cn/bmiddle/517e2e1bt59d40f803d5d"  alt="" /></a></p>
<p>然后再一路回车</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 4 测试下，做个php测试页</p>
<p>&nbsp;<wbr> # vi /usr/local/apache2/htdocs/testZend.php</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 5 访问下看看</p>
<p>&nbsp;<wbr> 应该看到，红框里的内容</p>
<p>&nbsp;<wbr> <a href="http://photo.blog.sina.com.cn/showpic.html#blogid=517e2e1b0100b9jc&amp;url=http://static15.photo.sina.com.cn/orignal/517e2e1bt59d4326ad9ce" target="_blank"><img src="http://static15.photo.sina.com.cn/bmiddle/517e2e1bt59d4326ad9ce"  alt="" /> </a></p>
<p>&nbsp;<wbr> <a href="http://photo.blog.sina.com.cn/showpic.html#blogid=517e2e1b0100b9jc&amp;url=http://static2.photo.sina.com.cn/orignal/517e2e1bt59d438d2f8c1" target="_blank"><img src="http://static2.photo.sina.com.cn/bmiddle/517e2e1bt59d438d2f8c1"  alt="" /></a></p>
<p>&nbsp;<wbr>&nbsp;<wbr>九 安装ucenter</p>
<p>&nbsp;<wbr> 1 解压ucenter</p>
<p>&nbsp;<wbr>&nbsp;<wbr> #unzip UCenter_1.0.0_SC_GBK.zip -d ucenter</p>
<p>&nbsp;<wbr>&nbsp;<wbr> -d：解压的目录，不指定-d，解压出来的文件都是分散的。</p>
<p>&nbsp;<wbr> 2 进入ucenter文件夹</p>
<p>&nbsp;<wbr>&nbsp;<wbr> #cd /root/ucenter</p>
<p>&nbsp;<wbr> 3 把upload文件夹放到apache文档目录</p>
<p>&nbsp;<wbr>&nbsp;<wbr> # mv upload/ /usr/local/apache2/htdocs/uc</p>
<p>&nbsp;<wbr>&nbsp;<wbr>4 给data文件加777的权限</p>
<p>&nbsp;<wbr>&nbsp;<wbr> #ll -d usr/local/apache2/htdocs/uc/data</p>
<p>&nbsp;<wbr>&nbsp;<wbr> # chmod 777 -R data/</p>
<p>&nbsp;<wbr>&nbsp;<wbr>5 安装ucenter</p>
<p>&nbsp;<wbr>&nbsp;<wbr> 在浏览器里输入<a href="http://192.168.254.35/uc/install/">http://192.168.254.35/uc/install/</a><a href="http://192.168.254.35/uc/install"></a>&nbsp;<wbr>&nbsp;<wbr></p>
<p>&nbsp;<wbr>&nbsp;<wbr>6&nbsp;<wbr>填写相关配置</p>
<p>&nbsp;<wbr>&nbsp;<wbr> <a href="http://photo.blog.sina.com.cn/showpic.html#blogid=517e2e1b0100b9jc&amp;url=http://static8.photo.sina.com.cn/orignal/517e2e1bt5a743e79b267" target="_blank"><img src="http://static8.photo.sina.com.cn/bmiddle/517e2e1bt5a743e79b267"  alt="" /></a></p>
<p>如果没有初始密码，这里就空着</p>
<p>&nbsp;<wbr> <a href="http://photo.blog.sina.com.cn/showpic.html#blogid=517e2e1b0100b9jc&amp;url=http://static13.photo.sina.com.cn/orignal/517e2e1bt5a744dc56b9c" target="_blank"><img src="http://static13.photo.sina.com.cn/bmiddle/517e2e1bt5a744dc56b9c"  alt="" /> </a></p>
<p>&nbsp;<wbr></p>
<p><font style="font-size: 18px">十 安装discuz</font></p>
<p><font style="font-size: 14px" size="4">&nbsp;<wbr>1 解压discuz</font></p>
<p>&nbsp;<wbr># unzip Discuz_6.1.0_SC_GBK.zip -d discuz6</p>
<p>&nbsp;<wbr>2 把upload文件夹放到apache文档目录（随便来个名字）</p>
<p>&nbsp;<wbr> # mv upload/ /usr/local/apache2/htdocs/bbs</p>
<p>&nbsp;<wbr>3 改bbs目录分配777权限</p>
<p>&nbsp;<wbr> # chmod 777 -R /usr/local/apache2/htdocs/bbs/</p>
<p>&nbsp;<wbr>4 安装过程</p>
<p>输入这个<a href="http://192.168.254.35/bbs/install/">http://192.168.254.35/bbs/install/</a>&nbsp;<wbr>（不要忘了install，否则会报mysql错误）</p>
<p>&nbsp;<wbr><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=517e2e1b0100b9jc&amp;url=http://static16.photo.sina.com.cn/orignal/517e2e1bt5a752be93fbf" target="_blank"><img src="http://static16.photo.sina.com.cn/bmiddle/517e2e1bt5a752be93fbf"  alt="" /></a></p>
<p>&nbsp;<wbr>设置数据库时，要改用户名是root，然后密码是空，就不填。</p>
<p>然后就ok了！</p>
 <img src ="http://www.blogjava.net/jvict/aggbug/261160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2009-03-21 09:29 <a href="http://www.blogjava.net/jvict/articles/261160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打开mysql 远程访问,开放3306端口,创建用户</title><link>http://www.blogjava.net/jvict/articles/225972.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Sun, 31 Aug 2008 15:33:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/225972.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/225972.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/225972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/225972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/225972.html</trackback:ping><description><![CDATA[创建用户<br />
GRANT ALL PRIVILEGES ON db.* TO <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#64;&#108;&#111;&#99;&#97;&#108;&#104;&#111;&#115;&#116;">test@localhost</a> IDENTIFIED BY 'test' WITH GRANT OPTION;<br />
<br />
<br />
打开mysql数据库，把user表中的root中的host修为%，再把my.cnf中的bind-address　　＝127.0.0.1注释了就可以远程连接了。 
<img src ="http://www.blogjava.net/jvict/aggbug/225972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2008-08-31 23:33 <a href="http://www.blogjava.net/jvict/articles/225972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate+mysql乱码问题解决方案</title><link>http://www.blogjava.net/jvict/articles/225970.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Sun, 31 Aug 2008 15:20:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/225970.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/225970.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/225970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/225970.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/225970.html</trackback:ping><description><![CDATA[<p>1, mysql安装时设置字符集utf-8（包括数据库字符集，以及表的字符集）, jdbc驱动用最新的 <br />
2. hibernate配置文件（hibernate.cfg.xml）中,加上属性 <br />
&lt;property name="connection.useUnicode"&gt;true&lt;/property&gt; <br />
&lt;property name="connection.characterEncoding"&gt;UTF-8&lt;/property&gt; <br />
<br />
3. web.xml设置Filter <br />
================================================= <br />
<br />
<br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" /><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">filter</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">filter-name</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;&nbsp;Set&nbsp;Web&nbsp;Application&nbsp;Character&nbsp;Encoding <br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">filter-name</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">filter-class</span><span style="color: rgb(0,0,255)">&gt;<font color="#000000">com.util.</font></span><span style="color: rgb(0,0,0)">SetEncodeFilter</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">filter-class</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">init-param</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">param-name</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">defaultencoding</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">param-name</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">param-value</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">UTF-8</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">param-value</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">init-param</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">filter</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">filter-mapping</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">filter-name</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;&nbsp;Set&nbsp;Web&nbsp;Application&nbsp;Character&nbsp;Encoding <br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">filter-name</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">url-pattern</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">/*</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">url-pattern</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img height="16" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" width="11" align="top" />&nbsp;</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">filter-mapping</span><span style="color: rgb(0,0,255)">&gt;</span> </p>
<p><br />
============================================= <br />
SetEncodeFilter.java <br />
<br />
</p>
<br />
<span style="color: rgb(0,128,128)">&nbsp;1</span><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,255)">package</span><span style="color: rgb(0,0,0)">&nbsp;com.util;<br />
</span><span style="color: rgb(0,128,128)">&nbsp;2</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: rgb(0,128,128)">&nbsp;3</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;java.io.IOException;<br />
</span><span style="color: rgb(0,128,128)">&nbsp;4</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: rgb(0,128,128)">&nbsp;5</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.Filter;<br />
</span><span style="color: rgb(0,128,128)">&nbsp;6</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.FilterChain;<br />
</span><span style="color: rgb(0,128,128)">&nbsp;7</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.FilterConfig;<br />
</span><span style="color: rgb(0,128,128)">&nbsp;8</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.ServletException;<br />
</span><span style="color: rgb(0,128,128)">&nbsp;9</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.ServletRequest;<br />
</span><span style="color: rgb(0,128,128)">10</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0,0,255)">import</span><span style="color: rgb(0,0,0)">&nbsp;javax.servlet.ServletResponse;<br />
</span><span style="color: rgb(0,128,128)">11</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top" /><br />
</span><span style="color: rgb(0,128,128)">12</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_308_1487_Closed_Text.style. Codehighlighter1_308_1487_Closed_Image.style. Codehighlighter1_308_1487_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_308_1487_Closed_Text.style. Codehighlighter1_308_1487_Open_Text.style. Codehighlighter1_308_1487_Open_Image.style. /></span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">class</span><span style="color: rgb(0,0,0)">&nbsp;SetEncodeFilter&nbsp;</span><span style="color: rgb(0,0,255)">implements</span><span style="color: rgb(0,0,0)">&nbsp;Filter&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span><span style="color: rgb(0,0,0)">{&nbsp;<br />
</span><span style="color: rgb(0,128,128)">13</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">14</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">protected</span><span style="color: rgb(0,0,0)">&nbsp;FilterConfig&nbsp;filterConfig&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">null</span><span style="color: rgb(0,0,0)">;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">15</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">16</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">protected</span><span style="color: rgb(0,0,0)">&nbsp;String&nbsp;defaultEncoding&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">null</span><span style="color: rgb(0,0,0)">;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">17</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">18</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_417_512_Closed_Text.style. Codehighlighter1_417_512_Closed_Image.style. Codehighlighter1_417_512_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_417_512_Closed_Text.style. Codehighlighter1_417_512_Open_Text.style. Codehighlighter1_417_512_Open_Image.style. />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">/**&nbsp;*/</span><span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)">//*&nbsp;(non-Javadoc)&nbsp;<br />
</span><span style="color: rgb(0,128,128)">19</span><span style="color: rgb(0,128,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@see</span><span style="color: rgb(0,128,0)">&nbsp;javax.servlet.Filter#init(javax.servlet.FilterConfig)&nbsp;<br />
</span><span style="color: rgb(0,128,128)">20</span><span style="color: rgb(0,128,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span></span><span style="color: rgb(0,0,0)">&nbsp;<br />
</span><span style="color: rgb(0,128,128)">21</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_579_747_Closed_Text.style. Codehighlighter1_579_747_Closed_Image.style. Codehighlighter1_579_747_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_579_747_Closed_Text.style. Codehighlighter1_579_747_Open_Text.style. Codehighlighter1_579_747_Open_Image.style. />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)">&nbsp;init(FilterConfig&nbsp;arg0)&nbsp;</span><span style="color: rgb(0,0,255)">throws</span><span style="color: rgb(0,0,0)">&nbsp;ServletException&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span><span style="color: rgb(0,0,0)">{&nbsp;<br />
</span><span style="color: rgb(0,128,128)">22</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub&nbsp;</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,128,128)">23</span><span style="color: rgb(0,128,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.filterConfig&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;arg0;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">24</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.defaultEncoding&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;filterConfig.getInitParameter(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">defaultencoding</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);&nbsp;<br />
</span><span style="color: rgb(0,128,128)">25</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)">&nbsp;<br />
</span><span style="color: rgb(0,128,128)">26</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">27</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_756_915_Closed_Text.style. Codehighlighter1_756_915_Closed_Image.style. Codehighlighter1_756_915_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_756_915_Closed_Text.style. Codehighlighter1_756_915_Open_Text.style. Codehighlighter1_756_915_Open_Image.style. />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">/**&nbsp;*/</span><span><span style="color: rgb(0,128,0)">/**</span><span style="color: rgb(0,128,0)">//*&nbsp;(non-Javadoc)&nbsp;<br />
</span><span style="color: rgb(0,128,128)">28</span><span style="color: rgb(0,128,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128,128,128)">@see</span><span style="color: rgb(0,128,0)">&nbsp;javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,&nbsp;javax.servlet.ServletResponse,&nbsp;javax.servlet.FilterChain)&nbsp;<br />
</span><span style="color: rgb(0,128,128)">29</span><span style="color: rgb(0,128,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">*/</span></span><span style="color: rgb(0,0,0)">&nbsp;<br />
</span><span style="color: rgb(0,128,128)">30</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)">&nbsp;doFilter(&nbsp;<br />
</span><span style="color: rgb(0,128,128)">31</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServletRequest&nbsp;request,&nbsp;<br />
</span><span style="color: rgb(0,128,128)">32</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServletResponse&nbsp;response,&nbsp;<br />
</span><span style="color: rgb(0,128,128)">33</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FilterChain&nbsp;chain)&nbsp;<br />
</span><span style="color: rgb(0,128,128)">34</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_1086_1245_Closed_Text.style. Codehighlighter1_1086_1245_Closed_Image.style. Codehighlighter1_1086_1245_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_1086_1245_Closed_Text.style. Codehighlighter1_1086_1245_Open_Text.style. Codehighlighter1_1086_1245_Open_Image.style. />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">throws</span><span style="color: rgb(0,0,0)">&nbsp;IOException,&nbsp;ServletException&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span><span style="color: rgb(0,0,0)">{&nbsp;<br />
</span><span style="color: rgb(0,128,128)">35</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,128,0)">//</span><span style="color: rgb(0,128,0)">&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub&nbsp;</span><span style="color: rgb(0,128,0)"><br />
</span><span style="color: rgb(0,128,128)">36</span><span style="color: rgb(0,128,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(selectEncoding(request));&nbsp;<br />
</span><span style="color: rgb(0,128,128)">37</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(request,&nbsp;response);&nbsp;<br />
</span><span style="color: rgb(0,128,128)">38</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)">&nbsp;<br />
</span><span style="color: rgb(0,128,128)">39</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">40</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">41</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_1278_1368_Closed_Text.style. Codehighlighter1_1278_1368_Closed_Image.style. Codehighlighter1_1278_1368_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_1278_1368_Closed_Text.style. Codehighlighter1_1278_1368_Open_Text.style. Codehighlighter1_1278_1368_Open_Image.style. />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)">&nbsp;destroy()&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span><span style="color: rgb(0,0,0)">{&nbsp;<br />
</span><span style="color: rgb(0,128,128)">42</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">43</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.defaultEncoding&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">null</span><span style="color: rgb(0,0,0)">;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">44</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.filterConfig&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">null</span><span style="color: rgb(0,0,0)">;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">45</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)">&nbsp;<br />
</span><span style="color: rgb(0,128,128)">46</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">47</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">48</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_1435_1482_Closed_Text.style. Codehighlighter1_1435_1482_Closed_Image.style. Codehighlighter1_1435_1482_Open_Text.style. /><img style="display: none" alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" ?none??; none??; inline??; inline??;? display=""  Codehighlighter1_1435_1482_Closed_Text.style. Codehighlighter1_1435_1482_Open_Text.style. Codehighlighter1_1435_1482_Open_Image.style. />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">protected</span><span style="color: rgb(0,0,0)">&nbsp;String&nbsp;selectEncoding(ServletRequest&nbsp;request)&nbsp;</span><span style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span><span style="color: rgb(0,0,0)">{&nbsp;<br />
</span><span style="color: rgb(0,128,128)">49</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">50</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">return</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.defaultEncoding;&nbsp;<br />
</span><span style="color: rgb(0,128,128)">51</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)">&nbsp;<br />
</span><span style="color: rgb(0,128,128)">52</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;<br />
</span><span style="color: rgb(0,128,128)">53</span><span style="color: rgb(0,0,0)"><img alt="" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: rgb(0,0,0)">&nbsp;</span>
<p>&nbsp;</p>
<p>4.提交表单的jsp页面设置<br />
&lt;%@ page language="java"&nbsp; contentType="text/html; charset=UTF-8"%&gt;</p>
<br />
<p>&nbsp;</p>
<p><strong style="color: rgb(255,0,0)"><span style="font-size: 14pt; font-family: 宋体">至此问题已经解决</span></strong><strong style="color: rgb(255,0,0)"><span lang="EN-US" style="font-size: 14pt">,</span></strong><strong style="color: rgb(255,0,0)"><span style="font-size: 14pt; font-family: 宋体"><clk>但是还有一些<nobr style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" target="_blank"  false;? this);? kwC(event,0)?>我们</nobr>应该了解的</clk></span></strong><strong style="color: rgb(255,0,0)"><span lang="EN-US" style="font-size: 14pt">,</span></strong><strong style="color: rgb(255,0,0)"><span style="font-size: 14pt; font-family: 宋体">下面我简述一下</span></strong><strong><span lang="EN-US" style="font-size: 14pt"><span style="color: rgb(255,0,0)">:</span></span></strong></p>
<p style="text-indent: 21pt; line-height: 150%"><font size="4"><span style="font-family: 宋体">为每个<span lang="EN-US">jsp</span>页面设置了其编码格式<span lang="EN-US">(utf-8)</span>，但传递数据到另一页面时依然显示为乱 码？　　首先要需要了解的是<span lang="EN-US">web</span>容器默认编码是<span lang="EN-US">iso-8859-1</span>，一个汉字占用两个字节，而在<span lang="EN-US">utf-8</span>中一个汉字占用三个字节。所以在数据传递过 程中，必须手动设定容器编码格式，否则会出现字符位丢失的情况。即<span lang="EN-US">3</span>个字节变为两个字节，自然会变成乱码。为什么保存到数据库中的数据都变成了乱码？　　 原理同上，首先要搞清楚使用的数据库默认的编码格式，比如<span lang="EN-US">mysql</span>默认的字符编码是<span lang="EN-US">ISO-8859-1</span>。所以必须手动修改其默认编码格式。　　清楚了 以上问题后，再来看如何解决<span lang="EN-US">utf-8</span>的乱码问题。</span></font></p>
<p style="line-height: 150%"><font size="4"><span style="font-family: 宋体">１．设置<span lang="EN-US">web</span>容器的编码格式。为你的<span lang="EN-US">servlet</span>的<span lang="EN-US">doGet</span>或<span lang="EN-US">doPost</span>方法开始处加入如下代 码：<span lang="EN-US">request.setCharacterEncoding("utf-8");&nbsp;&nbsp;&nbsp;response.setCharacterEncoding ("utf-8");</span></span></font></p>
<p style="line-height: 150%"><font size="4"><span style="font-family: 宋体">２．为每个<span lang="EN-US">jsp</span>页面指定其编码格式。<span lang="EN-US">&lt;%@ page pageEncoding="utf-8"%&gt;</span></span></font></p>
<p style="line-height: 150%"><font size="4"><span style="font-family: 宋体">３．在连接数据库用的<span lang="EN-US">URL</span>后加入：<span lang="EN-US">useUnicode=true; characterEncoding=utf-8</span>　如：　<span lang="EN-US">url="jdbc:mysql:///db1?useUnicode=true; characterEncoding=utf-8"</span></span></font></p>
<p style="line-height: 150%"><font size="4"><span style="font-family: 宋体">４．为指定数据库默认编码格式。在<span lang="EN-US">C:\WINDOWS</span>目录下找到<span lang="EN-US">my.ini</span>文件，并在<span lang="EN-US"> [mysqld]</span>中加入<span lang="EN-US">default-character-set=gbk</span>，重新启动<span lang="EN-US">mysql</span><clk><nobr style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" target="_blank"  false;? this);? kwC(event,2)?>服务</nobr>。　</clk></span></font></p>
<p style="line-height: 150%"><font size="4"><span style="font-family: 宋体">至此，乱码问题全部解决。</span></font></p>
<p style="line-height: 150%"><font size="4"><span style="font-family: 宋体">起初总搞上去不清， 为什么要将<span lang="EN-US">mysql</span>的默认编码格式设置为<span lang="EN-US">gbk</span>，后来由相关的资料得知<span lang="EN-US">utf-8</span>默认输入编码方式为<span lang="EN-US">gbk</span>，默认输出编码方式为<span lang="EN-US">utf-16be</span>。　 　</span></font></p>
<p style="line-height: 150%"><span style="font-family: 宋体"><font size="4">个人认为，将数据进行<span lang="EN-US">utf-8</span>进行编码的目的<span lang="EN-US">(</span>即将中文编码为％的形式<span lang="EN-US">)</span>，主要是为了在多层服务间进行数据传输时，防止发生字符丢失<span lang="EN-US">(</span>如<span lang="EN-US">msn)</span>。普 通的<span lang="EN-US">web</span><clk><nobr style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" target="_blank"  false;? this);? kwC(event,5)?>程序</nobr>显然没有必要这样做，只要使用以上方法进行处理，就可以有效的解决乱码问题，从而结省存储空间。如果都像公司的</clk><span lang="EN-US">SC</span>系统那样，将一个汉字编 码为<span lang="EN-US">18</span>个字符后，再存储到数据库中，抛开效率不说，就存储空间的浪费就够人受的，要知道，那是需要银子地！</font></span></p>
<img src ="http://www.blogjava.net/jvict/aggbug/225970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2008-08-31 23:20 <a href="http://www.blogjava.net/jvict/articles/225970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改及查看mysql数据库的字符集</title><link>http://www.blogjava.net/jvict/articles/225965.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Sun, 31 Aug 2008 14:42:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/225965.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/225965.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/225965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/225965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/225965.html</trackback:ping><description><![CDATA[<font color="#0009cc"><strong>Liunx下修改MySQL字符集：<br />
</strong></font><font color="#009099">1.查找MySQL的cnf文件的位置</font><br />
<font color="#0009cc">find / -iname '*.cnf' -print</font><br />
<br />
/usr/share/mysql/my-innodb-heavy-4G.cnf<br />
/usr/share/mysql/my-large.cnf<br />
/usr/share/mysql/my-small.cnf<br />
/usr/share/mysql/my-medium.cnf<br />
/usr/share/mysql/my-huge.cnf<br />
/usr/share/texmf/web2c/texmf.cnf<br />
/usr/share/texmf/web2c/mktex.cnf<br />
/usr/share/texmf/web2c/fmtutil.cnf<br />
/usr/share/texmf/tex/xmltex/xmltexfmtutil.cnf<br />
/usr/share/texmf/tex/jadetex/jadefmtutil.cnf<br />
/usr/share/doc/MySQL-server-community-5.1.22/my-innodb-heavy-4G.cnf<br />
/usr/share/doc/MySQL-server-community-5.1.22/my-large.cnf<br />
/usr/share/doc/MySQL-server-community-5.1.22/my-small.cnf<br />
/usr/share/doc/MySQL-server-community-5.1.22/my-medium.cnf<br />
/usr/share/doc/MySQL-server-community-5.1.22/my-huge.cnf<br />
<br />
2. 拷贝 small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一个到/etc下，命名为my.cnf<br />
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf<br />
<br />
<font color="#009099">3. 修改my.cnf</font><br />
vi /etc/my.cnf<br />
在[client]下添加<br />
default-character-set=utf8<br />
在[mysqld]下添加<br />
default-character-set=utf8<br />
<br />
4.重新启动MySQL<br />
[root@bogon ~]# /etc/rc.d/init.d/mysql restart<br />
Shutting down MySQL &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; [ 确定 ]<br />
Starting MySQL. &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; [ 确定 ]<br />
[root@bogon ~]# mysql -u root -p<br />
Enter password:<br />
Welcome to the MySQL monitor. Commands end with ; or \g.<br />
Your MySQL connection id is 1<br />
Server version: 5.1.22-rc-community-log MySQL Community Edition (GPL)<br />
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.<br />
<br />
<font color="#009099">5.查看字符集设置</font><br />
mysql&gt; show variables like 'collation_%';<br />
+----------------------+-----------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
+----------------------+-----------------+<br />
| collation_connection | utf8_general_ci |<br />
| collation_database | utf8_general_ci |<br />
| collation_server &nbsp;&nbsp; | utf8_general_ci |<br />
+----------------------+-----------------+<br />
3 rows in set (0.02 sec)<br />
mysql&gt; show variables like 'character_set_%';<br />
+--------------------------+----------------------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
+--------------------------+----------------------------+<br />
| character_set_client &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_connection | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_database | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_filesystem | binary &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_results &nbsp;&nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_server &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_system &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_sets_dir &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; | /usr/share/mysql/charsets/ |<br />
+--------------------------+----------------------------+<br />
8 rows in set (0.02 sec)<br />
mysql&gt;<br />
<br />
<br />
<strong><font color="#0009cc">其他的一些设置方法：</font></strong><br />
<br />
<strong>修改数据库的字符集</strong><br />
mysql&gt;use mydb<br />
mysql&gt;alter database mydb character set utf-8;<br />
<strong>创建数据库指定数据库的字符集</strong><br />
mysql&gt;create database mydb character set utf-8;<br />
<br />
<strong>通过配置文件修改:</strong><br />
修改/var/lib/mysql/mydb/db.opt<br />
default-character-set=latin1<br />
default-collation=latin1_swedish_ci<br />
为<br />
default-character-set=utf8<br />
default-collation=utf8_general_ci<br />
<font color="#007cc7">重起MySQL:</font><br />
[root@bogon ~]# /etc/rc.d/init.d/mysql restart<br />
<br />
<strong>通过MySQL命令行修改:</strong><br />
mysql&gt; set character_set_client=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.00 sec)</font><br />
mysql&gt; set character_set_connection=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.00 sec)</font><br />
mysql&gt; set character_set_database=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.00 sec)</font><br />
mysql&gt; set character_set_results=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.00 sec)</font><br />
mysql&gt; set character_set_server=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.00 sec)</font><br />
mysql&gt; set character_set_system=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.01 sec)</font><br />
mysql&gt; set collation_connection=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.01 sec)</font><br />
mysql&gt; set collation_database=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.01 sec)</font><br />
mysql&gt; set collation_server=utf8;<br />
<font color="#007cc7">Query OK, 0 rows affected (0.01 sec)</font><br />
<strong>查看:<br />
</strong>mysql&gt; show variables like 'character_set_%';<br />
+--------------------------+----------------------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
+--------------------------+----------------------------+<br />
| character_set_client &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_connection | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_database | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_filesystem | binary &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_results &nbsp;&nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_server &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_system &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_sets_dir &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; | /usr/share/mysql/charsets/ |<br />
+--------------------------+----------------------------+<br />
8 rows in set (0.03 sec)<br />
mysql&gt; show variables like 'collation_%';<br />
+----------------------+-----------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
+----------------------+-----------------+<br />
| collation_connection | utf8_general_ci |<br />
| collation_database | utf8_general_ci |<br />
| collation_server &nbsp;&nbsp; | utf8_general_ci |<br />
+----------------------+-----------------+<br />
3 rows in set (0.04 sec)<br />
<br />
<br />
<br />
-------------------------------------------------------------------------<br />
【知识性文章转载】<br />
MYSQL 字符集问题<br />
<br />
<br />
MySQL的字符集支持(Character Set Support)有两个方面：<br />
&nbsp;&nbsp; 字符集(Character set)和排序方式(Collation)。<br />
对于字符集的支持细化到四个层次:<br />
&nbsp;&nbsp; 服务器(server)，数据库(database)，数据表(table)和连接(connection)。<br />
1.MySQL默认字符集<br />
MySQL对于字符集的指定可以细化到一个数据库，一张表，一列，应该用什么字符集。<br />
但是，传统的程序在创建数据库和数据表时并没有使用那么复杂的配置，它们用的是默认的配置，那么，默认的配置从何而来呢？ &nbsp;&nbsp;&nbsp; (1)编译MySQL 时，指定了一个默认的字符集，这个字符集是 latin1；<br />
&nbsp;&nbsp;&nbsp; (2)安装MySQL 时，可以在配置文件 (my.ini) 中指定一个默认的的字符集，如果没指定，这个值继承自编译时指定的；<br />
&nbsp;&nbsp;&nbsp; (3)启动mysqld 时，可以在命令行参数中指定一个默认的的字符集，如果没指定，这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集；<br />
&nbsp;&nbsp;&nbsp; (4)当创建一个新的数据库时，除非明确指定，这个数据库的字符集被缺省设定为character_set_server；<br />
&nbsp;&nbsp;&nbsp; (5)当选定了一个数据库时，character_set_database 被设定为这个数据库默认的字符集；<br />
&nbsp;&nbsp;&nbsp; (6)在这个数据库里创建一张表时，表默认的字符集被设定为 character_set_database，也就是这个数据库默认的字符集；<br />
&nbsp;&nbsp;&nbsp; (7)当在表内设置一栏时，除非明确指定，否则此栏缺省的字符集就是表默认的字符集；<br />
简单的总结一下，如果什么地方都不修改，那么所有的数据库的所有表的所有栏位的都用<br />
latin1 存储，不过我们如果安装 MySQL，一般都会选择多语言支持，也就是说，安装程序会自动在配置文件中把<br />
default_character_set 设置为 UTF-8，这保证了缺省情况下，所有的数据库的所有表的所有栏位的都用 UTF-8 存储。<br />
2.查看默认字符集(默认情况下，mysql的字符集是latin1(ISO_8859_1)<br />
通常，查看系统的字符集和排序方式的设定可以通过下面的两条命令：<br />
&nbsp;&nbsp; mysql&gt; SHOW VARIABLES LIKE 'character%';<br />
+--------------------------+---------------------------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
+--------------------------+---------------------------------+<br />
| character_set_client &nbsp;&nbsp; | latin1 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_connection | latin1 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_database | latin1 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_filesystem | binary &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_results &nbsp;&nbsp;&nbsp; | latin1 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_server &nbsp;&nbsp; | latin1 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_system &nbsp;&nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_sets_dir &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; | D:"mysql-5.0.37"share"charsets" |<br />
+--------------------------+---------------------------------+<br />
mysql&gt; SHOW VARIABLES LIKE 'collation_%';<br />
+----------------------+-----------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
+----------------------+-----------------+<br />
| collation_connection | utf8_general_ci |<br />
| collation_database | utf8_general_ci |<br />
| collation_server &nbsp;&nbsp; | utf8_general_ci |<br />
+----------------------+-----------------+<br />
3.修改默认字符集<br />
(1) 最简单的修改方法，就是修改mysql的my.ini文件中的字符集键值，<br />
如 &nbsp;&nbsp;&nbsp; default-character-set = utf8<br />
&nbsp;&nbsp; character_set_server = utf8<br />
修改完后，重启mysql的服务，service mysql restart<br />
使用 mysql&gt; SHOW VARIABLES LIKE 'character%';查看，发现数据库编码均已改成utf8<br />
+--------------------------+---------------------------------+<br />
| Variable_name &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; | Value &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
+--------------------------+---------------------------------+<br />
| character_set_client &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_set_connection | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_set_database | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_set_filesystem | binary &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; |<br />
| character_set_results &nbsp;&nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_set_server &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_set_system &nbsp;&nbsp; | utf8 &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; |<br />
| character_sets_dir &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; | D:"mysql-5.0.37"share"charsets" |<br />
+--------------------------+---------------------------------+<br />
(2) 还有一种修改字符集的方法，就是使用mysql的命令<br />
mysql&gt; SET character_set_client = utf8 ;
<img src ="http://www.blogjava.net/jvict/aggbug/225965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2008-08-31 22:42 <a href="http://www.blogjava.net/jvict/articles/225965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts、dao、hibernate项目中遇到的问题</title><link>http://www.blogjava.net/jvict/articles/225671.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Fri, 29 Aug 2008 16:34:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/225671.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/225671.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/225671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/225671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/225671.html</trackback:ping><description><![CDATA[<p>&#183;内容部份使用<span  style="color: #4b4b4b; font-family: georgia; font-size: 14px; font-weight: bold; line-height: 20px; "><a id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" class="postTitle2" href="http://www.blogjava.net/jvict/archive/2008/09/11/228373.html" style="text-decoration: none; margin-top: 0px; padding-top: 0px; color: #638f27; ">FCKeditor</a><a id="homepage1_HomePageDays_DaysList_ctl00_DayItem_DayList_ctl00_TitleUrl" class="postTitle2" href="http://www.blogjava.net/jvict/archive/2008/09/11/228373.html" style="text-decoration: none; margin-top: 0px; padding-top: 0px; "><font  color="#000000" face="Simsun" size="4"><span  style="font-size: 16px; font-weight: normal; line-height: normal;">来进行操作Word等带格式文档</span></font></a></span></p>
<p>&#183;<span style="color: red">一个容易忽略的问题，使用Hibernate SessionFactory连接数据库并创建了session时</span><br />
buildSessionFactory.openSession<br />
　&#160;&#160;&#160;&#160;当使用完关闭 session.close()后，连接依然处于打开状态，只有当SessionFactory(工厂并闭时才真正关闭）<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;即SessionFactory.close()后才ＯＫ，不然访问到达指定连接数后就会打不开数据库连接报错，Ｔoo many connections<br />
<br />
&#183;使用EL表达式输出日期格式配合JSTL (详细：<a href="http://bbs.163jsp.com/posts/listByUser/127.html">http://bbs.163jsp.com/posts/listByUser/127.html</a> ）<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;fmt:formatDate value="${param.date}" pattern="yyyy-MM-dd" /><br />
<br />
&#183;<span style="color: red">mysql中文问题，开始一直无法插入中文，怎么改变字符集都不行</span>。<br />
　　是因为改变字符集后没有重新用新的字符集建表，原来创建的表还是老的字符集。重新创建后即可决<br />
<br />
<br />
&#183;在页面中无法使用EL表达式语言,<br />
<font color="#ff0000">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;原因与解决方法：<br />
</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;可能是使用了JSTL<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在jsp的开头需要加一条指令如下：<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;%@&#160;page&#160;isELIgnored="false"%><br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;这样EL就可以正常显示了,可以同时使用JSP 2.0 EL与JSTL了<br />
<br />
&#183;<span style="color: red">缺少javaee.jar包</span>引起Tomcat 异常出错<br />
</p>
<p><br />
&#183;<span style="color: red">tomcat java.lang.NoClassDefFoundError: javax/el/ExpressionFactory</span><br />
&#160;　　少了包:el-api.jar, el-ri.jar<br />
<br />
&#183;Hibernate调试没有问题，当采用Struts或Web页面前台调用时出错，原因为Hibernate和struts包不一致，<br />
下载新的commons-collections-2.1.1.jar包更新后正常</p>
<br />
&#183;ActionErrors 无法显示：ApplicationResources.properties 没有在指定的目录中，cn.....struts目录<br />
<br />
&#183;Action中向外传递错误信息时，需要使用下面格式：<br />
&#160;&#160;&#160;&#160;&#160;&#160;<span style="color: #3366ff">&#160;ActionErrors errors =new ActionErrors();<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;errors.add(errors.GLOBAL_MESSAGE, new ActionMessage("failure"));<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.saveErrors(request, errors);<br />
</span>
<img src ="http://www.blogjava.net/jvict/aggbug/225671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2008-08-30 00:34 <a href="http://www.blogjava.net/jvict/articles/225671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>热门数据库JDBC驱动试用心得</title><link>http://www.blogjava.net/jvict/articles/223934.html</link><dc:creator>Documents</dc:creator><author>Documents</author><pubDate>Sat, 23 Aug 2008 18:54:00 GMT</pubDate><guid>http://www.blogjava.net/jvict/articles/223934.html</guid><wfw:comment>http://www.blogjava.net/jvict/comments/223934.html</wfw:comment><comments>http://www.blogjava.net/jvict/articles/223934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jvict/comments/commentRss/223934.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jvict/services/trackbacks/223934.html</trackback:ping><description><![CDATA[<p><a href="http://database.ctocio.com.cn/analysis/46/7697546.shtml">原文: http://database.ctocio.com.cn/analysis/46/7697546.shtml</a><br />
<br />
　本文通过介绍试用Java DB，Oracle，My SQL，MS SQL Server，MS Access等几款当下热门的数据库平台，来向读者介绍如何简单地使用各类JDBC驱动的方法模式，并结合作者实际运用的经验对上述各类数据库平台的应用进行了深入浅出的分析。其中穿插了很多使用经验和技巧，希望给各层次的开发人员都起到一定的参考作用&#8230;&#8230; </p>
<div id="content">
<div class="guanggao"><span id="contentAdv"><br />
<script language="Javascript">
</script></span></div>
<p>　　<strong>一、引言</strong></p>
<p>　　无论是初级还是中高级技术人员，面对着各式各样的数据库平台层出不穷和众多的操作系统功能不断升级，难免会眼花缭乱。特别是当系统面临升级，无论操作平台还是数据库平台，甚至架构都可能需要更替的时候，如何才能抵住众说纷纭，把握好你的选择。幸运的是，利用Java技术可以将这些不同种别的数据库平台和操作系统无缝地连接起来，真正地做到&#8220;集百家之长而为我所用&#8221;。</p>
<p>　　本文将通过一组真实的案例来向读者介绍如何做到简单地使用JDBC驱动来实现在不同的操作系统下存取几款较为热门的数据库平台。</p>
<p>　　特别是对JavaDB这款支持嵌入式模式的纯Java数据库的开发过程进行了详细分析和展望。希望读者能做到举一反三，引入更多的数据库平台的应用。</p>
<p>　　<strong>二、评测框架</strong></p>
<p>　　<strong>1.操作系统平台和数据库平台</strong></p>
<p>　　实例涉及到的操作系统是MS Windows XP + SP2和SUN Solaris 8，数据库平台有：MS Access 2000(以下简称Access)，MS SQL Server 2000(以下简称SQL Server)，My SQL，Oracle和Java DB(J2SE 1.6.0中绑定)。</p>
<p>　　对于XP平台，可以安装以上5种数据库平台。而对于Solaris，只可以安装My SQL和Java DB两种。</p>
<p>　　<strong>2.使用平台搭建</strong></p>
<p>　　(1)安装支持对应操作系统的JDK(http://java.sun.com/javase/downloads/index.jsp)。注意：如果是Solaris操作系统还必须选择对应的CPU类型，本案例中选用的是支持SPARC的JDK版本(jdk-6-solaris-sparc.sh)。在XP系统中安装的JDK Update3版本的JDK(jdk-6u3-windows-i586-p.exe)，保证该版本中已经绑定Java DB。</p>
<p>　　(2)设置JAVA_HOME，PATH和CLASSPATH等环境变量。以便正常编译和运行Java代码。</p>
<p>　　(3)下载My SQL Connector/J驱动，并将其中的mysql-connector-java-5.1.0-bin.jar文件(其中5.1.0为驱动版本号)添加到CLASSPATH变量中。需要说明的是，该驱动文件中包含两种JDBC驱动，一种是mm.mysql，一种是mysql普通JDBC驱动。两者都可以使用。</p>
<p>　　(4)将包含Java DB和Oracle的驱动文件加入到CLASSPATH中。分别为derby.jar和classes12.jar。都可以在相应的产品安装目录中找到。</p>
<p>　　通过上述的配置之后，我们就可以开始在XP系统和Solaris系统中对各类数据库平台进行使用了。</p>
<p>　　<strong>三、试用准备</strong></p>
<p>　　<strong>1.简化JDBC函数</strong></p>
<p>　　为了方便开发人员的使用，作者提炼出以下简化后的常用JDBC函数：</p>
<p>　　<img height="285" alt="" src="http://image.it168.com/cms/2007-11-2/Image/20071128463.gif" width="565" /></p>
</div>
这些函数基本上已经满足大部分的使用，初级开发人员按照函数的调用步骤就可以实现通过JDBC驱动与各种数据库平台进行交互了。
<p>　　如果用户对数据库操作的效率比较关注，那么还有3组比较重要的，也是常用的JDBC函数，分别是：</p>
<p>　　(1)事务处理函数：setAutoCommit/commit/rollback</p>
<p>　　(2)批处理函数：addBatch/execBatch</p>
<p>　　(3)语句预处理函数：prepareStatement</p>
<p>　　对于大多数开发人员，只需要知道其用法含义即可，深层次的探索和分析可能需要另外的篇幅来说明，因此作者在此不再赘述。</p>
<p>　　实际上，上述基本函数的定义，大部分都是对JDK中JDBC函数的封装，读者也可以通过JDBC的文档进行相关的查阅。关键代码参见全文末尾附录部分。</p>
<p>　　<strong>2.数据库表定义</strong></p>
<p>　　作为试用，作者并没有定义很复杂的数据库表，以下是测试用数据表结构：</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　create&nbsp;table&nbsp;user_info( <br />
            　　ui_id&nbsp;varchar(64), <br />
            　　ui_passwd&nbsp;varchar(64), <br />
            　　ui_real_name&nbsp;varchar(64),&nbsp;primary&nbsp;key(ui_id));</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　<strong>3.试用思路</strong></p>
<p>　　比较简单，就是通过上述不同类型的JDBC驱动来连接各种数据库平台，然后向已经初始化的数据表插入10000条记录，再逐条读取，并记录其各个步骤的执行耗费。</p>
<p>　　<strong>四、试用过程</strong></p>
<p>　　<strong>1.平台选择</strong></p>
<p>　　作者选择了MS Windows XP和Solaris两种平台。其中只有MySQL，JavaDB和Oracle(连接远程服务器)既可在Windows平台进行了测试，也可在Solaris平台下进行了测试。两个系统下的测试代码和框架完全相同。</p>
<p>　　<strong>2.使用JDBC驱动连接数据库</strong></p>
<p>　　<strong>(1)Access数据库</strong></p>
<p>　　通过JDBC驱动连接Access数据库最常用的是采用建立ODBC数据源(DSN)的方式进行，但是本测试中采用的是通过数据库连接字符串避开了手工建立DSN的部分。以下是关键代码：</p>
<p>　
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　final&nbsp;String&nbsp;connectStr&nbsp;= <br />
            　　&#8220;jdbc:odbc:driver={Microsoft&nbsp;Access&nbsp;Driver&nbsp;(*.mdb)};DBQ=./TestDB.mdb&#8221;; <br />
            　　&#8230;&#8230; <br />
            　　if(&nbsp;(conn&nbsp;=&nbsp;FoolDB.openDB(connectStr,&nbsp;null,&nbsp;null))&nbsp;==&nbsp;null)</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　用过ADO的读者可能一眼就看出来了，上述的连接字符串中的内容和ADO很相似。事实上，作者就是为了避开建立DNS而尝试套用了ADO的连接字符串，结果尝试通过了!</p>
<p>　　<strong>(2)SQL Server数据库</strong></p>
<p>　　需要说明的，对于SQL Server的测试没有采用Microsoft提供的SQL Server专用的JDBC驱动，还是通过借鉴ADO的连接字符串形式，沿用了JDK自带的JdbcOdbc驱动。</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　final&nbsp;String&nbsp;connectStr&nbsp;= <br />
            　　&#8220;jdbc:odbc:Driver={SQL&nbsp;Server};Server=.;Database=master;UID=sa;PWD=121fs&#8221;; <br />
            　　&#8230;&#8230; <br />
            　　if(&nbsp;(conn&nbsp;=&nbsp;FoolDB.openDB(connectStr,&nbsp;null,&nbsp;null))&nbsp;==&nbsp;null)</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　注意：用户名和密码已经包含到连接字符串中。</p>
SUN公司提供的SQL Server的JDBC驱动的版本应该比较陈旧，所以可能导致在操作数据库功能支持和效率方面比当前新的JDBC驱动要差一些。Microsoft提供的SQL Server JDBC驱动类名为：&#8220;com.microsoft.jdbc.sqlserver.SQLServerDriver&#8221;，连接字符串形如：&#8220;jdbc:microsoft:sqlserver://hostname:port;DataBaseName=dbname&#8221;。
<p>　　<strong>(3)MySQL数据库</strong></p>
<p>　　众所周知，MySQL数据库既可以在Windows可以在Solaris平台运行，而且执行效率也深得业界的好评。本试例中连接MySQL使用的是MySQL专用驱动(在第一部分已经详述，在MySQL官方网页有很多的支持文档)，以下是关键代码：</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　final&nbsp;String&nbsp;connectStr&nbsp;=&nbsp;&#8220;jdbc:mysql://localhost/phome&#8221;; <br />
            　　final&nbsp;String&nbsp;userName&nbsp;=&nbsp;&#8220;root&#8221;;&nbsp;// <br />
            　　final&nbsp;String&nbsp;passwd&nbsp;=&nbsp;&#8220;&#8220;; <br />
            　　&#8230;&#8230; <br />
            　　if(&nbsp;(conn&nbsp;=&nbsp;FoolDB.openDB(connectStr,&nbsp;userName,&nbsp;passwd))&nbsp;==&nbsp;null)</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　在本地连接时，主机名可以使用&#8220;localhost&#8221;，但如果连接远程主机时，必须换成该远程主机的IP，而phome是MySQL数据库名称。</p>
<p>　　<strong>(4)Oracle数据库</strong></p>
<p>　　Oracle提供了thin和oci两种类型的驱动，本测试中使用thin类型JDBC驱动。</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　final&nbsp;String&nbsp;connectStr&nbsp;=&nbsp;&#8220;jdbc:oracle:thin:@WBS:1521/oracle088&#8221;; <br />
            　　final&nbsp;String&nbsp;userName&nbsp;=&nbsp;&#8220;test&#8221;; <br />
            　　final&nbsp;String&nbsp;passwd&nbsp;=&nbsp;&#8220;test&#8221;;</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　其中&#8220;WBS:1521/oracle088&#8221;为Oracle服务器的SID。</p>
<p>　　<strong>(5)Java DB</strong></p>
<p>　　值得一提的，Java DB是由Apache Software Foundation主要参与开发的一个数据库(DB)项目，SUN在JDK1.6.0中将其进行了绑定，它是一款名副其实的纯Java代码开发的数据库平台。可以支持Server/Client也可以支持嵌入式运行模式，本实例中主要采用了嵌入式模式(Embedded)进行操作：</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　final&nbsp;String&nbsp;connectStr&nbsp;=&nbsp;&#8220;jdbc:derby:FoolDB&#8221;; <br />
            　　&#8230;&#8230; <br />
            　　if(&nbsp;(conn&nbsp;=&nbsp;FoolDB.openDB(connectStr,&nbsp;null,&nbsp;null))&nbsp;==&nbsp;null)</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　其中FoolDB是在初始化过程中，使用连接字符串&#8220;jdbc:derby:FoolDB;create=true&#8221;进行创建的。创建的结果是：在当前目录中创建一个名为FoolDB的目录，该目录又中包含log，seg0和tmp这3个文件夹，而数据库内容以多文件的方式存放于seg0目录中。</p>
<p>　　注意：数据库一旦创建之后，就无需再次创建了。</p>
<p>　　<strong>3.设置数据库事务方式</strong></p>
<p>　　当数据库连接成功之后，需要设定连接的事务方式(前提是该数据库平台支持事务处理)为非自动提交，因为JDBC函数默认为自动提交。</p>
<p>　　提交过于频繁，就会使数据库操作的效率较低。特别是对于Oracle这种绝对支持事务处理的数据平台而言，设置是否自动提交对系统的效率将有很大的影响。</p>
<strong>4.采用批处理方式插入记录</strong>
<p>　　同样一个考虑效率的操作，循环地执行操作语句(Insert，Update)也会增加很多不必要地开销。试例中采用了批量处理的方式，通过这种方式将要进行的操作先进行汇总，再批量提交执行。这样就可以获得较高的执行效率。</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　//Insert&nbsp;records <br />
            　　for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;RECORD_COUNT;&nbsp;++i) <br />
            　　{ <br />
            　　//Add&nbsp;each&nbsp;operation&nbsp;to&nbsp;batch <br />
            　　if(FoolDB.addBatch(execStat,&nbsp;&#8220;insert&nbsp;into&nbsp;user_info&nbsp;values('guest&#8221; <br />
            　　+&nbsp;Integer.toString(i&nbsp;+&nbsp;1) <br />
            　　+&nbsp;&#8220;',&nbsp;'666666',&nbsp;'我是中国人')&#8221;)&nbsp;==&nbsp;false) <br />
            　　&#8230;&#8230; <br />
            　　FoolDB.execBatch(execStat);&nbsp;//Execute&nbsp;batch&nbsp;operations <br />
            　　FoolDB.commit(conn); <br />
            　　FoolDB.setAutoCommit(conn,&nbsp;true);</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　这种批处理的方式，可以视同预处理，通过统合批量的操作来减少与数据库的交互频率，也减少数据库访问IO设备的频率，从而也可获得较高的效率。</p>
<p>　　<strong>5.使用行游标读取记录字段</strong></p>
<p>　　记录插入完毕之后，通过执行查询语句来获取数据集。然后再通过简化函数moveNext来逐行读取结果集的记录行：</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　//Select&nbsp;from&nbsp;table <br />
            　　String&nbsp;sql&nbsp;=&nbsp;"select&nbsp;*&nbsp;from&nbsp;user_info"; <br />
            　　if(&nbsp;(queryRS&nbsp;=&nbsp;FoolDB.openQuery(queryStat,&nbsp;sql))&nbsp;==&nbsp;null) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　&#8230; <br />
            　　while(FoolDB.moveNext(queryRS)&nbsp;==&nbsp;true) <br />
            　　{ <br />
            　　//Field&nbsp;ui_id,&nbsp;text(64)&nbsp;type <br />
            　　FoolDB.getFieldByName(queryRS,&nbsp;&#8220;ui_id&#8221;); <br />
            　　//Field&nbsp;ui_passwd,&nbsp;text(64)&nbsp;type <br />
            　　FoolDB.getFieldByName(queryRS,&nbsp;&#8220;ui_passwd&#8221;); <br />
            　　//Field&nbsp;ui_real_name,&nbsp;text(64)&nbsp;type <br />
            　　FoolDB.getFieldByName(queryRS,&nbsp;&#8220;ui_real_name&#8221;); <br />
            　　}</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　实际上，moveNext的函数名也来源于ADO(在作者看来，JDBC和ADO的应用方式是相同的)。</p>
<p>　　<strong>6.关闭数据库</strong></p>
<p>　　这里主要对以嵌入式模式运行的JavaDB的关闭进行说明，其他数据库的关闭，直接采用简化后的关闭函数(closeDB)即可。</p>
<p>　　在嵌入式模式，应用程序退出时就必须关闭数据库。但是如果应用程序关闭数据库失败，当JVM退出时不会对该未被关闭的连接进行检查，这样就占用了数据库的连接资源，就会影响后续的连接执行效率。所以Apache Derby的建议是采用URL的方式显示地关闭数据库。以下是关键代码：</p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　FoolDB.closeDB(conn);&nbsp;//Close&nbsp;connection <br />
            　　if(framework.equals("embedded")&nbsp;==&nbsp;true)&nbsp;//If&nbsp;in&nbsp;embedded&nbsp;mode <br />
            　　{ <br />
            　　//Use&nbsp;URL&nbsp;to&nbsp;shutdown&nbsp;Derby <br />
            　　if(FoolDB.openDB("jdbc:derby:;shutdown=true",&nbsp;null,&nbsp;null)&nbsp;==&nbsp;null) <br />
            　　{ <br />
            　　//If&nbsp;shutdown&nbsp;failure&nbsp;means&nbsp;that&nbsp;Derby&nbsp;already&nbsp;shutdown <br />
            　　isShutdownOk&nbsp;=&nbsp;true; <br />
            　　} <br />
            　　if&nbsp;(isShutdownOk&nbsp;==&nbsp;false)&nbsp;//Not&nbsp;shutdown&nbsp;normally <br />
            　　{ <br />
            　　System.out.println("Derby&nbsp;shutdown&nbsp;NG."); <br />
            　　} <br />
            　　}</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　注意：关闭和判断Derby数据库是否正常关闭的连接字符串中是不包含数据库名的。</p>
<strong>7.记录各步骤操作的时间戳</strong>
<p>　　以上的操作中，在各个步骤之间添加了时间戳，以此来记录各个数据库平台的执行耗费。</p>
<p>　　<strong>五、结果及分析</strong></p>
<p>　　<img height="281" alt="" src="http://image.it168.com/cms/2007-11-2/Image/200711285149.gif" width="578" /></p>
<p>　　在对试用结果进行评价之前，读者需要考虑各款数据库平台的特点，而不能简单地从执行时间的长短来进行判断，以下是笔者根据开发经验总结出的需要注意的地方：</p>
<p>　　(1)要保证JDBC驱动和数据库平台的连接是无缝的。例如Oracle和JavaDB数据库本身就是由Java开发，其JDBC驱动和数据库平台的连接可以做到完全无缝，这样可以充分体现出该款数据库平台的特性。反之，Access和SQL Server与对应的JdbcOdbc驱动之间的耦合可能就不如与ADO驱动那么吻合，那么这些数据平台的很多特性就无法通过这些JDBC驱动得以体现。之前我们也提到，Microsoft专门有提供MS SQL Server的JDBC驱动，数据库与这种&#8220;对口&#8221;的JDBC驱动的耦合肯定要超过JdbcOdbc这种通用型的驱动。</p>
<p>　　(2)数据库平台要有良好的可移植性。换句话说就是数据库跨操作系统的性能。在这些方面Oracle，MySQL和JavaDB就要比Access和SQL Server有明显优势，它们不仅可以支持Windows平台而且也支持Solaris和Linux平台。而且数据库平台的可移植很大程度也决定了应用系统的可移植性。</p>
<p>　　(3)数据库平台要支持应用的多样化(需求弹性)。数据库平台应该不仅可以对应传统的C/S，B/S模式，而且还可以扩展为三层的，甚至是多层的模式，或者支持嵌入式系统的应用。显而易见，本身使用Java开发的Oracle和JavaDB在这些方面就具有得天独厚的优势。而且JavaDB还支持嵌入式应用，这样以来数据库的应用空间就更为广阔了。</p>
<p>　　所以基于以上几点的考虑，我们就可以得出初步的意向：</p>
<p>　　(1)对于一般的中小型的C/S和B/S架构，MySQL可以说是我们当前首选。它在跨平台和执行效率方面表现得相当的出色。</p>
<p>　　(2)对于那些对系统构架弹性要求比较高的系统，可以选择Oracle平台，并结合EJB规范进行搭建系统构架无疑将是很好的选择。</p>
<p>　　(3)选用JavaDB进行嵌入式平台开发似乎是不错的主意。由于现在很多嵌入式设备中都嵌入了Java内核，JavaDB也就可以得以应用了，嵌入式设备与其他系统共享数据的接口就变得及其简单。</p>
<p>　　(4)如果只在Windows平台进行开发的中小型系统，用Access或者SQL Server平台也不妨是一种简单快捷的途径。</p>
<p>　　<strong>六、结束语</strong></p>
<p>　　通过前两部分的说明，相信大家对JDBC的使用应该有相当部分的了解和收获。即使作为初学者，通过简化后的JDBC函数和固定的试用方式，就可以实现通过JSP页面，Java Applet或者是Java Application等程序来访问各种类型的数据库平台了。即使是在本文中没有提到的其他数据库平台，例如：IBM的DB2，Solaris 10中绑定的PostgreSQL数据库。</p>
<p>　　尤其的，对于中高级技术人员而言，也可以通过这几种热门的数据库平台在不同操作系统下的使用案例得到一定的参考。</p>
<p>　　其中，特别是介绍了对嵌入式数据库的使用，相信也一定开阔了大家的视野和应用范围，毕竟嵌入式系统的应用在目前也是如火如荼。在后续的实际开发中笔者会将更多的心得体会和大家一起分享。</p>
<strong>七、附录：</strong>
<p>　　<strong>1.主要FoolDB函数参考</strong><strong></p>
<p>
<table style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0">
    <tbody>
        <tr>
            <td style="word-wrap: break-word" bgcolor="#f3f3f3">　　//Get&nbsp;a&nbsp;conn&nbsp;to&nbsp;special&nbsp;database. <br />
            　　public&nbsp;static&nbsp;Connection&nbsp;openDB(final&nbsp;String&nbsp;url,&nbsp;final&nbsp;String&nbsp;user,&nbsp;final&nbsp;String&nbsp;passwd) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(DriverManager.getConnection(url,&nbsp;user,&nbsp;passwd)&nbsp;); <br />
            　　} <br />
            　　catch&nbsp;(SQLException&nbsp;CONNECT_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;a&nbsp;statement&nbsp;object&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;for&nbsp;query&nbsp;(read&nbsp;only) <br />
            　　public&nbsp;static&nbsp;Statement&nbsp;getQueryStat(final&nbsp;Connection&nbsp;conn) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, <br />
            　　ResultSet.CONCUR_READ_ONLY)&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;CREATE_QUERY_STATEMENT) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;a&nbsp;statement&nbsp;object&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;for&nbsp;update&nbsp;(can&nbsp;write) <br />
            　　public&nbsp;static&nbsp;Statement&nbsp;getExecStat(final&nbsp;Connection&nbsp;conn) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, <br />
            　　ResultSet.CONCUR_UPDATABLE)&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;CREATE_EXEC_STATEMENT) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Execute&nbsp;SQL&nbsp;statement,&nbsp;and&nbsp;get&nbsp;the&nbsp;result&nbsp;set. <br />
            　　public&nbsp;static&nbsp;ResultSet&nbsp;openQuery(final&nbsp;Statement&nbsp;stat,&nbsp;final&nbsp;String&nbsp;sql) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(stat.executeQuery(sql)&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;OPEN_QUERY) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;the&nbsp;rows&nbsp;cout&nbsp;of&nbsp;result&nbsp;set. <br />
            　　//The&nbsp;result&nbsp;set&nbsp;type&nbsp;should&nbsp;be&nbsp;ResultSet&nbsp;type&nbsp;is&nbsp;TYPE_SCROLL_SENSITIVE. <br />
            　　public&nbsp;static&nbsp;int&nbsp;getRowsCount(ResultSet&nbsp;rs) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　int&nbsp;rowsCount&nbsp;=&nbsp;0; <br />
            　　//Backup&nbsp;current&nbsp;row&nbsp;no. <br />
            　　int&nbsp;rowNo&nbsp;=&nbsp;rs.getRow(); <br />
            　　//Locate&nbsp;last&nbsp;row <br />
            　　rs.last(); <br />
            　　//Get&nbsp;the&nbsp;rows&nbsp;count <br />
            　　rowsCount&nbsp;=&nbsp;rs.getRow(); <br />
            　　//Return&nbsp;back&nbsp;original&nbsp;row <br />
            　　if(rowNo&nbsp;&lt;&nbsp;1)&nbsp;//before&nbsp;first&nbsp;row <br />
            　　{ <br />
            　　rs.beforeFirst(); <br />
            　　} <br />
            　　else&nbsp;// <br />
            　　{ <br />
            　　rs.absolute(rowNo); <br />
            　　} <br />
            　　return&nbsp;(rowsCount); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_ROWS_COUNT_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;the&nbsp;columns&nbsp;count&nbsp;of&nbsp;resut&nbsp;set. <br />
            　　public&nbsp;static&nbsp;int&nbsp;getColsCount(final&nbsp;ResultSet&nbsp;rs) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　ResultSetMetaData&nbsp;rsmd&nbsp;=&nbsp;rs.getMetaData(); <br />
            　　return&nbsp;(rsmd.getColumnCount()&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_COLS_COUNT_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;special&nbsp;column&nbsp;name. <br />
            　　//Note:&nbsp;The&nbsp;index&nbsp;of&nbsp;column&nbsp;base&nbsp;1,&nbsp;but&nbsp;not&nbsp;0. <br />
            　　public&nbsp;static&nbsp;String&nbsp;getColName(final&nbsp;ResultSet&nbsp;rs,&nbsp;final&nbsp;int&nbsp;colIndex) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　ResultSetMetaData&nbsp;rsmd&nbsp;=&nbsp;rs.getMetaData(); <br />
            　　return&nbsp;(rsmd.getColumnName(colIndex)&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_COL_NAME_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Move&nbsp;the&nbsp;cursor&nbsp;of&nbsp;result&nbsp;set&nbsp;to&nbsp;next&nbsp;row <br />
            　　public&nbsp;static&nbsp;boolean&nbsp;moveNext(ResultSet&nbsp;rs) <br />
            　　{ <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(rs.next()&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;MOVE_NEXT_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;the&nbsp;retValue&nbsp;of&nbsp;cell&nbsp;by&nbsp;special&nbsp;row&nbsp;number&nbsp;and&nbsp;column&nbsp;number <br />
            　　//The&nbsp;result&nbsp;set&nbsp;type&nbsp;should&nbsp;be&nbsp;ResultSet&nbsp;type&nbsp;is&nbsp;TYPE_SCROLL_SENSITIVE. <br />
            　　//Note:&nbsp;The&nbsp;index&nbsp;of&nbsp;row&nbsp;and&nbsp;column&nbsp;all&nbsp;base&nbsp;1,&nbsp;but&nbsp;no&nbsp;0. <br />
            　　public&nbsp;static&nbsp;Object&nbsp;getValueAt(ResultSet&nbsp;rs,&nbsp;final&nbsp;int&nbsp;rowIndex,&nbsp;final&nbsp;int&nbsp;colIndex) <br />
            　　{ <br />
            　　if(&nbsp;(rowIndex&nbsp;&lt;&nbsp;1)&nbsp;||&nbsp;(colIndex&nbsp;&lt;&nbsp;1)&nbsp;) <br />
            　　{ <br />
            　　return&nbsp;(null); <br />
            　　} <br />
            　　try <br />
            　　{ <br />
            　　//Backup&nbsp;current&nbsp;row&nbsp;no. <br />
            　　int&nbsp;rowNo&nbsp;=&nbsp;rs.getRow(); <br />
            　　Object&nbsp;retValue&nbsp;=&nbsp;null; <br />
            　　//Locate&nbsp;to&nbsp;special&nbsp;row <br />
            　　rs.absolute(rowIndex); <br />
            　　//Get&nbsp;retValue <br />
            　　retValue&nbsp;=&nbsp;rs.getObject(colIndex); <br />
            　　//Return&nbsp;back&nbsp;origianl&nbsp;row <br />
            　　rs.absolute(rowNo); <br />
            　　return&nbsp;(retValue); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_VALUE_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;the&nbsp;retValue&nbsp;of&nbsp;cell&nbsp;by&nbsp;special&nbsp;row&nbsp;number&nbsp;and&nbsp;field&nbsp;name <br />
            　　//The&nbsp;result&nbsp;set&nbsp;type&nbsp;should&nbsp;be&nbsp;ResultSet&nbsp;type&nbsp;is&nbsp;TYPE_SCROLL_SENSITIVE. <br />
            　　//Note:&nbsp;The&nbsp;index&nbsp;of&nbsp;row&nbsp;and&nbsp;column&nbsp;all&nbsp;base&nbsp;1,&nbsp;but&nbsp;no&nbsp;0. <br />
            　　public&nbsp;static&nbsp;Object&nbsp;getFieldByName(ResultSet&nbsp;rs,&nbsp;final&nbsp;int&nbsp;rowIndex,&nbsp;final&nbsp;String&nbsp;fieldName) <br />
            　　{ <br />
            　　if(&nbsp;(rowIndex&nbsp;&lt;&nbsp;1)&nbsp;||&nbsp;(fieldName.equals("")&nbsp;==&nbsp;true)&nbsp;) <br />
            　　{ <br />
            　　return&nbsp;(null); <br />
            　　} <br />
            　　try <br />
            　　{ <br />
            　　//Backup&nbsp;current&nbsp;row&nbsp;no. <br />
            　　int&nbsp;rowNo&nbsp;=&nbsp;rs.getRow(); <br />
            　　Object&nbsp;retValue&nbsp;=&nbsp;null; <br />
            　　//Locate&nbsp;to&nbsp;special&nbsp;row <br />
            　　rs.absolute(rowNo); <br />
            　　//Get&nbsp;retValue <br />
            　　retValue&nbsp;=&nbsp;rs.getObject(fieldName); <br />
            　　//Return&nbsp;back&nbsp;origianl&nbsp;row&nbsp;no. <br />
            　　rs.absolute(rowNo); <br />
            　　return&nbsp;(retValue); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_FIELD_BY_NAME_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;the&nbsp;retValue&nbsp;of&nbsp;cell&nbsp;within&nbsp;current&nbsp;row&nbsp;by&nbsp;special&nbsp;field&nbsp;name <br />
            　　//The&nbsp;result&nbsp;set&nbsp;type&nbsp;should&nbsp;be&nbsp;ResultSet&nbsp;type&nbsp;is&nbsp;TYPE_SCROLL_SENSITIVE. <br />
            　　//Note:&nbsp;The&nbsp;index&nbsp;of&nbsp;row&nbsp;and&nbsp;column&nbsp;all&nbsp;base&nbsp;1,&nbsp;but&nbsp;no&nbsp;0. <br />
            　　public&nbsp;static&nbsp;Object&nbsp;getFieldByName(final&nbsp;ResultSet&nbsp;rs,&nbsp;final&nbsp;String&nbsp;fieldName) <br />
            　　{ <br />
            　　if(&nbsp;(isBOF(rs)&nbsp;==&nbsp;true)&nbsp;||&nbsp;(isEOF(rs)&nbsp;==&nbsp;true)&nbsp;) <br />
            　　{ <br />
            　　return&nbsp;(null); <br />
            　　} <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(rs.getObject(fieldName)&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_FIELD_BY_NAME_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　} <br />
            　　//Get&nbsp;the&nbsp;retValue&nbsp;of&nbsp;cell&nbsp;within&nbsp;current&nbsp;row&nbsp;by&nbsp;special&nbsp;column&nbsp;index <br />
            　　//The&nbsp;result&nbsp;set&nbsp;type&nbsp;should&nbsp;be&nbsp;ResultSet&nbsp;type&nbsp;is&nbsp;TYPE_SCROLL_SENSITIVE. <br />
            　　//Note:&nbsp;The&nbsp;index&nbsp;of&nbsp;row&nbsp;and&nbsp;column&nbsp;all&nbsp;base&nbsp;1,&nbsp;but&nbsp;no&nbsp;0. <br />
            　　public&nbsp;static&nbsp;Object&nbsp;getFieldByIndex(final&nbsp;ResultSet&nbsp;rs,&nbsp;final&nbsp;int&nbsp;columnIndex) <br />
            　　{ <br />
            　　if(&nbsp;(columnIndex&nbsp;&lt;&nbsp;1)&nbsp;||&nbsp;(isBOF(rs)&nbsp;==&nbsp;true)&nbsp;||&nbsp;(isEOF(rs)&nbsp;==&nbsp;true)&nbsp;) <br />
            　　{ <br />
            　　return&nbsp;(null); <br />
            　　} <br />
            　　try <br />
            　　{ <br />
            　　return&nbsp;(rs.getObject(columnIndex)&nbsp;); <br />
            　　} <br />
            　　catch(SQLException&nbsp;GET_FIELD_BY_INDEX_FAILURE) <br />
            　　{ <br />
            　　&#8230; <br />
            　　} <br />
            　　}</td>
        </tr>
    </tbody>
</table>
</strong></p>
<img src ="http://www.blogjava.net/jvict/aggbug/223934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jvict/" target="_blank">Documents</a> 2008-08-24 02:54 <a href="http://www.blogjava.net/jvict/articles/223934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>