任务
1.通过连接数据库完成用户登录模块。
2.登录成功后查询出一张数据库表中的内容;登录不成功返回登录页面。
3.页面面端要有空值和非法字符验证。
4.登录成功后对一张表中数据进行增加、删除、修改和查询操作。
代码
数据库相关代码
创建数据库
名字为jdbcHomework,字符编码为utf8
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W3fkdYHU-1722337844103)(https://i-blog.csdnimg.cn/blog_migrate/d5fa8372fdfbfd3b571d5cd8e75fe105.png)]
数据库创建表
学生表
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`Sid` char(11) CHARACTER SET utf8 NOT NULL,
`Sname` char(50) CHARACTER SET utf8 DEFAULT NULL,
`Ssex` char(2) CHARACTER SET utf8 DEFAULT NULL,
`Sclass` char(50) CHARACTER SET utf8 DEFAULT NULL,
`Syuanxi` char(50) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`Sid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='jdbc作业';
用户表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`Userid` char(11) NOT NULL,
`Username` char(50) DEFAULT NULL,
`Userpwd` varchar(12) DEFAULT NULL,
PRIMARY KEY (`Userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='jdbc作业';
数据库的表中插入数据
学生表
INSERT INTO `student` VALUES ('20221104122', '李静静', '女', '计科(专升本)1班', '计算机');
INSERT INTO `student` VALUES ('20221104204', '柯柯', '女', '计科(专升本)2班', '计算机');
INSERT INTO `student` VALUES ('20221104250', 'zyp', '男', '自动化1班', '自动化');
用户表
INSERT INTO `user` VALUES ('20221104122', '洛可可', '666666');
INSERT INTO `user` VALUES ('root', '洛可可', 'root');
myeclipse中代码
src的jdbcHomework包中的代码
功能:连接数据库
1.LinkMysql.java为连接mysql的代码,包括驱动、密码、url,用于登录界面、登录检查、增删改查的后台处理
2.ConnectionFactory.java为为连接mysql的代码,包括驱动、密码、url,用于登录成功后界面linkMysql.jsp连接数据库
3.本次学习时上面类使用方法是通过javaBean的id获取链接,从而连接到数据库;下面类使用方法是通过在开头导入该类,代码中新建类并用 “新建的类名.getConnection();” 方法获取链接,从而连接到数据库
1.LinkMysql
package jdbcHomework;
import java.sql.*;
public class LinkMysql {
//驱动程序
private String driverName = "com.mysql.jdbc.Driver";
//设置数据库连接URL
private String url = "jdbc:mysql://localhost:3306/jdbcHomework?useUnicode=true&characterEncoding=utf-8";
private String user = "root";//数据库登录用户名
private String password = "root";//数据库登录密码
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConnection() {
try {
Class.forName(driverName);
return DriverManager.getConnection(url, user, password);
} catch (Exception e) {
//e.printStackTrace();
System.out.println("驱动异常");
return null;
}
}
}
2.ConnectionFactory
package jdbcHomework;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
private String driverClassName = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/jdbcHomework?useUnicode=true&characterEncoding=utf-8";
private String userName = "root";
private String password = "root";
/*
private static ConnectionFactory connectionFactory=null;
private ConnectionFactory() {
try {
Class.forName(driverClassName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ConnectionFactory(){
}
*/
public Connection getConnection() throws SQLException
{
try {
Class.forName(driverClassName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
System.out.println("驱动异常");
}
return DriverManager.getConnection(url, userName, password);
}
/*
public static ConnectionFactory getInstance()
{
if (null==connectionFactory) {
connectionFactory=new ConnectionFactory();
}
return connectionFactory;
}
*/
}
WebRoot/jdbcHomework下的代码
1.登录主界面代码
login.jsp
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function checkForm(){
if (form1.id.value == null || form1.userid.value==""){
alert("请输入学号");
return false ;
}
if (form1.name.value == null || form1.username.value==""){
alert("请输入姓名");
return false ;
}
if (form1.pwd.value == null || form1.pwd.value==""){
alert("请输入密码");
return false;
}
return true;
}
</script>
</head>
<body bgcolor="pink">
<div class="top" align="center">
<h1>欢迎来到洛可可学生管理系统!!</h1>
</div>
<div class="center" align="center">
<table border="1" bgcolor=