一、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();
}
}
}
}
因为写了忘记保存,所以就用下老师的例子吧!!嘻嘻
完整版本文实例展示连接