javaWeb与mysql快速入门实现学生管理系统(增删改查等功能)(更新中 先实现增功能)

这篇博客详细介绍了如何使用JavaWeb和MySQL数据库创建一个简单的学生管理系统,包括工程创建、JDBC连接、DBUtils类的编写、Student对象类、StudentDao接口及其实现、测试类、Service接口及实现、Servlet配置以及HTML页面的创建。整个流程覆盖了数据的增删改查功能,最终实现了通过网页输入数据并存储到数据库中。
摘要由CSDN通过智能技术生成

javaWeb与mysql快速入门实现学生管理系统(增删改查等功能)

(一)创建javaweb工程项目

需要查看的可以看我之前写的下载链接

连接mysql需要用到驱动,这是官方下载链接
下载完把jar包粘贴到WebContent -> Web-INF-> lib下

在这里插入图片描述
粘贴完会看到Libraries会自动导入库
在这里插入图片描述

(二)先创建DBUtils类实现JDBC连接的构建,解释说明代码。(底下有完整代码)
在这里插入图片描述

/**
 * 
 */
package edu.mju.stuwork.utils;

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

public class DBUtils {

	private static final String CONN_STR 
	= "jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC";
	private static final String USER = "root";
	private static final String PWD = "123456";
	
	public static Connection getConn() {
		
		
		Connection conn =null;
		
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn =  DriverManager.getConnection(CONN_STR, USER, PWD);
		} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	public static void releaseRes(Connection conn,PreparedStatement pstmt, ResultSet rset){
		
		
		try {
			
			if(rset!=null) rset.close();
			if(pstmt!=null) pstmt.close();
			if(conn!=null) conn.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 }
}

(三)写Student对象类(包含 ID Name Mark 三个属性)

/**
 * 
 */
package edu.mju.stuwork.domain;

/**
 * @author ASUS
 *学生信息
 */
public class Student {

	private int stuNo;
	private String stuName;
	private double stuMark;

	public int getStuNo() {
		return stuNo;
	}

	public void setStuNo(int stuNo) {
		this.stuNo = stuNo;
	}

	public String getStuName() {
		return stuName;
	}

	public void setStuName(String stuName) {
		this.stuName = stuName;
	}

	public double getStuMark() {
		return stuMark;
	}

	public void setStuMark(double stuMark) {
		this.stuMark = stuMark;
	}

}

(四)再写一个Dao包,其作用是操作Student实体以及数据库的增删改查功能

  1. 写StudentDao的接口
package edu.mju.stuwork.dao;

import edu.mju.stuwork.domain.Student;
/**
 *  * DAO: Data Access Object
 *      其负责某个实体所有的数据库增删改查操作
 * @author ASUS
 *
 */
public interface StudentDao {
		
	void addStu(Student stu);
}

2.写一个实现增加学生信息功能

package edu.mju.stuwork.dao;

import edu.mju.stuwork.domain.Student;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import edu.mju.stuwork.utils.DBUtils;
public class StudentDaoJDBCImpl implements StudentDao {

	private static final String SQL_ADD_STU
	   = "insert into tbl_student values(?,?,?)";
	@Override
	public void addStu(Student stu) {
		Connection conn = DBUtils.getConn();
		PreparedStatement pstmt =null;
		
		try {
			pstmt = conn.prepareStatement(SQL_ADD_STU);
			pstmt.setInt(1, stu.getStuNo());
			pstmt.setString(2, stu.getStuName());
			pstmt.setDouble(3, stu.getStuMark());
			pstmt.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			DBUtils.releaseRes(conn, pstmt, null);
		}
	}

}

(五)写个测试类

package edu.mju.stuwork.test;

import edu.mju.stuwork.dao.StudentDao;
import edu.mju.stuwork.dao.StudentDaoJDBCImpl;
import edu.mju.stuwork.domain.Student;
import edu.mju.stuwork.utils.DBUtils;

public class Tester {

	public static void main(String[] args) {

		//System.out.println(DBUtils.getConn());
		Student stu = new Student();
		stu.setStuNo(9512);
		stu.setStuName("mary");
		stu.setStuMark(87.5);
		
		StudentDao stuDao = new StudentDaoJDBCImpl();
		stuDao.addStu(stu);
	}

}

运行完,去mysql查看,数据是否存入。
在这里插入图片描述
(六)写一个Service包,调用Dao包
接口

package edu.mju.stuwork.service;

import edu.mju.stuwork.domain.Student;

public interface StudentService {
	void regStudent(Student stu);
}

实现接口

package edu.mju.stuwork.service;

import edu.mju.stuwork.dao.StudentDao;
import edu.mju.stuwork.dao.StudentDaoJDBCImpl;
import edu.mju.stuwork.domain.Student;

public class StudentServiceImpl implements StudentService{

	

	@Override
	public void regStudent(Student stu) {
		StudentDao stuDao = new StudentDaoJDBCImpl();
		
		stuDao.addStu(stu);
	}
}

(七)创建servlet:在包里右键然后选择Other,搜索servlet,点击next
在这里插入图片描述
输入Class name 点击Next
在这里插入图片描述
点击Edit 更改映射地址 改为stuMgr
在这里插入图片描述
再点击Next要有 doGet 和 doPost, 最后完成
在这里插入图片描述
在Servlet中doGet方法写进代码,服务器与网页进行连接、获取参数

package edu.mju.stuwork.controller;

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 edu.mju.stuwork.domain.Student;
import edu.mju.stuwork.service.StudentService;
import edu.mju.stuwork.service.StudentServiceImpl;

/**
 * Servlet implementation class StuMgrServlet
 */
@WebServlet("/stuMgr")
public class StuMgrServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public StuMgrServlet() {
        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");
		
		Student stu = new Student();
		stu.setStuNo(Integer.parseInt(request.getParameter("stuno")));
		stu.setStuName(request.getParameter("stuname"));
		stu.setStuMark(Double.parseDouble(request.getParameter("stumark")));
		
//		System.out.println(stu);
		StudentService stuService = new StudentServiceImpl();
		stuService.regStudent(stu);
		
		System.out.println("save stu info is ok!");
	}

	/**
	 * @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);
	}

}

(八)最后创建一个Html

在WebContent右击然后Other,搜索Html文件,然后创建。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
   
    body{
      padding:30px;
      font-size:24px;
    }
    
    div{
      margin-bottom:10px;
    }
    
    button{
      font-size:24px;
    }
    
    input{
      font-size:22px;
      padding:5px;
    }

</style>
</head>
<body>
   <h3>新生登记</h3>
   <form action="stuMgr" method="post">
	   <div>
	     <label>学生学号:</label>
	     <input type="text" name="stuno">
	   </div>
	   <div>
	     <label>学生姓名:</label>
	     <input type="text" name="stuname">
	   </div>
	   <div>
	     <label>学生成绩:</label>
	     <input type="text" name="stumark">
	   </div>
	   <button>登记保存</button>
   </form>      
</body>
</html>

需要注意下:
在这里插入图片描述
(九)最后网页在服务器运行下,查看网页输入的数据能否添加到数据库中
步骤:网页右击选择Run As再选择Run on Server
在这里插入图片描述

点击Next,选择你要运行的工程
在这里插入图片描述
Finish
在这里插入图片描述
保存成功
在这里插入图片描述

数据库查看
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值