JSP链接数据库(MySQL) 最近在学JSP,记录一下关于JSP链接数据库的一些笔记。 首先通过两个JSP网页模拟一个验证查询的功能: 1.index.jsp(简单的一个验证表单):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="check.jsp" method="post"> <input type="text" name="uname"><br> <input type="submit" name="提交"><br> </form> </body> </html>因为自己这里用的数据库比较单一,所以就只打算通过查询名称进行验证; 2.check.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" import="java.uitl.*"%><!-- 注意这里的导包格式 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String driver = "com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/zxy?&useSSL=false&serverTimezone=UTF-8&useSSL=false&serverTimezone = GMT"; String username = "root"; String password = "zxy170518."; Connection connection = null;//链接数据库 PreparedStatement pstmt=null;//执行sql语句 // Statement stmt=null; ResultSet rs=null;//存放结果集(查询使用) try { Class.forName(driver);//建立连接mysql connection=DriverManager.getConnection(url,username,password); if(!connection.isClosed()) {out.print("数据库连接成功!");}//验证是否连接成功 String sql="select * from tb1 where name = ?"; pstmt=connection.prepareStatement(sql);//对sql语句进行预编译 String names=request.getParameter("uname");//获取到index中的uname,传递方法是post pstmt.setString(1, names);//对sql语句中的“?”进行定义 rs=pstmt.executeQuery();//接收所查询到的结果集 int count=-1;//判断是否查询成功的变量 if(rs.next()) {count=rs.getInt(1);} if(count>0) {out.print("查询成功!");}else {out.print("查询失败!");} } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(SQLException e) {e.printStackTrace(); }finally { try { if(rs!=null) {rs.close();} if(pstmt!=null) {pstmt.close();} if(connection!=null) {connection.close();} }catch(SQLException e) {e.printStackTrace();} } %> </body> </html>实验结果: 这是MySQL的内容: index.jsp: 结果: 因为mysql里面没有name为toms,所以显示查询失败; 改为tom之后: 总:JSP链接数据库本身就不是很复杂的技术,但是自己在做的过程中还是遇到了很多小问题: 1.在提交之后check页面没有内容,并且程序内报错,显示驱动有问题; 这个错误一般是因为导包的问题,web项目只需要把对应数据库所提供的jar包复制到项目目录下的WEB-INF/lib中即可; 2.对于代码; 其实本身不算是问题,主要是我自己做的时候是仿着别人做的,然后自己再做了一遍,发现仿的时候跟自己做的时候好像不是那么一回事,诸如对执行sql语句对象PreparedStatement的使用,因为还有一个叫Statement的,自己很容易搞混淆,所以对这两个所带的方法和一些语法上的格式,需要额外注意,PreparedStatement在使用的时候,需要先对sql语句进行预编译,而Statement就不用; 本人的处女贴,如果文章中有什么错误,还望指点指点。