javaweb添加课程mysql8.0版本
搞了好几天终于搞好了,虽然代码有些不同但是功能实现,并且于mysql 8.0版本。废话不多说直接开搞。
需要的工具
自己去下 简单的雅痞。
结构如下
lib目录下必须导入连接包 否则会出现错误500无法连接
两个jsp文件不要添加在web-inf里面 因为这里面导入东西是无法访问的
直接在webapp里面新建jsp文件,代码如下。
ClassDao.java
package ceshi;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import ceshi.DBUtil;
import ceshi.HaveClass;
import ceshi.ClassDao;
public class ClassDao {
public void add(HaveClass course) {
//或得数据库连接对象
Connection connection = DBUtil.getConnection();
//准备SQL语句
String sql =null; //"select count(*) from tab_user where username=?";
//声明数据库准备执行对象,但是没有实例化,赋值为空
PreparedStatement preparedStatement = null;
//声明一个结果集对象,用于接收,我们我们pre执行后,发送到数据库的sql语句,然后数据库执行,在然后返回到我们程序端的
//结果集对象
//ResultSet resultSet = null;
/*数据库,让数据库处理,然后把结果集返回回来,用resultSet.
//这个是重点,这里才是真正连接数据库,然后执行的地方
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
if(resultSet.getInt(1)>0)
throw new UserException("用户已存在");
}*/
try {
sql="insert into grade(classname,classtea,classspace) value(?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, course.getClassname());
preparedStatement.setString(2, course.getTeachername());
preparedStatement.setString(3, course.getPlace());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
//DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
}
DBUtil.java
package ceshi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBUtil {
public static Connection getConnection() {
try {
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
} catch (InstantiationException | IllegalAccessException
| ClassNotFoundException e1) {
e1.printStackTrace();
}
String user = "root";
String password = "123456";
String url = "jdbc:mysql://localhost:3306/test?&useSSL=false&serverTimezone=UTC";
Connection connection = null;
try {
connection = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void close(Connection connection) {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement) {
try {
if (preparedStatement != null) {
preparedStatement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
HaveClass.java
package ceshi;
public class HaveClass {
private String teachername;
private String place;
private String classname;
public String getTeachername() {
return teachername;
}
public void setTeachername(String teachername) {
this.teachername = teachername;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
}
addClass.jsp
<%@ 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>
<center><%=request.getAttribute("result") %>
<form action="class.jsp" method ="get">
<table align="center" border="1" width="500">
<tr>
<td>课程名</td>
<td>
<input type="text" name="classname"/>
</td>
</tr>
<tr>
<td>任课老师</td>
<td>
<input type="text" name="classtea"/>
</td>
</tr>
<tr>
<td>课堂地点</td>
<td>
<input type="text" name="classspace"/>
</td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="添加"/></td>
</tr>
</table>
</form>
</center>
</body>
</html>
class.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="ceshi.HaveClass"%>
<%@ page import="ceshi.ClassDao"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
String classname = request.getParameter("classname");
String classtea = request.getParameter("classtea");
String classspace = request.getParameter("classspace");
if(classtea.equals("王建民")||classtea.equals("刘丹")||classtea.equals("刘立嘉")||classtea.equals("王辉")||classtea.equals("杨子光"))
{
}
else
{
request.setAttribute("result","请输入在职老师");
%>
<jsp:forward page="addClass.jsp"></jsp:forward>
<%
}
if(classspace.startsWith("基教")||classspace.startsWith("一教")||classspace.startsWith("二教")||classspace.startsWith("三教"))
{
}
else
{
request.setAttribute("result","请输入正确地点");
%>
<jsp:forward page="addClass.jsp"></jsp:forward>
<%
}
HaveClass course=new HaveClass();
course.setClassname(classname);
course.setTeachername(classtea);
course.setPlace(classspace);
ClassDao classDao=new ClassDao();
classDao.add(course);
request.setAttribute("result","课程添加成功");
%>
<jsp:forward page="addClass.jsp"></jsp:forward>
<body>
</body>
</html>
代码如上。
表格怎么建立自己去csdn 具体图如下
注意test 与grade 代表的什么 代码中自己可以改 如果你建立的表不是这个名字的话。
运行代码会出现
自己输入 软件工程 王建民 基教 会出现
然后你的表里面会出现
前面两个是测试的,第三个是我写这个随笔输入的。
下面是参考的网站
现在讲一下会出现问题xampp 如果你安装过mysql会出现端口冲突建议把已经安装mysql删掉。
如何你安装过虚拟机也会出现端口占用具体xampp安装教程https://blog.csdn.net/sliencect/article/details/118001059?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163488972316780274168041%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163488972316780274168041&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-118001059.first_rank_v2_pc_rank_v29&utm_term=xampp%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B%E4%B8%8E%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187
具体软件还是推荐自己去百度一下直接就有,官网下载有点麻烦,反正我是下载不了不知道为什么。
Navicat 自己去官网下载 怎么激活可以去csdn下载激活工具。
代码参考的学长网站
https://blog.csdn.net/weixin_33841722/article/details/94314309?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163488500316780271548971%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163488500316780271548971&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-94314309.first_rank_v2_pc_rank_v29&utm_term=%E8%AF%BE%E7%A8%8B%E6%B7%BB%E5%8A%A0&spm=1018.2226.3001.4187
他的代码缺少class类 我的代码并没有缺少,可以放心使用。
作者:stdxxd
来源链接:https://www.cnblogs.com/stdxxd/p/15439515.html