《JSP笔记》之七(数据库mysql) 下载本文

<% while(rs.next()){ %> <%=rs.getString(1)%> <%=rs.getString(2)%> <%=rs.getInt(3)%> <% } %> <%

con.close(); } catch(SQLException e1){ out.println(e1); } %>

9.3.3 关闭与数据库的连接 当程序不再使用与数据库的连接时,应使用Connection对象的close方法关闭与数据库的连接。即如下语句: con.close(); //这里con是连接对象(Connection对象)名 §9.4 访问数据库 连接到数据库后,就可以对数据库进行各种操作。可以运行SQL语句来查询数据库或者添加、修改其内容。java.sql包中与数据库操作有关的接口主要有以下几个: (1)Connection:连接对象 (2)Statement:语句对象

(3)PreparedStatement:用来发送带参数的SQL语句或基本SQL语句的语句对象 (4)CallableStatement: (5)ResultSet:结果集对象

9.4.1 使用SQL语句对数据库进行操作 SQL提供了SELECT、INSERT、DELETE和UPDATE四条语句分别对表进行查询、插入、删除和更新操作。 1.查询操作 对表的查询操作使用Statement对象(一般都是名为sql)的executeQuery(String str)方法完成。该方法发送Select语句到数据库,并将执行结果以ResultSet对象形式返回到程序中。 查询操作的过程如下面的代码段所示:

Connection con; //声明连接对象 Statement sql; //声明语句对象 ResultSet rs; //声明结果集对象 try{

Class.forName(\//建立JDBC-ODBC桥接器 }

catch(ClassNotFoundException e){} try{

con=DriverManager.getConnection(\连接数据源 sql=con.createStatement(); //创建语句对象 rs=sql.executeQuery(\ //执行查询语句,并将查询结果保存在结果集rs中 ……

con.close(); } catch(SQLException e1){ out.println(e1); }

2.获取结果集的字段 ResultSet接口提供了一组get方法用于获取当前记录的字段的值。使用get方法可以按照字段名称或字段排列顺序号来获取字段的值。但表中的字段为不同类型时,要使用不同的get方法来取出值。比较常用的有: 字段为字符型: getString(int),getString(String) 字段为整数型: getInt(int),getInt(String) 等。 注:1. 无论字段是何种属性,总可以使用getString()方法返回字段值的串表示; 2.当使用getXxx方法查看一行记录时,不可以颠倒字段的顺序,例如: rs.getFloat(5); //错误 rs.getFloat(4); //错误 下面的代码段输出结果集rs中各条记录的内容。其中的next()方法是得到下一条记录,且如果不是结果集的结束位置时,返回true。 while(rs.next()){ //将记录指针移到下一条记录并判断是否结束 System.out.print(ts.getString(1)+”,”); //输出第一个字段的值 System.out.print(ts.getString(2)+”,”); //输出第二个字段的值 }

例3 数据库基本查询

chap3-3.jsp:只输出学分满足条件的记录(学分>=6) chap3-3b.jsp:按学分升序输出所有记录 这两个页面都需进行数据库连接操作。

chap9-3.jsp(只输出学分满足条件的记录(学分>=6)) <%@ page contentType=\<%@ page import=\

<%

Connection con; Statement sql; ResultSet rs; try{

Class.forName(\ } catch(ClassNotFoundException e){ out.println(e); }

con=DriverManager.getConnection(\ sql=con.createStatement();

rs=sql.executeQuery(\学分>=6 \%>

输出所有学分大于等于6的学生信息:

<%

while(rs.next()){ %>

<%=rs.getString(1)%> <% }%>
<%=rs.getString(2)%> <%=rs.getInt(3)%>
<%

con.close(); %>

运行后,效果如下:

chap9-3b.jsp (按学分升序输出所有记录)

<%@ page contentType=\<%@ include file=\ <%

rs=sqll.executeQuery(\学分 asc \%>

将学生信息按学分大小排序并输出:

<%

while(rs.next()){ %>

<%=rs.getString(1)%> <% }%>
<%=rs.getString(2)%> <%=rs.getInt(3)%>
<%

Conn.close(); %>