关于这次学校实训,我们做了一个类似于CSDN博客的项目,然后我们小组取名叫SEEK,一个学习论坛,前面ppt有介绍,我主要是负责后端数据库的,与MySQL交互,由我的组长写好js代码,然后将前端所获取的数据post给我 然后我写好Servlet端返回他想要的数据,看下面,这7天我还是写了好多好多的java代码,彻彻底底当了一次后端码农!

本篇文章只是介绍这个项目,需要后端源码的课去看这篇文章哦
SEEK学习论坛-JavaWeb开发实训课题 (数据库MySQL+js+Ajax+Servlet)代码分析篇
https://blog.csdn.net/weixin_42429718/article/details/95355366

这里是我封装好了的关于连接MySQL工具类DButil

可能需要ojdbc工具,这里分享一下
mysql-connector-java-5.1.39-bin.jar
链接:https://pan.baidu.com/s/1XVhHe9dS9O4VpGTI5OjK9w
提取码:vtoo

package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/*** util工具类* @author yangchaoyi**/
public class DButil {//声明Connection对象Connection con;//驱动程序名static String driver = "com.mysql.jdbc.Driver";//URL指向要访问的数据库名mydataString url = "jdbc:mysql://填入IP地址(一般是localhost):3306/填入数据库名";//MySQL配置时的用户名String user = "xxx";//MySQL配置时的密码String password = "****";//1、执行静态方法,加载数据库驱动static {try {System.out.println("正在加载数据库驱动...");Class.forName(driver);System.out.println("已加载数据库驱动!!!\n");} catch (ClassNotFoundException e) {e.printStackTrace();}}//2、创建数据库连接的方法public Connection getConnection() {try {System.out.println("正在连接到数据库...");con = DriverManager.getConnection(url,user,password);System.out.println("已连接到MySQL数据库!!!\n");return con;} catch (SQLException e) {e.printStackTrace();}return null;}//3、关闭数据库连接,释放JDBC资源的方法public void closeConnection(Connection connection) {if (connection != null) {try {System.out.println("准备释放jdbc资源,断开数据库连接...");System.out.println("connection.close();");connection.close();//立即释放jdbc资源,而不是等自动释放System.out.println("已断开数据库连接并且释放了jdbc资源\n");} catch (SQLException e) {e.printStackTrace();}}}
}

admin_Dto.java

package com.dto;public class admin_Dto {String id;String passw;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getPassw() {return passw;}public void setPassw(String passw) {this.passw = passw;}}

article_colect_Dto.java

package com.dto;public class article_colect_Dto {String userid;String arcid;String col_time;String uncol_time;public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getArcid() {return arcid;}public void setArcid(String arcid) {this.arcid = arcid;}public String getCol_time() {return col_time;}public void setCol_time(String col_time) {this.col_time = col_time;}public String getUncol_time() {return uncol_time;}public void setUncol_time(String uncol_time) {this.uncol_time = uncol_time;}}

article_comment_Dto

package com.dto;public class article_comment_Dto {String arcticle_id;String user_id;String reback_arctcle_id;String time;String comment_id;String content;public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getArcticle_id() {return arcticle_id;}public void setArcticle_id(String arcticle_id) {this.arcticle_id = arcticle_id;}public String getUser_id() {return user_id;}public void setUser_id(String user_id) {this.user_id = user_id;}public String getReback_arctcle_id() {return reback_arctcle_id;}public void setReback_arctcle_id(String reback_arctcle_id) {this.reback_arctcle_id = reback_arctcle_id;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getComment_id() {return comment_id;}public void setComment_id(String comment_id) {this.comment_id = comment_id;}
}

article_Dto

package com.dto;public class article_Dto {String userid;String arcid;String arctime;String arcatatus;String archtml;String title;String content;String imageurl;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getImageurl() {return imageurl;}public void setImageurl(String imageurl) {this.imageurl = imageurl;}public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getArcid() {return arcid;}public void setArcid(String arcid) {this.arcid = arcid;}public String getArctime() {return arctime;}public void setArctime(String arctime) {this.arctime = arctime;}public String getArcatatus() {return arcatatus;}public void setArcatatus(String arcatatus) {this.arcatatus = arcatatus;}public String getArchtml() {return archtml;}public void setArchtml(String archtml) {this.archtml = archtml;}
}

admin_model

package com.model;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.dto.admin_Dto;
import com.dto.article_Dto;
import com.dto.user_Dto;import util.DButil;
/** 用户表相关方法*/
public class admin_model {// 通过id查询 返回一个admin的Dtopublic admin_Dto QueryById(String id) {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;admin_Dto dto = new admin_Dto();try {String sql = "select * from admin where id=?";pstmt = con.prepareStatement(sql);pstmt.setString(1,id);rs = pstmt.executeQuery();// 执行SQL语句if (rs.next()) {dto.setId(rs.getString("id"));dto.setPassw(rs.getString("passw"));}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return dto;}// 2.从数据库导入数据(全查找admin信息)public  List<admin_Dto> find_admin_Dto() {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;List<admin_Dto> list = new ArrayList<admin_Dto>();try {String sql = "select * from admin";pstmt = con.prepareStatement(sql);rs = pstmt.executeQuery();// 执行SQL语句while (rs.next()) {admin_Dto dto = new admin_Dto();dto.setId(rs.getString("id"));dto.setPassw(rs.getString("passw"));list.add(dto);}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return list;}//3.插入数据到admin表中  传入admin_Dto参数public void add_admin(admin_Dto dto){DButil db = new DButil();Connection conn = db.getConnection();PreparedStatement statement = null;try {String sql="insert into admin(id, passw) values(?,?)";statement = conn.prepareStatement(sql);statement.setString(1, dto.getId());statement.setString(2, dto.getPassw());int result=statement.executeUpdate();if(result>0){System.out.println("插入到admin表成功!");}}catch(Exception e1) {e1.printStackTrace();System.out.println(e1.getMessage());}finally {try {statement.close();conn.close();}catch(Exception e2) {System.out.println(e2.getMessage());}}}}

article_colect_model

package com.model;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.dto.admin_Dto;
import com.dto.article_Dto;
import com.dto.article_colect_Dto;import util.DButil;/** 文章收集表相关方法*/
public class article_colect_model {//1.通过useerid查询 返回一个article_colect的Dtopublic article_colect_Dto QueryByUserId(String userid) {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;article_colect_Dto dto = new article_colect_Dto();try {String sql = "select * from article_colect where userid=?";pstmt = con.prepareStatement(sql);pstmt.setString(1, userid);rs = pstmt.executeQuery();// 执行SQL语句if (rs.next()) {dto.setUserid(rs.getString("userid"));dto.setArcid(rs.getString("arcid"));dto.setCol_time(rs.getString("col_time"));dto.setUncol_time(rs.getString("uncol_time"));}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return dto;}// 2.从数据库导入数据(全查找article_colect信息)public List<article_colect_Dto> find_article_colect() {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;List<article_colect_Dto> list = new ArrayList<article_colect_Dto>();try {String sql = "select * from article_colect";pstmt = con.prepareStatement(sql);rs = pstmt.executeQuery();// 执行SQL语句while (rs.next()) {article_colect_Dto dto = new article_colect_Dto();dto.setUserid(rs.getString("userid"));dto.setArcid(rs.getString("arcid"));dto.setCol_time(rs.getString("col_time"));dto.setUncol_time(rs.getString("uncol_time"));list.add(dto);}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return list;}//3.插入数据到article_colect表中  传入article_colect_Dto参数public void add_article_colect(article_colect_Dto dto){DButil db = new DButil();Connection conn = db.getConnection();PreparedStatement statement = null;try {String sql="insert into article_colect(userid, arcid, col_time, uncol_time) values(?,?,?,?)";statement = conn.prepareStatement(sql);statement.setString(1, dto.getUserid());statement.setString(2, dto.getArcid());statement.setString(3, dto.getCol_time());statement.setString(4, dto.getUncol_time());int result=statement.executeUpdate();if(result>0){System.out.println("插入到article_colect表成功!");}}catch(Exception e1) {e1.printStackTrace();System.out.println(e1.getMessage());}finally {try {statement.close();conn.close();}catch(Exception e2) {System.out.println(e2.getMessage());}}}// 4.通过userid从数据库导入数据(全查找article_colect信息)public List<article_colect_Dto> find_article_colect_DtoByUserId(String userid) {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;List<article_colect_Dto> list = new ArrayList<article_colect_Dto>();try {String sql = "select * from article_colect where userid=?";pstmt = con.prepareStatement(sql);pstmt.setString(1, userid);rs = pstmt.executeQuery();// 执行SQL语句while (rs.next()) {article_colect_Dto dto = new article_colect_Dto();dto.setUserid(rs.getString("userid"));dto.setArcid(rs.getString("arcid"));dto.setCol_time(rs.getString("col_time"));dto.setUncol_time(rs.getString("uncol_time"));list.add(dto);}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return list;}
}

article_comment_model

package com.model;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.dto.article_colect_Dto;
import com.dto.article_comment_Dto;import util.DButil;public class article_comment_model {//1.通过arcticle_id查询 返回一个article_comment的Dtopublic article_comment_Dto QueryByArcticleId(String arcticle_id) {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;article_comment_Dto dto = new article_comment_Dto();try {String sql = "select * from article_comment where arcticle_id=?";pstmt = con.prepareStatement(sql);pstmt.setString(1, arcticle_id);rs = pstmt.executeQuery();// 执行SQL语句if (rs.next()) {dto.setUser_id(rs.getString("user_id"));dto.setArcticle_id(rs.getString("arcticle_id"));dto.setReback_arctcle_id(rs.getString("reback_arctcle_id"));dto.setTime(rs.getString("time"));dto.setComment_id(rs.getString("comment_id"));dto.setContent(rs.getString("content"));}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return dto;}// 2.从数据库导入数据(全查找article_comment信息)public List<article_comment_Dto> find_article_comment_Dto() {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;List<article_comment_Dto> list = new ArrayList<article_comment_Dto>();try {String sql = "select * from article_comment";pstmt = con.prepareStatement(sql);rs = pstmt.executeQuery();// 执行SQL语句while (rs.next()) {article_comment_Dto dto = new article_comment_Dto();dto.setUser_id(rs.getString("user_id"));dto.setArcticle_id(rs.getString("arcticle_id"));dto.setReback_arctcle_id(rs.getString("reback_arctcle_id"));dto.setTime(rs.getString("time"));dto.setComment_id(rs.getString("comment_id"));dto.setContent(rs.getString("content"));list.add(dto);}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return list;}//3.插入数据到article_comment表中  传入article_comment_Dto参数public void add_article_comment(article_comment_Dto dto){DButil db = new DButil();Connection conn = db.getConnection();PreparedStatement statement = null;try {String sql="insert into article_comment(arcticle_id, user_id, reback_arctcle_id, time, comment_id,content) values(?,?,?,?,?,?)";statement = conn.prepareStatement(sql);statement.setString(1, dto.getArcticle_id());statement.setString(2, dto.getUser_id());statement.setString(3, dto.getReback_arctcle_id());statement.setString(4, dto.getTime());statement.setString(5, dto.getComment_id());statement.setString(6, dto.getContent());int result=statement.executeUpdate();if(result>0){System.out.println("插入到article_comment表成功!");}}catch(Exception e1) {e1.printStackTrace();System.out.println(e1.getMessage());}finally {try {statement.close();conn.close();}catch(Exception e2) {System.out.println(e2.getMessage());}}}//4.通过arcticle_id查询 返回一个article_comment的List集合public List<article_comment_Dto> find_QueryByArcticleId(String arcticle_id) {DButil db = new DButil();Connection con = db.getConnection();PreparedStatement pstmt;ResultSet rs;List<article_comment_Dto> list = new ArrayList<article_comment_Dto>();try {String sql = " select * from article_comment where arcticle_id=?";pstmt = con.prepareStatement(sql);pstmt.setString(1, arcticle_id);rs = pstmt.executeQuery();// 执行SQL语句while (rs.next()) {article_comment_Dto dto = new article_comment_Dto();dto.setUser_id(rs.getString("user_id"));dto.setArcticle_id(rs.getString("arcticle_id"));dto.setReback_arctcle_id(rs.getString("reback_arctcle_id"));dto.setTime(rs.getString("time"));dto.setComment_id(rs.getString("comment_id"));dto.setContent(rs.getString("content"));list.add(dto);}// 关闭,释放资源rs.close();pstmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}return list;}
}

article_colectFindByUserIdServlet

package com.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dto.article_Dto;
import com.dto.article_colect_Dto;
import com.model.article_colect_model;/*** Servlet implementation class article_colectFindByUserIdServlet*/
public class article_colectFindByUserIdServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public article_colectFindByUserIdServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();String article_colectInfo = request.getParameter("articlecommentInfo"); //从前端获取数据first/*ycy*/System.out.print(article_colectInfo);JSONObject jsonObject = JSONObject.parseObject(article_colectInfo);System.out.println(jsonObject.getString("arcid"));article_colect_Dto article_colect = jsonObject.toJavaObject(article_colect_Dto.class);article_colect_model artc=new article_colect_model();List<article_colect_Dto> list =artc.find_article_colect_DtoByUserId(article_colect.getUserid());//将list转换为json数组JSONArray jsonList = JSONArray.parseArray(JSON.toJSONString(list));System.out.println(jsonList);String jsonStr = jsonList.toString();out.print(jsonStr);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

article_colectInsertServlet

package com.servlet;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;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dto.article_colect_Dto;
import com.model.article_colect_model;/*** Servlet implementation class article_colectInsertServlet*/
@WebServlet("/article_colectInsertServlet")
public class article_colectInsertServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public article_colectInsertServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();String article_commentInfo = request.getParameter("likearticleInfo"); //从前端获取数据first/*ycy*/JSONObject jsonObject = JSONObject.parseObject(article_commentInfo);article_colect_Dto article_colect = jsonObject.toJavaObject(article_colect_Dto.class);article_colect_model artc=new article_colect_model();artc.add_article_colect(article_colect);String req=JSON.toJSONString(article_colect);out.print(req);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

findArticleByarticle_colectUserIdServlet

package com.servlet;import java.io.IOException;
import java.io.PrintWriter;
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 com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dto.article_Dto;
import com.dto.article_colect_Dto;
import com.model.article_colect_model;
import com.model.article_model;/*** Servlet implementation class findArticleByarticle_colectUserIdServlet*/
@WebServlet("/findArticleByarticle_colectUserIdServlet")
public class findArticleByarticle_colectUserIdServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public findArticleByarticle_colectUserIdServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();String article_colectInfo = request.getParameter("findArticleByarticle_colectUserIdServlet"); //从前端获取数据first/*ycy*/JSONObject jsonObject = JSONObject.parseObject(article_colectInfo);article_colect_Dto article_colect = jsonObject.toJavaObject(article_colect_Dto.class);article_model acm=new article_model();
//      List<article_Dto> list =artm.find_articleByArcIdFromArticle_Colect(article_colect);article_colect_model arcm=new article_colect_model ();List<article_colect_Dto> arclist=arcm.find_article_colect_DtoByUserId(article_colect.getUserid());String jsonStr="";int k=0;String temp="";int end=arclist.size();System.out.println(end);for(article_colect_Dto acol_dto1:arclist){List<article_Dto> list=acm.find_article_DtoByArcId(acol_dto1.getArcid());JSONArray jsonList = JSONArray.parseArray(JSON.toJSONString(list));temp=jsonList.toString();if(k==0){
//          jsonStr+="[";jsonStr+=temp.substring(0,temp.length() - 1);jsonStr+=",";temp="";k++;}else {if(k!=end-1){jsonStr+=temp.substring(1,temp.length() - 1);jsonStr+=",";temp="";k++;}else{jsonStr+=temp.substring(1,temp.length()-1);jsonStr+="]";temp="";k++;}}System.out.println(jsonStr);}//      System.out.println(jsonStr);
//
//
//      //将list转换为json数组
//      JSONArray jsonList = JSONArray.parseArray(JSON.toJSONString(list));
//      String jsonStr=jsonList.toString();
//      System.out.print("str:::::::::::::::::::s"+jsonStr);out.print(jsonStr);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

MySQL数据库建表 sql语句

/*Navicat Premium Data TransferSource Server         : 123Source Server Type    : MySQLSource Server Version : 50644Source Host           : 119.27.167.223:3306Source Schema         : shixunTarget Server Type    : MySQLTarget Server Version : 50644File Encoding         : 65001Date: 07/07/2019 04:20:05
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for admin
-- ----------------------------
DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin`  (`id` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL COMMENT '管理员id,主键',`passw` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL DEFAULT '123456' COMMENT '密码',`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`adminRight` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of admin
-- ----------------------------
INSERT INTO `admin` VALUES ('201701', '123456', NULL, '普通管理员');
INSERT INTO `admin` VALUES ('201702', '000', NULL, '普通管理员');
INSERT INTO `admin` VALUES ('201703', '111', NULL, '普通管理员');
INSERT INTO `admin` VALUES ('201724', '123456', 'ycy', '超级管理员');-- ----------------------------
-- Table structure for article
-- ----------------------------
DROP TABLE IF EXISTS `article`;
CREATE TABLE `article`  (`userid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL,`arcid` bigint(20) NOT NULL AUTO_INCREMENT,`arctime` timestamp(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`arcatatus` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT '公开' COMMENT '文章状态',`archtml` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '文章主体',`title` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,`content` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,`imageurl` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,PRIMARY KEY (`arcid`) USING BTREE,INDEX `userid`(`userid`) USING BTREE,CONSTRAINT `article_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 56 CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of article
-- ----------------------------
INSERT INTO `article` VALUES ('123456', 20, '2019-07-05 07:25:35', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/s6BTS8x4IA2Wa7w.js', '哈利波特', 'nvalid or unexpected token ”“”“”“”“\"\"\"\"\"\"\"\"\"\"\"\"第1部《哈利波特与魔法石》Harry Potter and the Sorcerer\'s Stone (', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/dxw3E5xB1xxo43K.jpg');
INSERT INTO `article` VALUES ('123456', 21, '2019-07-05 07:24:50', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/G9ib1IoSCBJEVtx.js', '哈利波特', '1部《哈利波特与魔法石》Harry Potter and the Sorcerer\'s Stone (2001)\n   一岁的哈利波特失去父母后,神秘地出现在姨父姨妈家的门前。哈利在姨父家饱受欺凌,', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/TmXmdnYmLh5Wth2.jpg');
INSERT INTO `article` VALUES ('123456', 22, '2019-07-05 07:24:53', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/jrvYEJPIeoggib1.js', '哈利波特', 'lt;iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/1NmxkGY5fxc\" frameborder=\"0\" ', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/0TMj3CiUwJKCaGN.jpg');
INSERT INTO `article` VALUES ('123456', 23, '2019-07-05 07:24:56', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/003d9NyDBiVHmsu.js', '哈利波特', 'lt;iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/1NmxkGY5fxc\" frameborder=\"0\" ', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/t1SldFJPuZNKPoO.jpg');
INSERT INTO `article` VALUES ('123456', 24, '2019-07-05 07:25:06', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/EEvhmgQO7oqlf0V.js', '哈利波特', '1部《哈利波特与魔法石》Harry Potter and the Sorcerer\'s Stone (2001)\n   一岁的哈利波特失去父母后,神秘地出现在姨父姨妈家的门前。哈利在姨父家饱受欺凌,', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/FbPHRUq4TJbLdD5.jpg');
INSERT INTO `article` VALUES ('123456', 27, '2019-07-05 07:40:28', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/euWPP90PTJincrp.js', '冰与火之歌', '事背景中虚构的世界,分为两片大陆:位于西面的“日落国度”维斯特洛;位于东面的类似亚欧大陆。维斯特洛大陆边境处发现远古传说中早已灭绝的生物开始,危险也渐渐在靠近这里。这片大陆的临冬城主暨北境统领艾德史......', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/xgAM61RB3AYv12d.jpg');
INSERT INTO `article` VALUES ('123456', 53, '2019-07-06 17:42:18', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/4QZPIZBwYwwvt2o.js', '', '爱吃杀杀杀水水水水吖的阿萨吖的阿瑟东......', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/eTCQ5bOwIJiS0Wd.jpg');
INSERT INTO `article` VALUES ('201701020124', 54, '2019-07-06 17:47:08', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/5C0a2peP4FuYCK6.js', '阿斯兰的还哦', '......', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/o86MKJ3KJaaOBIj.jpg');
INSERT INTO `article` VALUES ('缪传鹏', 55, '2019-07-07 02:57:45', '0', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/Nyrevwm03fDQOhU.js', 'wwwwwwwwwwwwwwwwwwwww', 'wdqqqqqqqqqqqqqqqqqqqqq......', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/i2cbgaKAGMHWXah.jpg');-- ----------------------------
-- Table structure for article_colect
-- ----------------------------
DROP TABLE IF EXISTS `article_colect`;
CREATE TABLE `article_colect`  (`userid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`arcid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`col_time` timestamp(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`uncol_time` timestamp(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),INDEX `article_colect_user_id`(`userid`) USING BTREE,CONSTRAINT `article_colect_user_id` FOREIGN KEY (`userid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of article_colect
-- ----------------------------
INSERT INTO `article_colect` VALUES ('123456', '21', '2019-07-06 16:03:33', NULL);
INSERT INTO `article_colect` VALUES ('123456', '21', '2019-07-06 16:14:13', NULL);
INSERT INTO `article_colect` VALUES ('201701020124', '20', '2019-07-06 16:35:17', NULL);
INSERT INTO `article_colect` VALUES ('201701020124', '21', '2019-07-06 18:42:52', NULL);
INSERT INTO `article_colect` VALUES ('201701020124', '22', '2019-07-06 18:44:49', NULL);
INSERT INTO `article_colect` VALUES ('缪传鹏', '24', '2019-07-07 02:56:23', NULL);
INSERT INTO `article_colect` VALUES ('缪传鹏', '22', '2019-07-07 03:01:05', NULL);-- ----------------------------
-- Table structure for article_comment
-- ----------------------------
DROP TABLE IF EXISTS `article_comment`;
CREATE TABLE `article_comment`  (`arcticle_id` bigint(20) NULL DEFAULT NULL COMMENT '被评论文章ID',`user_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL COMMENT '发表信息人ID',`reback_arctcle_id` bigint(20) NULL DEFAULT NULL COMMENT '回复评论ID',`time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`comment_id` bigint(20) NOT NULL AUTO_INCREMENT,`content` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,PRIMARY KEY (`comment_id`) USING BTREE,INDEX `arc_comment_user_id`(`user_id`) USING BTREE,INDEX `arc_comment_arcticle_id`(`arcticle_id`) USING BTREE,CONSTRAINT `arc_comment_arcticle_id` FOREIGN KEY (`arcticle_id`) REFERENCES `article` (`arcid`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `arc_comment_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Table structure for lock_user
-- ----------------------------
DROP TABLE IF EXISTS `lock_user`;
CREATE TABLE `lock_user`  (`userid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL,`locktime` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`res` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,PRIMARY KEY (`userid`) USING BTREE,CONSTRAINT `lock_user_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of lock_user
-- ----------------------------
INSERT INTO `lock_user` VALUES ('201701020124', '2019-07-03 23:05:05', NULL);
INSERT INTO `lock_user` VALUES ('201701020135', '2019-07-06 00:00:00', 'xxx');-- ----------------------------
-- Table structure for notice
-- ----------------------------
DROP TABLE IF EXISTS `notice`;
CREATE TABLE `notice`  (`notice_text` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,`time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`admin_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,INDEX `admin_id`(`admin_id`) USING BTREE,CONSTRAINT `notice_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES `admin` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of notice
-- ----------------------------
INSERT INTO `notice` VALUES ('溜', '2019-07-03 23:05:13', '201701');
INSERT INTO `notice` VALUES ('醉了', '2019-07-06 00:00:00', '201702');-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (`id` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL COMMENT '用户id',`passw` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NOT NULL COMMENT '密码',`arctitles` int(255) NULL DEFAULT 0 COMMENT '用户发表文章数量',`fans` int(255) NOT NULL DEFAULT 0 COMMENT '粉丝数',`collects` int(255) NULL DEFAULT 0 COMMENT '收藏数',`integral` int(255) NULL DEFAULT 0 COMMENT '积分',`email` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL COMMENT '邮箱',`himgUrl` longtext CHARACTER SET utf8 COLLATE utf8_german2_ci NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('111', '1111111111111', 0, 0, 0, 0, '1111111111111@qq.com', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/H6IbFXJU3KMp1jp.jpg');
INSERT INTO `user` VALUES ('123456', '111111111111', 22, 41, 51, 786, '123456@qq.com', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/b9lNfeDCsGIkHbL.jpg');
INSERT INTO `user` VALUES ('201701020108', '123', 33, 46, 108, 1142, '1275948439@qq.com', NULL);
INSERT INTO `user` VALUES ('201701020124', '654321', 99, 100, 99, 1000, '201701020124@qq.com', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/a8081L9MBl3dSeo.jpg');
INSERT INTO `user` VALUES ('201701020135', '123456', 33, 23, 10, 321, '1341312038@qq.com', NULL);
INSERT INTO `user` VALUES ('201701020145', '111', 11, 100, 100, 1200, '2903067812@qq.com', NULL);
INSERT INTO `user` VALUES ('缪传鹏', '1111111111111', 0, 0, 0, 0, '1111111111111@qq.com', 'https://test-1258897694.cos.ap-chengdu.myqcloud.com/GVykvYnfaEMXLb7.jpg');-- ----------------------------
-- Table structure for user_feedback
-- ----------------------------
DROP TABLE IF EXISTS `user_feedback`;
CREATE TABLE `user_feedback`  (`userid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`type` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`feedtext` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL,`id` bigint(255) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`) USING BTREE,INDEX `userid`(`userid`) USING BTREE,CONSTRAINT `user_feedback_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 201903 CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of user_feedback
-- ----------------------------
INSERT INTO `user_feedback` VALUES ('201701020124', '2019-07-03 22:59:42', '111', 'tql', 201901);
INSERT INTO `user_feedback` VALUES ('201701020135', '2019-07-06 00:00:00', 'xxx', 'xxx', 201902);-- ----------------------------
-- Table structure for watched
-- ----------------------------
DROP TABLE IF EXISTS `watched`;
CREATE TABLE `watched`  (`wa_userid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`wing_userid` varchar(20) CHARACTER SET utf8 COLLATE utf8_german2_ci NULL DEFAULT NULL,`wa_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),`unwa_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),INDEX `watched_wa_user_id`(`wa_userid`) USING BTREE,INDEX `watched_wing_user_id`(`wing_userid`) USING BTREE,CONSTRAINT `watched_wa_user_id` FOREIGN KEY (`wa_userid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,CONSTRAINT `watched_wing_user_id` FOREIGN KEY (`wing_userid`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_german2_ci ROW_FORMAT = Compact;-- ----------------------------
-- Records of watched
-- ----------------------------
INSERT INTO `watched` VALUES ('201701020124', '201701020124', '2019-07-03 23:05:37', '2019-07-03 23:05:39');
INSERT INTO `watched` VALUES ('201701020145', '201701020135', '2019-07-04 15:57:40', '2019-07-04 15:57:40');
INSERT INTO `watched` VALUES ('201701020135', '201701020145', '2019-07-07 00:00:00', '2019-07-09 00:00:00');
INSERT INTO `watched` VALUES ('123456', '123456', NULL, NULL);
INSERT INTO `watched` VALUES ('201701020124', '123456', '2019-07-06 16:35:19', NULL);
INSERT INTO `watched` VALUES ('201701020124', '123456', '2019-07-06 18:42:49', NULL);
INSERT INTO `watched` VALUES ('201701020124', '123456', '2019-07-06 18:44:50', NULL);-- ----------------------------
-- Triggers structure for table article
-- ----------------------------
DROP TRIGGER IF EXISTS `uptime`;
delimiter ;;
CREATE TRIGGER `uptime` BEFORE INSERT ON `article` FOR EACH ROW SET new.arctime=NOW()
;;
delimiter ;-- ----------------------------
-- Triggers structure for table article_colect
-- ----------------------------
DROP TRIGGER IF EXISTS `coltime_update`;
delimiter ;;
CREATE TRIGGER `coltime_update` BEFORE INSERT ON `article_colect` FOR EACH ROW SET new.col_time=NOW()
;;
delimiter ;-- ----------------------------
-- Triggers structure for table watched
-- ----------------------------
DROP TRIGGER IF EXISTS `warime_update`;
delimiter ;;
CREATE TRIGGER `warime_update` BEFORE INSERT ON `watched` FOR EACH ROW SET new.wa_time=NOW()
;;
delimiter ;SET FOREIGN_KEY_CHECKS = 1;


本篇文章只是介绍这个项目,需要后端源码的课去看这篇文章哦
SEEK学习论坛-JavaWeb开发实训课题 (数据库MySQL+js+Ajax+Servlet)代码分析篇
https://blog.csdn.net/weixin_42429718/article/details/95355366

学如逆水行舟,不进则退

SEEK学习论坛-JavaWeb开发实训课题 (数据库MySQL+js+Ajax+Servlet)相关推荐

  1. 软件开发实训(720科技)――产品经理能力模型

    软件开发实训(720科技)――产品经理能力模型 一.关键字 执行能力,情商,沟通,产品分析,项目,能力 二.授课老师:张森鹏 三.知识笔记 1. 学习能力(Learning Ability) 有些东西 ...

  2. 视频教程-深度学习30天系统实训-深度学习

    深度学习30天系统实训 计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战讲师.在图像识别领域有着丰富经验,实现过包括人脸识别,物体识别,关键点检测等多种应用的新算法. 参与多个国家级计 ...

  3. 郑重告之:智能合约开发实训营第4期学员招募正式启动!

    各位同学,抱歉久等了- 这是终于到来的<以太坊智能合约全栈开发>实战特训营第四期的正式招募通知. <以太坊智能合约全栈开发>实战特训营是由硅谷密探和 celer network ...

  4. 最老程序员创业开发实训---30+程序员的希望

    我想做一个培训,主要想针对30+的程序员.因为这类程序员普遍存在着职业生涯的迷茫,想转做管理,但是一将成名万骨枯,十个中有一个就不错了:想去做销售,可是成天面对计算机,人际交往能力严重退化,想到要做到 ...

  5. 软件开发实训(720科技)-----运营推广/新媒体运营

    软件开发实训(720科技)-----运营推广/新媒体运营 内容关键词:产品,运营推广,新媒体,微博 授课老师:张森鹏 一.知识笔记: 1.企业微博的作用 a.企业微博,可以传播企业品牌和及时发布产品最 ...

  6. 3d游戏开发实训结项总结

    学校的3d游戏开发实训在历时一个多月之后终于告一段落了,回顾整个实训的过程,自己主要承担了游戏客户端大部分的开发任务,包括角色和镜头的控制,AI逻辑的实现等等,也在实际的编码过程中锻炼了技术.在前期还 ...

  7. java 实训项目_实训方案(JavaWeb项目实训)-

    实训方案(JavaWeb项目实训)- 2012-2013学年第一学期 <Java Web项目开发实训>课程实施方案 课程名称(英文):Training of Java Web Projec ...

  8. java坦克大战 实训报告_坦克大战系统《Java程序开发实训》综合实训报告.doc

    坦克大战系统<Java程序开发实训>综合实训报告 <Java程序开发实训>综合实训报告 题目: 坦克大战系统 姓名: 方庆 学号: 2010203206 班级: 10软件(2) ...

  9. 安卓仿美团开发实训课程

    系列文章目录 课程设计开发的是一款网上订餐的应用,该项目与我们平常看到的外卖界面比较类似,展示的内容包括店铺.菜单.购物车.订单与支付等信息. 文章目录 系列文章目录 前言 一.效果展示 二.项目结构 ...

最新文章

  1. [Unity3D]总结使用Unity 3D优化游戏运行性能的经验
  2. sql 字符串比较大小_SQL简单查询
  3. 逆袭!? 期待下一个“BCH”出现
  4. runtime实现的机制是什么,怎么用,一般用于干嘛. 你还能记得你所使用的相关的头文件或者某些方法的名称吗?...
  5. PHPStorm使用指南
  6. js带开关的时钟_昌利JS系列混凝土搅拌机衬板配件
  7. 【Git、GitHub、GitLab】九 工作中非常重要的一些git用法
  8. 或成为性能宠儿,荣耀8x Max 骁龙660版首销在即
  9. 训练日志 2018.10.18
  10. Conversion of Continuous-Valued Deep Networks to Efficient Event-Driven Networks for Image
  11. openGL与openGL ES 的区别
  12. 简单实现x的n次方pta_数学学霸的解题思路1“降低次方和次元”
  13. CPU指令集科普:CISC指令集和RISC指令集
  14. 普林斯顿微积分读本篇十一:最优化和线性化
  15. 老电脑重装Linux系统
  16. 基于Python的COVID-19背景下的网络社会心态变化数据分析
  17. 5047. 多边形三角剖分的最低得分
  18. 1-Unity是什么
  19. 【双拼打字】双拼对照表
  20. matlab使用出现矩阵为奇异值、接近奇异值或缩放错误。结果可能不准确。RCOND = NaN。

热门文章

  1. 软件测试用例——三角形
  2. ergonomic计算机专业英语,[听单词] 计算机专业英语词汇音频52,计算机英语单词MP3...
  3. 为高效学习神器 Anki 部署一个专属同步服务器
  4. 【李航统计学习方法】感知机模型
  5. 【python】pygame实现植物大战僵尸小游戏(附源码 有注释)
  6. 服务器win10系统怎样共享,win10系统开启局域网共享
  7. PowerPoint ppt 触发器 自定义动画 视频 音频 播放 停止
  8. 数据结构课程设计【C++实现】
  9. A02-HTML5入门
  10. android 钉钉考勤日历,vue钉钉考勤日历 vue实现钉钉的考勤日历