鲞鲞鲞鲞鲞鲞

34 阅读7分钟
package com.example.demo.util;

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

import java.sql.Statement;
import java.sql.Connection;


public class DBConnection {
    private static final String driverName = "com.mysql.cj.jdbc.Driver";
    private static final String url = "jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B8&characterEncoding=utf-8";
    private static final String user = "root";
    private static final String password = "111111";
    private DBConnection() {

    }
    static {
        try {
            Class.forName(driverName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() throws SQLException {
        return (Connection) DriverManager.getConnection(url, user, password);
    }
    public static void close(ResultSet rs, Statement st, Connection conn) {
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (st != null) {
                    st.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    }
}
package com.example.demo;

import java.sql.*;

import com.example.demo.util.DBConnection;
import com.mysql.cj.xdevapi.Statement;

public class StudentCRUD {
	private Connection conn;
	public static void main(String[] args)throws SQLException {
		StudentCRUD crud = new StudentCRUD();

		// 测试添加记录
//		crud.add(1, "张三", 20, "男","jsjs");
//
//		// 测试查询全部记录
//	        crud.listAll();
//////
////	        // 测试更新记录
//	        crud.update(1, "李四", 21, "女","js");
			crud.getSnameAndClassBySno(123456);
////
////	        // 测试删除记录
//	        crud.delete(2);

//	        // 再次测试查询全部记录
//	        crud.listAll();
	}
	public  StudentCRUD() throws SQLException {
//		获得链接对象
		conn= DBConnection.getConnection();
		// TODO 自动生成的构造函数存根
	}
	public void add(int id, String name, int age, String gender,String department) {
//		定义sql
		String sql="insert into student(id,name,gender,age,department) value(?,?,?,?,?)";
		try {

			PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);
			pstmt.setInt(1, id);
			pstmt.setString(2, name);
			pstmt.setString(3, gender);
			pstmt.setInt(4, age);
			pstmt.setString(5, department);
			pstmt.executeUpdate();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

	}

	public void listAll() {
		String sql="select * from student";
		try {
//			Statement stmt = (Statement) conn.createStatement();
//			ResultSet rs=((StatementImpl) stmt).executeQuery(sql);
			PreparedStatement pstmt = conn.prepareStatement(sql);
			ResultSet rs=pstmt.executeQuery(sql);
			while (rs.next()) {
				int id = rs.getInt("id");
				String name = rs.getString("name");
				int age = rs.getInt("age");
				String gender = rs.getString("gender");
				String department=rs.getString("department");
				System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age + ", Gender: " + gender+",department:"+department);

			}

		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	public void update(int id, String name, int age, String gender,String department) {
		String sql = "update student set name=?,gender=?,age=?,department=?where id=?";
//		UPDATE student SET name = ?, age = ?, gender = ? WHERE id = ?
		PreparedStatement pstmt;
		try {
			pstmt =  conn.prepareStatement(sql);

			pstmt.setString(1, name);
			pstmt.setInt(3, age);
			pstmt.setString(2, gender);
			pstmt.setString(4, department);
			pstmt.setInt(5, id);

			pstmt.executeUpdate();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

	}
	public void delete(int id) {
		String sql = "delete from student where id=?";
		PreparedStatement pstmt;
		try {
			pstmt = (PreparedStatement) conn.prepareStatement(sql);
			pstmt.setInt(1, id);
			pstmt.executeUpdate();
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

	}
	



}

package com.example.demo;

import com.example.demo.util.DBConnection;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TransactionTest {
    public Connection conn;

    public static void main(String[] args) throws SQLException {
        Transaction(1,2,500);
    }
    public  TransactionTest() throws SQLException {
//		获得链接对象
        conn= DBConnection.getConnection();
        // TODO 自动生成的构造函数存根
    }
     public static void Transaction(int fromid,int toid,float money) throws SQLException {
         Connection conn;
         conn= DBConnection.getConnection();
        //查询余额
         conn.setAutoCommit(false);

            float yue= balance(fromid);
         if (yue < money) {
             System.out.println("余额不足");
             return;
         }
         updatebalance(fromid,yue-money);
         updatebalance(toid,balance(toid)+money);
         conn.commit();


     }

    private static void updatebalance(int id, float v) throws SQLException {
        Connection conn;
        conn= DBConnection.getConnection();
        String sql = "update user set money=?where id=?";
//		UPDATE student SET name = ?, age = ?, gender = ? WHERE id = ?
        PreparedStatement pstmt;
        try {
            pstmt = (PreparedStatement) conn.prepareStatement(sql);

            pstmt.setFloat(1, v);
            pstmt.setInt(2, id);


            pstmt.executeUpdate();
        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

    }

    private static float balance(int id) throws SQLException {
        Connection conn;
        conn= DBConnection.getConnection();
        String sql="select * from user";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            ResultSet rs=pstmt.executeQuery(sql);
            while (rs.next()) {

                 if(rs.getInt("id")==id){
                     return rs.getFloat("money");
                 }


            }

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

        return 0;
    }



}
package com.example.demo1;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class TestServlet extends HelloServlet{

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("这是TestServlet");
    }
}
  <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>com.example.demo1.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/TestServlet</url-pattern>
    </servlet-mapping>
package com.example.demo1;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/TestServlet2")
public class TestServlet2 extends HelloServlet{



    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("这是TestServlet2");
    }
}
    <form id="reg-form" action="/demo1_war_exploded/registerServlet1" method="post">

        <table>

            <tr>
                <td>用户名</td>
                <td class="inputs">
                    <input name="username" type="text" id="username">
                    <br>
                    <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
                </td>

            </tr>

            <tr>
                <td>密码</td>
                <td class="inputs">
                    <input name="password" type="password" id="password">
                    <br>
                    <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                </td>
            </tr>
            <tr>
                <td>性别</td>
                <td class="inputs" >
                    <input type="radio" name="gender" value="male" > Male
                    <input type="radio" name="gender" value="female"> Female
                    <input type="radio" name="gender" value="other"> Other
                </td>
            </tr>
            <tr>
                <td>爱好</td>
                <td class="inputs" style="color: #333333">
                    <input type="checkbox" name="fruit" value="王者荣耀">王者荣耀
                    <input type="checkbox" name="fruit" value="火影忍者">火影忍者
                </td>
            </tr>







        </table>

        <div class="buttons">
            <input value="注 册" type="submit" id="reg_btn">
        </div>
        <br class="clear">
    </form>
package com.example.demo1.web;

import com.example.demo1.HelloServlet;
import com.example.demo1.util.CRUD;
import com.example.demo1.util.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet("/registerServlet1")
public class registerServlet extends HelloServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("UTF-8");
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        String gender=request.getParameter("gender");
        String []fruit = request.getParameterValues("fruit");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter writer= response.getWriter();

        try {

            if(new CRUD().selsct(username)){

                new CRUD().add(username,password);
                writer.println(username+password+gender+fruit[0]+fruit[1]);

            }else {
                System.out.println(456);
            }


        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}
package com.example.demo1.web;

import com.example.demo1.HelloServlet;
import com.example.demo1.util.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/RequestScopeServlet")
public class RequestScopeServlet extends HelloServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        Student student= new Student("鹿津愉",21);
        request.setAttribute("student",student);

        HttpSession session = request.getSession();
        session.setAttribute("student",student);

        getServletContext().setAttribute("student",student);
        try {
            request.getRequestDispatcher("/receive").forward(request,response);
        } catch (ServletException e) {
            throw new RuntimeException(e);
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
package com.example.demo1.web;

import com.example.demo1.HelloServlet;
import com.example.demo1.util.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/RequestScopeServlet2")
public class RequestScopeServlet2 extends HelloServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        Student student= new Student("鹿津愉",21);
        request.setAttribute("student",student);

        HttpSession session = request.getSession();
        session.setAttribute("student",student);

        getServletContext().setAttribute("student",student);
        response.sendRedirect( request.getContextPath() + "/receive2");

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }
}


package com.example.demo1.web;

import com.example.demo1.HelloServlet;
import com.example.demo1.util.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(urlPatterns = "/receive")

//@WebServlet( "/receive")
public class ReceiveServlet extends HelloServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
//        Student student= new Student("鹿津愉",21);
//        request.setAttribute("student",student);


         Student pagestudent= (Student) request.getAttribute("student");
        Student sessionstudent= (Student) request.getSession().getAttribute("student");


//
//        HttpSession session = request.getSession();
//        session.setAttribute("student",student);
//
//        getServletContext().setAttribute("student",student);
        Student applicationstudent= (Student) request.getServletContext().getAttribute("student");
        System.out.println(pagestudent.toString());
        System.out.println(sessionstudent.toString());
        System.out.println(applicationstudent.toString());
        response.setContentType("text/html;charset=utf-8");
        PrintWriter writer= response.getWriter();
        writer.write("pagestudent:"+pagestudent.toString());
        writer.write("sessionstudent:"+sessionstudent.toString());
        writer.write("applicationstudent:"+applicationstudent.toString());



    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

package com.example.demo1.web;

import com.example.demo1.HelloServlet;
import com.example.demo1.util.Student;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(urlPatterns = "/receive2")

//@WebServlet( "/receive")
public class ReceiveServlet2 extends HelloServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
//        Student student= new Student("鹿津愉",21);
//        request.setAttribute("student",student);


//         Student pagestudent= (Student) request.getAttribute("student");
        Student sessionstudent= (Student) request.getSession().getAttribute("student");


//
//        HttpSession session = request.getSession();
//        session.setAttribute("student",student);
//
//        getServletContext().setAttribute("student",student);
        Student applicationstudent= (Student) request.getServletContext().getAttribute("student");
//        System.out.println(pagestudent.toString());
        System.out.println(sessionstudent.toString());
        System.out.println(applicationstudent.toString());
        response.setContentType("text/html;charset=utf-8");
        PrintWriter writer= response.getWriter();
//        writer.write("pagestudent:"+pagestudent.toString());
        writer.write("sessionstudent:"+sessionstudent.toString());
        writer.write("applicationstudent:"+applicationstudent.toString());



    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
	<persistence-unit name="dome">
		<class>model.College</class>
		<class>model.School</class>
		<class>model.Classa</class>
		<class>model.Student</class>
		

		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8&amp;serverTimezone=UTC&amp;rewriteBatchedStatements=true"/>
			<property name="javax.persistence.jdbc.user" value="root"/>
			<property name="javax.persistence.jdbc.password" value="111111"/>
		</properties>
	</persistence-unit>
</persistence>


package util;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class EntityManagerUtil {
	  private static final EntityManagerFactory entityManagerFactory;
	  static {
	    try {
	      entityManagerFactory = Persistence.createEntityManagerFactory("dome");

	    } catch (ExceptionInInitializerError ex) {
	      System.err.println("初始化工厂失败" + ex);
	      throw new ExceptionInInitializerError(ex);
	    }
	  }
	  public static EntityManager getEntityManager() {
	    return entityManagerFactory.createEntityManager();

	  }
	}

package model;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the student database table.
 * 
 */
@Entity
@NamedQuery(name="Student.findAll", query="SELECT s FROM Student s")
public class Student implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private String stuid;

	private int age;

	@Temporal(TemporalType.DATE)
	private Date birthday;

	private String className;

	private String name;

	private String sex;


	//bi-directional one-to-one association to Classa
	@OneToOne(mappedBy="student2")
	private Classa classa;

	@Override
	public String toString() {
		return "Student [stuid=" + stuid + ", age=" + age + ", birthday=" + birthday + ", className=" + className
				+ ", name=" + name + ", sex=" + sex + " ]";
	}

	public Student() {
	}

	public String getStuid() {
		return this.stuid;
	}

	public void setStuid(String stuid) {
		this.stuid = stuid;
	}

	public int getAge() {
		return this.age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getBirthday() {
		return this.birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public String getClassName() {
		return this.className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return this.sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}



	public Classa getClassa() {
		return this.classa;
	}

	public void setClassa(Classa classa) {
		this.classa = classa;
	}

}


package model;

import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the classas database table.
 * 
 */
@Entity
@Table(name="classas")
@NamedQuery(name="Classa.findAll", query="SELECT c FROM Classa c")
public class Classa implements Serializable {
	@Override
	public String toString() {
		return "Classa [id=" + id + ", name=" + name + "]";
	}

	private static final long serialVersionUID = 1L;

	@Id
	private int id;

	private String name;

	//bi-directional many-to-one association to Student


	//bi-directional one-to-one association to Student
	@OneToOne
	@JoinColumn(name="monitor_id")
	private Student student2;

	public Classa() {
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}


	public Student getStudent2() {
		return this.student2;
	}

	public void setStudent2(Student student2) {
		this.student2 = student2;
	}

}


package model;

import java.io.Serializable;
import javax.persistence.*;


/**
 * The persistent class for the colleges database table.
 * 
 */
@Entity
@Table(name="colleges")
@NamedQuery(name="College.findAll", query="SELECT c FROM College c")
public class College implements Serializable {
	@Override
	public String toString() {
		return "College [id=" + id + ", name=" + name + "]";
	}

	private static final long serialVersionUID = 1L;
	@Id
	private String id;

	private String name;

	//bi-directional many-to-one association to School
	@ManyToOne
	@JoinColumn(name="school_id")
	private School school;

	public College() {
		
	}

	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public School getSchool() {
		return this.school;
	}

	public void setSchool(School school) {
		this.school = school;
	}

}


package model;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the schools database table.
 * 
 */
@Entity
@Table(name="schools")
@NamedQuery(name="School.findAll", query="SELECT s FROM School s")
public class School implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private String id;

	private String name;

	//bi-directional many-to-one association to College
	@OneToMany(mappedBy="school")
	private List<College> colleges;

	public School() {
	}

	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<College> getColleges() {
		return this.colleges;
	}

	public void setColleges(List<College> colleges) {
		this.colleges = colleges;
	}

	@Override
	public String toString() {
		return "School [id=" + id + ", name=" + name + "]";
	}

	public College addCollege(College college) {
		getColleges().add(college);
		college.setSchool(this);

		return college;
	}

	public College removeCollege(College college) {
		getColleges().remove(college);
		college.setSchool(null);

		return college;
	}

}


package dao;

import javax.persistence.EntityManager;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.junit.jupiter.api.Test;

import model.Classa;
import model.College;
import model.School;
import model.Student;
import util.EntityManagerUtil;

public class Studentinfodao {

@Test
public List<Student> getStudents() {
	EntityManager em=EntityManagerUtil.getEntityManager();
	Query query=em.createNamedQuery("Student.findAll");
	List<Student> students=query.getResultList();
	em.close();
	return students;

}
public void addStudents(String id, String name,String classname){
	EntityManager em=EntityManagerUtil.getEntityManager();
	Student student=new Student();
	student.setStuid(id);
	student.setName(name);
	student.setAge(0);
	student.setClassName(classname);
	em.getTransaction().begin();
	em.persist(student);
	em.getTransaction().commit();
	
	em.close();
}
public void updateStudent(Student student){
	EntityManager em=EntityManagerUtil.getEntityManager();
	em.getTransaction().begin();
	em.merge(student);
	em.getTransaction().commit();
	em.close();
}
//public void updateStudent(String classname){
//	EntityManager em=EntityManagerUtil.getEntityManager();
//	String jpql="update Student s set s.name=concat(s.name,'*') where s.classinfo.className=:classname";
//	Query query=em.createQuery(jpql).setParameter("classname", classname);
//	em.getTransaction().begin();
//	query.executeUpdate();
//	em.getTransaction().commit();
//}

public Student getUserById(String studentid){
	EntityManager em=EntityManagerUtil.getEntityManager();
	Student user=em.find(Student.class, studentid);
	return user;
}

////根据已定义好的Query语句名查询
//public List<S> getUsers(){
//	EntityManager em=EntityManagerUtil.getEntityManager();
//	Query query=em.createNamedQuery("User.findAll");
//	List<User> users=query.getResultList();
//	return users;
//}
//
//public List<User> getUsersByName(String username){
//	EntityManager em=EntityManagerUtil.getEntityManager();
//	Query query=em.createQuery("SELECT u FROM User u where u.name like :name");
//	List<User> users=query.setParameter("name", "%"+username+"%").getResultList();
////	query.getSingleResult();
//	return users;
//}

public void delUser(Integer studentid){
	EntityManager em=EntityManagerUtil.getEntityManager();
	Student student=em.find(Student.class, studentid);
	em.getTransaction().begin();
	em.remove(student);
	em.getTransaction().commit();
}


public Student as() {
	EntityManager em=EntityManagerUtil.getEntityManager();
	Classa aClassa =  em.find(Classa.class, 1);
	Student studen=aClassa.getStudent2();
	return studen;
	
	
	
}
public School school() {
	EntityManager em=EntityManagerUtil.getEntityManager();
	College college = em.find(College.class, "1");
	return college.getSchool();
	
	
	
}

public List<College> co() {
	EntityManager em=EntityManagerUtil.getEntityManager();
	School school= em.find(School.class, "1");
	System.out.println(school);
	return school.getColleges() ;
	
	
	
}



}

<%@ page language="java" contentType="text/html; charset=utf-8"
         pageEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>登陆窗口</title>
</head>
<body>
<form action="LoginValid.jsp" method="post">
    <table border=0>
        <tr>
            <td>用户名:</td>
            <td><input name='name' type='text' value=''/></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input name='password' type='password' value=''/></td>
        </tr>
        <tr>
            <td colspan=2 align=right>
                <input type="reset" value="重置" class="btn">
                <input type='submit' value='提交'/>
                <a href="http://localhost:8080/student/register.jsp">注册</a>
            </td>

        </tr>
        <tr>
            <td colspan=2 align=right>${param.error}</td>
        </tr>
    </table>
</form>

<%--<%--%>
<%--    response.sendRedirect("myName.jsp");--%>
<%--%>--%>
<%--<%--%>
<%--response.sendRedirect("myName.jsp");%>--%>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: 联想
  Date: 2023/11/10
  Time: 15:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>listStudent</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/getUserListServlet" method="post">
    用户名:<input type="text" name="username" value="${param.username}"/>&nbsp;&nbsp;
    性别:<input type="text" name="sex" value="${param.sex}"/>
    <input type="submit" value="查询"/>
    <a href="${pageContext.request.contextPath}/student/AddUser.jsp">添加</a>
</form>


<table class="mtable2">
    <caption>学生列表</caption>
    <tr>
        <th>序号</th>
        <th>用户id</th>
        <th>用户名</th>
        <th>密码</th>
        <th>性别</th>
        <th>年龄</th>
        <th>出生日期</th>
        <th>操作</th>
    </tr>
    <c:forEach var="tmp" items="${requestScope.users}" varStatus="s">
        <tr>
            <td>${s.index+1}</td>
            <td>${tmp.userid}</td>
            <td>${tmp.username}</td>
            <td>${tmp.password}</td>
            <td>${tmp.sex}</td>
            <td>${tmp.age}</td>
            <td>${tmp.birthday}</td>
            <td><a href="${pageContext.request.contextPath}/student/UpdateUser.jsp?userid=${tmp.userid}">修改</a>;
                <a href="${pageContext.request.contextPath}/DeleteUserServlet?userid=${tmp.userid}"
                   onclick="if(!confirm('确定要删除吗?')) return false;">删除</a></td>
        </tr>
    </c:forEach>
</table>
<div class="pager">
    <c:set var="maxPage" value="${sessionScope.maxPage}"/>
    <span style="margin-right: 15px">
        <c:choose>
            <c:when test="${sessionScope.PageNo > 1}">
                <a href="http://localhost:8080/getUserListServlet?pageNo=1&username=${param.username}&sex=${param.sex}">首页</a>
            </c:when>
            <c:otherwise>
                首页
            </c:otherwise>
        </c:choose>
    </span>
    <span style="margin-right: 15px">
        <c:choose>
            <c:when test="${sessionScope.PageNo > 1}">
                <a href="http://localhost:8080/getUserListServlet?pageNo=${sessionScope.PageNo - 1}&username=${param.username}&sex=${param.sex}">上一页</a>
            </c:when>
            <c:otherwise>
                上一页
            </c:otherwise>
        </c:choose>
    </span>

    ${sessionScope.PageNo}
    <span style="margin-left: 15px">
        <c:choose>
            <c:when test="${sessionScope.PageNo < sessionScope.maxPage}">
                <a href="http://localhost:8080/getUserListServlet?pageNo=${sessionScope.PageNo + 1}&username=${param.username}&sex=${param.sex}">下一页</a>
            </c:when>
            <c:otherwise>
                下一页
            </c:otherwise>
        </c:choose>
    </span>
    <span style="margin-left: 15px">
        <c:choose>
            <c:when test="${sessionScope.PageNo < sessionScope.maxPage}">
                <a href="http://localhost:8080/getUserListServlet?pageNo=${maxPage}&username=${param.username}&sex=${param.sex}">尾页</a>
            </c:when>
            <c:otherwise>
                尾页
            </c:otherwise>
        </c:choose>
    </span>
</div>
${error}
</body>
</html>

package servlet;

import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.UserBean;

/**
 * Servlet implementation class AddUserServlet
 */
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddUserServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		
		UserBean newuser=new UserBean();
		newuser.setUserid(request.getParameter("userid"));
		newuser.setUsername(request.getParameter("username"));
		newuser.setSex(request.getParameter("sex"));
		String age=request.getParameter("age");
		if(age.equals("")) age=null;
		newuser.setAge(age);
		newuser.setBirthday(request.getParameter("birthday"));
		newuser.setPassword(request.getParameter("password"));
		newuser.setConfirmpassword(request.getParameter("confirmpassword"));
		
		Map<String, String> errors=null;
		try{
			errors=newuser.checkUser();
			if(errors.size()==0) newuser.addUser();
		}catch(Exception e){
			errors.put("othererr", "增加失败:"+e.getMessage());
		}
	    if(errors.size()!=0){
	    	request.setAttribute("errors", errors);
			request.getRequestDispatcher("/user/AddUser.jsp").forward(request, response);
	    }else{
	    	request.getRequestDispatcher("/user/MagUser.jsp").forward(request, response);
	    }
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package servlet;

import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.UserBean;

/**
 * Servlet implementation class AddUserServlet
 */
@WebServlet("/AddUserServlet")
public class AddUserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AddUserServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		
		UserBean newuser=new UserBean();
		newuser.setUserid(request.getParameter("userid"));
		newuser.setUsername(request.getParameter("username"));
		newuser.setSex(request.getParameter("sex"));
		String age=request.getParameter("age");
		if(age.equals("")) age=null;
		newuser.setAge(age);
		newuser.setBirthday(request.getParameter("birthday"));
		newuser.setPassword(request.getParameter("password"));
		newuser.setConfirmpassword(request.getParameter("confirmpassword"));
		
		Map<String, String> errors=null;
		try{
			errors=newuser.checkUser();
			if(errors.size()==0) newuser.addUser();
		}catch(Exception e){
			errors.put("othererr", "增加失败:"+e.getMessage());
		}
	    if(errors.size()!=0){
	    	request.setAttribute("errors", errors);
			request.getRequestDispatcher("/user/AddUser.jsp").forward(request, response);
	    }else{
	    	request.getRequestDispatcher("/user/MagUser.jsp").forward(request, response);
	    }
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.UserBean;

/**
 * Servlet implementation class DeleteUserServlet
 */
@WebServlet("/DeleteUserServlet")
public class DeleteUserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public DeleteUserServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		
		String userid=request.getParameter("userid");
		String error="";
		try{
			UserBean userbean=new UserBean();
			userbean.setUserid(userid);
			userbean.delUserById();
		}catch(Exception e){
			error="删除[userid:"+userid+"]出错:"+e.getMessage();
		}
		request.setAttribute("error", error);
		request.getRequestDispatcher("/GetUsersServlet").forward(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.UserBean;
import bpo.UserBpo;

/**
 * Servlet implementation class GetUsersServlet
 */
@WebServlet("/GetUsersServlet")
public class GetUsersServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public GetUsersServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		
		String username=request.getParameter("username");
		String sex=request.getParameter("sex");
		String error="";
		List<UserBean> users=null;
		try{
			UserBpo userbpo=new UserBpo();
			users=userbpo.getUsers(username, sex);
		}catch(Exception e){
			error="查询用户出错:"+e.getMessage();
		}
		
		request.setAttribute("error", error);
		request.setAttribute("users", users);
		request.getRequestDispatcher("/user/MagUser.jsp").forward(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package servlet;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.UserBean;

/**
 * Servlet implementation class UpdateUserServlet
 */
@WebServlet("/UpdateUserServlet")
public class UpdateUserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UpdateUserServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		UserBean user=this.getUserFromRequest(request);
		Map<String,String> errors=this.valid(user);
		try {
			user.updateUser();
		} catch (Exception e) {
			errors.put("othererr", "更新数据失败:"+e.getMessage());
		}
		if(errors.size()!=0){
			request.setAttribute("errors", errors);
			request.setAttribute("updateuser", user);
			request.getRequestDispatcher("/user/UpdateUser.jsp").forward(request, response);
		}else{
			response.sendRedirect(request.getContextPath()+"/user/MagUser.jsp");
		}
	}

	private Map<String,String> valid(UserBean user){
		Map<String,String> errors=new HashMap<String,String>();
		if(user.getUsername().equals("")) errors.put("username", "用户名不能为空!");
		return errors;
	}
	private UserBean getUserFromRequest(HttpServletRequest request){
		String userid=request.getParameter("userid");
		String username=request.getParameter("username");
		String sex=request.getParameter("sex");
		String age=request.getParameter("age");
		String birthday=request.getParameter("birthday");
		
		UserBean user=new UserBean();
		user.setUserid(userid);
		user.setUsername(username);
		user.setSex(sex);
		user.setAge(age);
		user.setBirthday(birthday);
		
		return user;
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request,response);
	}

}
<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8" errorPage="/error.jsp"  %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/LoginCheck.jsp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>增加用户信息</title>
		<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css" />
		<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/common.css" />
	</head>
	<body>
	  <div id="wrapper">
	 	<!-- header -->
	   <div class="header">
			<jsp:include page="/header.jsp" flush="true"/>
	    </div>
		<!-- menu -->
		<div class="menu">
			<jsp:include page="/user/menu.jsp"/>
		</div>
		<!-- content -->
		<div class="content">
			<form action="${pageContext.request.contextPath}/AddUserServlet" method="post">
				<table class="mtable3" align=center>
					<caption>增加用户基本信息</caption>
					<tr><td>用户id:</td>
						<td><input type="text" name="userid" value="${newuser.userid}"/>${errors.userid}</td></tr>
					<tr><td>用户名:</td>
						<td><input type="text" name="username" value="${newuser.username}"/>${errors.username}</td></tr>
					<tr>
						<td>密码:</td><td><input type="password" name="password"/>${errors.password}</td></tr>
					<tr>
						<td>确认密码:</td><td><input type="password" name="confirmpassword"/>${errors.confirmpassword}</td></tr>
					<tr><td>性别</td><td><input type="text" name="sex" value="${newuser.sex}"/></td></tr>
					<tr><td>年龄</td><td><input type="text" name="age" value="${newuser.age}"/></td></tr>
					<tr><td>出生日期</td><td><input type="text" name="birthday" value="${newuser.birthday}"/></td></tr>
					<tr><td><input type="reset" value="重置"/><input type="submit" value="提交"/></td></tr>
				</table>
				${errors.othererr}
			</form>
		</div>
		<!-- footer -->
		<div class="footer">
			<jsp:include page="/footer.jsp" flush="true"/>
		</div>
	  </div>
		
	</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8" errorPage="/error.jsp"  %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ include file="/LoginCheck.jsp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>用户管理</title>
		<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/style.css"/>
		<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/common.css" />
	</head>
	<body>
	  <div id="wrapper">
	 	<!-- header -->
	   <div class="header">
			<jsp:include page="/header.jsp" flush="true"/>
	    </div>
		<!-- menu -->
		<div class="menu">
			<jsp:include page="/user/menu.jsp"/>
		</div>
		<!-- content -->
		<div class="content">
			<form action="${pageContext.request.contextPath}/GetUsersServlet" method="post">
				用户名:<input type="text" name="username" value="${param.username}"/>&nbsp;&nbsp;
				性别:<input type="text" name="sex" value="${param.sex}"/>
				<input type="submit" value="查询"/>
			</form>
		
			<table class="mtable2">
				<caption>用户列表</caption>
				<tr><th>序号</th><th>用户id</th><th>用户名</th><th>密码</th><th>性别</th><th>年龄</th><th>出生日期</th><th>操作</th></tr>
				<c:forEach var="tmp" items="${users}" varStatus="s">
					<tr>
						<td>${s.index+1}</td>
						<td>${tmp.userid}</td>
					    <td>${tmp.username}</td>
					    <td>${tmp.password}</td>
					    <td>${tmp.sex}</td>
					    <td>${tmp.age}</td>
					    <td>${tmp.birthday}</td>
					    <td><a href="${pageContext.request.contextPath}/user/UpdateUser.jsp?userid=${tmp.userid}">修改</a>
					   	 &nbsp;&nbsp;&nbsp;&nbsp;
					    	<a href="${pageContext.request.contextPath}/DeleteUserServlet?userid=${tmp.userid}"
					    	onclick="if(!confirm('确定要删除吗?')) return false;">删除</a></td>
					</tr>
				</c:forEach>
			</table>
			${error}
		</div>
		<!-- footer -->
		<div class="footer">
			<jsp:include page="/footer.jsp" flush="true"/>
		</div>
	  </div>
		
	</body>
</html>
package src.servlet;

import src.dao.UserDao;
import src.model.User;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



/**
 * Servlet implementation class Login
 */
@WebServlet("/Login")
public class Login extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Login() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String username =request.getParameter("name");
		String password =request.getParameter("password");
		System.out.println(username);
		response.setContentType("text/html;charset=utf-8");

		UserDao userdao=new UserDao();
		User user=userdao.validLogin(username, password);
		System.out.println(user.toString());
		PrintWriter writer= response.getWriter();

		if(user==null){
			writer.write("登陆失败");
		}else {
			request.getSession().setAttribute("user", user);
			String usertype=user.getType();
			if(usertype.equals("管理员"))  response.sendRedirect(request.getContextPath()+"/LoginSuccess.jsp");
			if(usertype.equals("学生"))  response.sendRedirect(request.getContextPath()+"/LoginSuccess.jsp");
		}
//         }
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package src.dao;

import src.model.Student;
import src.model.User;
import src.util.EntityManagerUtil;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import java.util.List;


public class UserDao {
	public User validLogin(String username, String password){
		User user=new User();
		EntityManager em= EntityManagerUtil.getEntityManager();
		Query query=em.createNamedQuery("User.valid");
		try{
			user=(User)query.setParameter("username", username).setParameter("password", password).getSingleResult();
		}catch(NoResultException e){
			user=null;
		}
		return user;
	}
	public List<Student> getStudents(){
		EntityManager em=EntityManagerUtil.getEntityManager();
		Query query=em.createNamedQuery("Student.findAll");
		List<Student> students=query.getResultList();
		em.close();
		return students;
	}


public static void main(String[] args) {
	
	UserDao userDao= new UserDao();
	List<Student> students=userDao.getStudents();
	for ( Student use:students) {
		System.out.println(use.getName());

	}

//	UserDao userDao= new UserDao();
//	User user=userDao.validLogin("2","1" );
//	System.out.println(user.toString());
}
}

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8" errorPage="error.jsp" %>

<%@ include file="LoginCheck.jsp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>登陆成功</title>
		<link rel="stylesheet" type="text/css" href="css/style.css" />
	</head>
	<body>
	  <div id="wrapper">
	 	<!-- header -->
	   <div class="header">
			<jsp:include page="header.jsp" flush="true"/>
	    </div>
		<!-- menu -->
		<div class="menu">
			<ul>
				<li><a href="user/MagUser.jsp">用户管理</a></li>
				<li><a href="#">学生管理</a></li>
				<li><a href="#">课程管理</a></li>
			</ul>
		</div>
		<!-- content -->
		<div class="content">
			
		</div>
		<!-- footer -->
		<div class="footer">
			<jsp:include page="footer.jsp" flush="true"/>
		</div>
	  </div>
		
	</body>
</html>