数据库设计:
java类:
DaoUtil.java:工具类
package com.c1810.liule.dao.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DaoUtil {
private final String DBDRIVER ="com.mysql.jdbc.Driver";
//定义数据库连接URL
private final String DBURL = "jdbc:mysql://localhost:3306/login" ;
//定义数据库连接用户名
private final String DBUSER = "root" ;
//定义数据库连接密码
private final String DBPASSWORD = "123" ;
//定义数据库连接对象
private Connection conn = null ;
//构造方法,加载驱动
public DaoUtil(){
try{
Class.forName(DBDRIVER) ;
conn =(Connection) DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
}
catch (Exception e){
System.out.println("加载驱动失败");
}
}
// 取得数据库连接
public Connection getConnection(){
return conn ;
}
// 关闭资源
public static void closeAll(ResultSet rs, PreparedStatement st, Connection conne) {
try {
if (null != rs) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (st!= null ) {
st.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (conne != null) {
conne.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
StudentImol.java:接口实现类
package com.c1810.liule.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.c1810.liule.dao.common.DaoUtil;
import com.c1810.liule.dao.inter.StudentDao;
import com.c1810.liule.pojo.Student;
public class StudentImol implements StudentDao {
Connection conne = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
DaoUtil dbc = null ;
@Override
public boolean add(Student student) throws Exception {
// TODO Auto-generated method stub
String sql = "INSERT INTO student(id,name,pwd,age,sex) VALUES(?,?,?,?,?)" ;
// 下面是针对数据库的具体操作
try{
// 连接数据库
dbc = new DaoUtil() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1, student.getId());
pstmt.setString(2, student.getName());
pstmt.setString(3, student.getPwd());
pstmt.setString(4, student.getAge());
pstmt.setString(5, student.getSex());
// 进行数据库更新操作
pstmt.executeUpdate();
// 关闭数据库连接
if(dbc!=null) {
dbc.closeAll(rs, pstmt, conne);
return true;
}
}catch (Exception e){
throw new Exception("操作出现异常") ;
}
return false;
}
@Override
public boolean delete(Student student) throws Exception {
// TODO Auto-generated method stub
String sql = "DELETE FROM student WHERE id=?" ;
// 下面是针对数据库的具体操作
try{
// 连接数据库
dbc = new DaoUtil() ;
pstmt = (PreparedStatement) dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,student.getId()) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
if(dbc!=null) {
dbc.closeAll(rs, pstmt, conne);
return true;
}
}catch (Exception e){
throw new Exception("操作出现异常") ;
}
return false;
}
@Override
public boolean update(Student student) throws Exception {
// TODO Auto-generated method stub
String sql = "UPDATE student SET name=?,pwd=?,age=?,sex=? WHERE id=?" ;
// 下面是针对数据库的具体操作
try{
// 连接数据库
dbc = new DaoUtil() ;
pstmt = (PreparedStatement) dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1, student.getName());
pstmt.setString(2, student.getPwd());
pstmt.setString(3,student.getAge());
pstmt.setString(4, student.getSex());
pstmt.setString(5, student.getId());
// 进行数据库更新操作
pstmt.executeUpdate() ;
if(dbc!=null) {
dbc.closeAll(rs, pstmt, conne);
return true;
}
}
catch (Exception e){
throw new Exception("操作出现异常") ;
}
return false;
}
@Override
public String select(Student student) {
// TODO Auto-generated method stub
String sql = "SELECT * FROM student WHERE id=?" ;
// 下面是针对数据库的具体操作
// 连接数据库
dbc = new DaoUtil() ;
try {
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1, student.getId());
// 进行数据库查询操作
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
// 查询出内容,之后将查询出的内容赋值给student对象
student = new Student() ;
student.setId(rs.getString(1));
return rs.getString(1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
StudentDao.java:接口类
package com.c1810.liule.dao.inter;
import com.c1810.liule.pojo.Student;
public interface StudentDao {
public boolean add(Student student) throws Exception ;
public boolean delete(Student student) throws Exception;
public boolean update(Student student) throws Exception;
public String select(Student student);
}
Student.java:实体类
package com.c1810.liule.pojo;
public class Student {
private String id;
private String name;
private String age;
private String sex;
private int classid;
private String pwd;
private String emaill;
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmaill() {
return emaill;
}
public void setEmaill(String emaill) {
this.emaill = emaill;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getClassid() {
return classid;
}
public void setClassid(int classid) {
this.classid = classid;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
下面是JSP代码:
login.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>
<%
String names="";
String pwds="";
Cookie cks[]=request.getCookies();
if(cks!=null){
for(Cookie ck:cks){
if(ck.getName().equals("names")){
names=ck.getValue();
}else if(ck.getName().equals("pwds")){
pwds=ck.getValue();
}
}
}
%>
</head>
<body>
<form action="dection.jsp" method="post">
id:<input type="text" name="id"><br>
姓名:<input type="text" name="name"><br>
密码:<input type="password" name="pwd"><br>
年龄:<input type="number" name="age"><br>
性别:<input type="text" name="sex"><br>
<input type="submit" value="注册" name="login">
<input type="submit" value="删除" name="login">
<input type="submit" value="修改" name="login">
</form>
</body>
</html>
登录过后进入判断界面:
dection.jsp:判断代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
//导入java包
<%@ page import="com.c1810.liule.dao.impl.StudentImol" %>
<%@ page import="com.c1810.liule.pojo.Student" %>
<%@ page import="com.c1810.liule.dao.inter.StudentDao" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%
request.setCharacterEncoding("utf-8");//转换字符编码格式
//取值
String id=request.getParameter("id");
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
String age=request.getParameter("age");
String sex=request.getParameter("sex");
String submit=request.getParameter("login");
%>
<%
//调用java类
StudentDao sdd=new StudentImol();
//将登录界面各控件的值赋给student实体类的属性
Student st=new Student();
st.setId(id);
st.setName(name);
st.setPwd(pwd);
st.setSex(sex);
st.setAge(age);
//添加前进行查询判断
//得到查询方法返回的ID
String ids=sdd.select(st);
//得到login界面submit的value值 并且满足当前ID在数据库中不存在
if(submit.equals("注册")&&!ids.equals(id)){
//添加方法
sdd.add(st);
RequestDispatcher rd= request.getRequestDispatcher("welcom.jsp");
session.setAttribute("liu", id);
rd.forward(request, response);
}else if(submit.equals("删除")){
//删除方法
sdd.delete(st);
RequestDispatcher rd= request.getRequestDispatcher("welcom.jsp");
session.setAttribute("liu", id);
rd.forward(request, response);
}
else if(submit.equals("修改")){
//修改方法
sdd.update(st);
RequestDispatcher rd= request.getRequestDispatcher("welcom.jsp");
session.setAttribute("liu", id);
rd.forward(request, response);
}else{
//添加失败返回login登录页面
out.print("你好");
response.sendRedirect("login.jsp");
};
%>
</head>
<body>
</body>
</html>
根据判断界面的逻辑决定返回那个界面
welcom.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>
<%
String submit=request.getParameter("login");
String liu=(String)session.getAttribute("liu");
//如果没有经过login页面直接进入当前页面强制返回login登录页面
if(liu==null){
//response.sendRedirect("NewFile1.jsp");
RequestDispatcher rd= request.getRequestDispatcher("login.jsp");
rd.forward(request, response);
}
%>
</head>
<body>
<%
if(submit.equals("注册")){
out.println(liu+"注册成功");
}
if(submit.equals("删除")){
out.println(liu+"删除成功");
}
if(submit.equals("修改")){
out.println(liu+"修改成功");
}
%>
</body>
</html>
因当前连接的是mysql数据库 所以需要导入mysql插件
mysql-connector-java-5.1.47.jar;