?【例】创建exgample11_1.jsp页面,并在该页面中使用纯Java数据库驱动程序连接数据库test,并查询数据表goods中的数据。
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%> //导入包
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>访问MySql数据库</title>
</head>
<body>
<%
Connection con = null;
Statement st = null;
ResultSet rs = null;
//加载驱动
try{
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e){
e.printStackTrace();
}
//建立连接
try{
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf-8","root","root");
st = con.creatStatement();
//发送查询SQL语句,返回结果集
rs = st.excecuteQuery("select*from goods ");
while(rs.next()){
out.print(rs.getString"("id")+" ");
out.print(rs.getString"("gname")+" ");
out.print(rs.getString"("gprice")+" ");
out.print("<br>");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs.close();
st.close();
con.close();
}
%>
</body>
</html>
?从上例的代码可知,访问数据库需要以下几个步骤:
<%@ page import = "java.sql.*"%>
java.sql包含Java操作关系数据库的类和接口,因此在使用JDBC的程序中必须引入该包。
Class.forName("com.mysql.jdbc.Driver");
使用Class类(java.lang 包)?中的方法forName()来加载该驱动程序的类定义com.mysql.jdbc.Driver,从而创建了该驱动程序的一个实例。
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf-8","root","root");
完成上述操作后,就可以连接一个特定的数据库了。这需要创建Connection的一个实例,并使用DriverManager的方法getConnection()来尝试连接指定的数据库。?
st = con.creatStatement();
rs = st.executeQuery("select * from goods ");
?首先用Connection的createStatement()方法从指定的数据库连接得到一个StateMent实例,然后该Statement实例调用executeQuery()方法来执行一条SQL语句。
while(rs.next()){
out.print(rs.getString"("id")+" ");
out.print(rs.getString"("gname")+" ");
out.print(rs.getString"("gprice")+" ");
out.print("<br>");
}
ResultSet对象时JDBC中比较重要的一个对象,几乎所有的查询操作都将数据作为ResultSet对象返回。?
rs.close();
st.close();
con.close();
对数据库的操作完成之后,要及时关闭ResultSet对象、Statement对象和Connection对象,从而释放占用的资源。
关闭顺序依次由先到后依次为Result对象、Statement对象和Connection对象。
rs、st、con