Java Web学习笔记05:利用JDBC访问数据库

一、JDBC相关知识回顾

1、JDBC概述

JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

2、
创建数据库
在这里插入图片描述

3在web目录里创建登录页面login.jsp
在这里插入图片描述

4在web目录里创建登录处理页面do_login.jsp

<%@ page import=“java.net.URLEncoder” %>
<%@ page import=“java.sql.*” %>
<%
//设置请求对象字符编码
request.setCharacterEncoding(“utf-8”);
//获取表单提交的数据
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);

//设置连接数据库的参数
final String DRIVER = "com.mysql.jdbc.Driver";
final String URL = "jdbc:mysql://localhost:3306/qing";
final String USER = "root";
final  String PASSWORD = "qingjiabo";

try {
    //安装数据库驱动程序
    Class.forName(DRIVER);
    //获取数据库连接
    Connection conn = DriverManager.getConnection(URL +"?useUnicode=true&characterEncoding=utf8", USER, PASSWORD);
    //定义SQL字符串
    String strSQL = "select * from t_user where username = ? and password =?";
    //创建预备语句的值
    PreparedStatement pstmt = conn.prepareStatement(strSQL);
    //设置占位符的值
    pstmt.setString(1,username);
    pstmt.setString(2,password);
    //执行SQL查询,返回结果集
    ResultSet rs = pstmt.executeQuery();
    //判断结果集是否有记录
    if(rs.next()){
        //清除session里面可能纯在的属性值
        if (session.getAttribute("errMsg") != null) {
            session.removeAttribute("errMsg");
        }
    //采用重定向,跳转到登录成功页面
    response.sendRedirect("success.jsp?username=" + URLEncoder.encode(username,"utf-8"));
    }else {
        //设置session属性值
        session.setAttribute("errMsg","用户名或密码错误,请重新登录");
        //采用重定向,跳转登录页面
        response.sendRedirect("login.jsp");
    }
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (SQLException e) {
    e.printStackTrace();
} finally {
}

%>

5、在web目录里创建登录成功页面success.jsp

在这里插入图片描述

7、启动tomcat服务器,查看运行效果

失败
在这里插入图片描述
成功
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

改进版1:创建一个数据库连接管理类ConnectionManager

在这里插入图片描述

package net.qing.dbutil;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionManager {
//定义连接数据库的数值
private static final String DRIVER = “com.mysql.jdbc.Driver”;
private static final String URL = “jdbc:mysql://localhost:3306/qing”;
private static final String USER = “root”;
private static final String PASSWORD = “1”;

/**
 * 私有化构造方法,拒绝实例化
 */
private ConnectionManager() {
}

/**
 * 获取数据库连接静态方法
 *
 * @return 数据库连接
 */
public static Connection getConnection() {
    // 声明数据库连接
    Connection conn = null;

    try {
        // 安装数据库驱动程序
        Class.forName(DRIVER);
        // 获取数据库连接
        conn = DriverManager.getConnection(URL, USER, PASSWORD);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    // 返回数据库连接
    return conn;
}

/**
 * 关闭数据库连接静态方法
 *
 * @param conn 数据库连接
 */
public static void closeConn(Connection conn) {
    if (conn != null) {
        try {
            if (!conn.isClosed()) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

}

因为写了忘记保存,所以就用下老师的例子吧!!嘻嘻

完整版本文实例展示连接

完整版实例展示

发布了30 篇原创文章 · 获赞 0 · 访问量 548

猜你喜欢

转载自blog.csdn.net/weixin_44202489/article/details/102475418