利用JSP技术访问MySQL数据库

应用JSP技术在web页面中访问mysql数据库的方法有两种(可能还有更多,欢迎指证):
  1. 在web.xml文件中设置相应的上下文参数值。
  2. 在要访问mysql数据库的页面中设置dataSource.

其实,这两种方法是条条大路通罗马,其目的都是设置并创建jsp中的DataSource实例,然后在页面中调用DataSource实例来连接数据库。下面详细介绍两种方法。

第一种方法:

用编辑器打开WEB-INF文件夹中的web.xml文件,找到

<web-app>
    ...
    <context-param>
       <param-name>
           javax.servlet.jsp.jstl.sql.dataSource
       </param-name>
       <param-value>
           jdbc:mysql://localhost:3306/work,com.mysql.jdbc.Driver,root,admin
       </param-value>
    <context-param>
    ...
</web-app>

这一段(没有web.xml文件的话,创建一个也可以。),其中<context-param>和</context-param>之间的就是一个上下文参数,参数名为“javax.servlet.jsp.jstl.sql.dataSource”,参数值为“jdbc:mysql://localhost:3306/work,com.mysql.jdbc.Driver,root,admin”。这个参数可以告知JSTL动作自行创建DataSource所需的所有信息。参数名是固定的,不能改。参数值有四个部分。第一部分为JDBC URL,即你要连接的数据库的地址或路径。我是在自己的机器上安装的mysql,采用的是默认的3306端口,而我要连接的数据库名为work,所以这里的JDBC URL是“jdbc:mysql://localhost:3306/work”,具体的格式可以参考你所用驱动程序的不同的改变。第二部分为JDBC驱动程序类名,而且必须是完全限定类名。我用的是mysql提供的connector/J驱动程序,所以这里的完全限定类名是“com.mysql.jdbc.Driver”,这里也需要根据不同驱动程序而改动得,具体参考驱动程序稳当。另外要提一下的是,驱动程序的类文件或JAR包需要放在WEB-INF/lib目录中,这样web容器才能找到驱动程序。第三、第四部分比较简单,是访问该数据库所需的用户名和密码,有则写上,无则免之。

第二种方法:

在要访问数据库的页面中使用JSTL <sql:setDataSource>动作。这里假设还要访问前一方法所连接的数据库,在要访问数据库的页面中添加如下代码:

<sql:setDataSource var="ds" scope="application"
    driver="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/work"
    user="root"
    password="admin"
/>

上边的"var"、“scope”、“driver”、“url”、“user”、“password”都是JSTL <sql:setDataSource>动作的属性。var是保存数据源的变量名,scope是数据源的作用域,driver是用于访问数据库的JDBC驱动程序类的名字,url是数据库的JDBC URL,user是数据库帐户名,password是数据库账户口令。

上边代码的大致意思就是使用com.mysql.jdbc.Driver这个驱动程序,以root用户名和admin为密码,建立一个连接到JDBC地址为jdbc:mysql://localhost:3306/work的数据库的连接,将此连接保存在名为ds的变量中,该数据源连接的作用域为application。

当然在要想使用次数据源,需要在访问动作中指定该数据源,方法如下:

<sql:query
    var="emp"
    dataSource="${ds}"
    sql="select name,phone from employee"
/>

因为不给出动作的dataSource属性而web.xml文件中又没有默认的数据源的话,动作是不知道使用哪个数据源的。不给出动作的dataSource属性,而web.xml中又设置过其他数据源的话,动作就会使用你不希望使用的数据源的。

以上方法是基于JSP的方法,其业务逻辑和页面表示在同一文件中,这样在业务逻辑表较简单的情况下不会产生太大问题。如果业务逻辑比较复杂,会使页面维护起来非常困难。这种方法比较适合对Java编程了解不深的人。如果熟悉Java编程,建议采用Java beans的方案。我会在近期给出采用beans的方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值