« JSP,struts开发网站系统,从头开始« »为了技术,再开两技术博客 »
jsp,struts从头开始:之数据库连接池配制(MYSQL)

在以前的文章里,也有一些提及到这个内容,主要是在以下文章里:

[再谈乱码问题,如何解决MYSQL数据中文乱码问题] [解决jsp,tomcat,MYSQL下中文乱码问题] [如何配置tomcat的MYSQL数据库连接池] [java_jsp连接各种数据库方法的简单示例] [java-jsp连接数据库大全(个人收集)]

但是今天,还是要从头开始~~~~

一般来说,配制数据库有几个地方都可以,<1>,在tomcat的conf下的server.xml里配制,<2>,在\conf\Catalina\localhost下写一个XML配制文档,里面的内容主要是指定WEB程序的访问URL和程序目录,同样可以在这里配制数据库连接池.<注意>,以上两方法后,还要在程序的WEB-INF的web.xml里配制.才可以,

以上三个地方分别如何配制,我也没都去试,有兴趣的可以自己去收集一下,我这里示例一下<2>和<3>

以下是<2>的一个示例(里面的汉字都是说明文字,实际使用中,请删除汉字)

<Context path="/busfly_web" 访问时的URL地址  docBase="D:\MY_prj\myeclipse_work_space\busfly_web\WebRoot" 程序存放的目录 debug="0" privileged="true">
    <Resource name="jdbc/busfly" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/busfly">
      <parameter>
        <name>url</name>
        <value>jdbc:mysql://localhost/busfly?useUnicode=true&amp;characterEncoding=utf-8</value>连接字符串,后文有详细介绍
      </parameter>
      <parameter>
        <name>password</name> 数据库密码
        <value>yc</value>
      </parameter>
      <parameter>
        <name>maxActive</name>最大连接数
        <value>20</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>数据库驱动
        <value>org.gjt.mm.mysql.Driver</value>
      </parameter>
      <parameter>
        <name>username</name>用户名
        <value>root</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>10</value>
      </parameter>
    </ResourceParams>

</Context>

 

配完以上后,再到WEB-INF里配制WEB.XML如下:

  <resource-ref>
    <description>Oracle Datasource example</description>
    <res-ref-name>jdbc/busfly</res-ref-name>  上面配制的名称
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

JSP的mysql_jdbc驱动程序说明

mm.mysql是个类型4(即纯java),符合jdbc 2规范的mysql jdbc驱动程序。当前版本为2.0 pre 5(beta)

你可以从http://www.worldserver.com/mm.mysql/下载最新的驱动程序

本文只是简单描述一下mm.mysql的安装和使用

安装
1、下载mm.mysql
2、解压到某驱动器,如c:
3、修改classpath,加入mm.mysql的路径,如你原来的classpath可能是:
.;c:\jdk1.2.2\lib\tools.jar;c:\jdk1.2.2\lib\dt.jar;
修改后可能是
.;c:\jdk1.2.2\lib\tools.jar;c:\jdk1.2.2\lib\dt.jar;C:\mm.mysql.jdbc-2.0pre5;

编程

1、用DriverManager登记mm.mysql
mm.mysql的class名为org.gjt.mm.mysql.Driver,登记时必须写成
Class.forName("org.gjt.mm.mysql.Driver").newInstance();

2、jdbc url参数说明
url格式:jdbc:mysql://[hostname][:port]/dbname[?param1=value1][?m2=value2]...
参数名 取值 缺省
user 数据库用户名 无
password 数据库用户口令 无
autoReconnect 当数据库连接丢失时是否自动连接,取值true/false false
maxReconnects 如果autoReconnect为true,此参数为重试次数,缺省为3次 3
initialTimeout 如果autoReconnect为true,此参数为重新连接前等待的秒数 2
maxRows 设置查询时返回的行数,0表示全部 0
useUnicode 是否使用unicode输出,true/false false
characterEncoding 如果useUnicode,该参数制定encoding类型,建议使用8859_1 无

提示
同时使用useUnicode,characterEncoding,能解决数据库输出时的中文问题
如:jdbc:mysql://localhost/test?user=root&useUnicode=true;characterEncoding=8859_1

注意,JDBC URL里的&符号可能有时会有问题,那就要用HTML转义符号&amp;到代替&符号

 

再附上一个简单的使用上面连接字符串连接数据库的示例,开头提到的以前的文章里也有详细介绍

实际例子,举一个简单的例子
这个jsp例子使用一个库,该库只有一个表(地址簿)

create database addressbook
use addressbook
create table addressbook (id int auto_increment primary key,name varchar(30),address varchar(255),phone varchar(20));

插入记录
insert into addressbook (name,address,phone) values ('jjx','zhejiang yuyao','0574-2222222');

jsp代码:代码中使用了absolute,ResultSet.TYPE_SCROOL_SENSITIVE等的目录是为了测试mm.mysql是否符合jdbc 2.0的规范
<%@ page import="java.sql.*" %>
<%
out.println("通讯录!");

try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();

}
catch (Exception E) {
out.println("Unable to load driver.");

}

try {
Connection C = DriverManager.getConnection("jdbc:mysql://localhost/addressbook?user=root&password=jjx&useUnicode=true&characterEncoding=8859_1");
Statement s=C.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=s.executeQuery("select * from addressbook");
out.println("<table border=1>");
int i=1;
for (i=10;i<20;i++)
{
if (rs.absolute(i))
{
out.println("<tr><td>");
out.println(rs.getString(1));
out.println("</td>");
out.println("<td>");
out.print(rs.getString(2));
out.println("</td>");
out.println("<td>");
out.print(rs.getString(3));
out.println("</td></tr>");
}
else
{
break;
}

}
out.println("</table>");
rs.close();
s.close();
C.close();


}
catch (SQLException E) {
out.println("SQLException: " + E.getMessage());
out.println("SQLState: " + E.getSQLState());
out.println("VendorError: " + E.getErrorCode());
}

%>

如果不清楚如何使用数据库,请关注我以后的文章,或者,看一下在文章开头提到的一些文章

 

 


Tags: struts  数据库  连接池  JSP  MYSQL数据库   |

原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/

本文链接地址:http://www.busfly.net/post/jsp-struts-MYSQL-database_set-DBPOOL.html

如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~

     
相关文章:




◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
网站分类
分类最近文章
最近发表
最新评论及回复
最近留言
热文排行
随机推荐文章
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.