我们前几节讲到的例子都是用jstl标签来做的,其实我们用jsp处理数据库。我们可以学过的jdbc的知识,只是用到jsp的脚本元素,就是插入java代码。我给大家讲讲如何用jstl标签来访问数据库和查询数据。
首先,我们先建立好数据库,我用的数据库是mysql,数据库名叫user,在数据库创建的表叫做userinfo
创建数据库的指令为
Mysql> create database user ;//创建数据库,数据库的名字叫user,还有后面的 ;必须有。要不然数据库会报错的。
Mysql>use user;//使用user数据库
Mysql> create table userinfo (
id int(4) primary key,
name varchar(20));//创建userinfo表,id为整型,不为空的,name 为VARCHAR类型,长度为20,也不为空。
Mysql>insert into userinfo values(‘01’,’huluwa’);
Mysql>insert into userinfo values(‘02’,’muxue’);
Mysql>insert into userinfo values(‘03’,’dajia’);//为表中的项赋值
我们在tomcat的安装目录安装webapps下创建一个jspjdbc文件夹,在此文件夹下创建一个WEB-INF目录和index.jsp。在WEB—INF目录下创建一个classes文件夹和lib文件夹,lib文件夹下有三个jar包,是standard.jar,jstl.jar,mysql-connector-java-5.0.4-bin.jar。在WEB—INF目录下还有8个tld文件,并且在web-xml里写如下代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
</web-app>
下面我们创建index.jsp代码如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<c:set var="ip" value="localhost"/>
<c:set var="port" value="3306"/>
<c:set var="user" value="root"/>
<c:set var="pwd" value="123456"/>
<c:set var="db" value="user"/>
<c:set var="table" value="userinfo"/>
<html>
<head>
<title>JSTL 操作数据库</title>
</head>
<body bgcolor="#ffffff">
<sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://${ip}:${port}/${db}?user=${user}&password=${pwd}"/>
<sql:query var="result">
SELECT * FROM <c:out value="${table}"/>
</sql:query>
<c:forEach var="row" items="${result.rowsByIndex}">
<c:out value="${row[0]}"/> <c:out value="${row[1]}"/><br>
</c:forEach>
</body>
</html>
最后你敲入:http://localhost:8080/jstljdbc/index.jsp ,查看运行结果。如果运行成功我们就可以得到数据库里的数据。这里注意的是database标签,不支持其他厂商的数据库链接池。
例子下载
下节是最后一节,我们讲一讲mvc模式,做一个简单的mvc模式的例子,用jsp+servlet+javabean来开发。