//今天看到servlet用JDBC连接数据库方面的东西,随手写了这么个小例子,结果愣废了一番力气!看来基础知识是时刻也不能放松的,具体的东西都在例子里了。
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class ShowRS extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
out.println("<table border=1>");
out.println("<tr><td>Content:</td></tr>");
try {
//Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动
//conn = DriverManager.getConnection("jdbc.oracle:thin:@localhost:1521:test", "SCOTT", "803015");
//刚开始时用"jdbc.oracle:thin:@localhost:1521:test"作url,失败了:java.sql.SQLException: No suitable driver。正确的写法是"jdbc:oracle:thin:@localhost:1521:test"
//在连数据库中,如果数据驱动程序也都存在,并且也都放在了classpath中,请检查数据库联接URL是否正确,若数据库连接字符串不正确也会导致错误No suitable driver的发生
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "SCOTT", "803015");//创建连接
//conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", "SYS", "803015");
//刚开始时用SYS用户,失败了:java.sql.SQLException: ORA-01017: invalid username/password; logon denied。原因在于SYS是DBA权限,oracle不允许这样连接,也不能用SYSTEM。
stmt = conn.createStatement();//创建statement
rs = stmt.executeQuery("select * from showrs"); //得到结果集
while(rs.next()){//遍历结果集
out.println("<tr>");
out.println("<td>" + rs.getString("name") + "</td>");//取出列值
out.println("</tr>");
}
out.println("</table>");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt= null;
}
if(conn != null) {
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}