在以前的文章里,也有一些提及到这个内容,主要是在以下文章里:
[再谈乱码问题,如何解决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&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转义符号&到代替&符号
再附上一个简单的使用上面连接字符串连接数据库的示例,开头提到的以前的文章里也有详细介绍
实际例子,举一个简单的例子
这个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
如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~