利用JSP技术访问MySQL数据库

    技术2022-05-11  130

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