JSP连接数据库(MySQL)

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就不用; 本人的处女贴,如果文章中有什么错误,还望指点指点。

经验分享 程序员 微信小程序 职场和发展