diff --git a/helloGithub.iml b/helloGithub.iml index 08d1f59..7c99082 100644 --- a/helloGithub.iml +++ b/helloGithub.iml @@ -17,8 +17,8 @@ - + - + \ No newline at end of file diff --git a/sql/hellogithub.sql b/sql/hellogithub.sql index fb5f469..aa3c71c 100644 --- a/sql/hellogithub.sql +++ b/sql/hellogithub.sql @@ -11,7 +11,7 @@ Target Server Version : 80031 (8.0.31) File Encoding : 65001 - Date: 01/07/2023 13:15:25 + Date: 02/07/2023 11:09:44 */ SET NAMES utf8mb4; @@ -41,7 +41,7 @@ CREATE TABLE `article` ( `articleId` int NOT NULL AUTO_INCREMENT COMMENT '文章ID', `userId` int NULL DEFAULT NULL COMMENT '用户ID', `articleContent` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '文章内容', - `publishTime` datetime NULL DEFAULT NULL COMMENT '发布时间', + `publishTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布时间', `isValid` int NULL DEFAULT NULL COMMENT '是否有效', `readCount` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '阅读次数', PRIMARY KEY (`articleId`) USING BTREE, @@ -59,31 +59,33 @@ CREATE TABLE `article` ( DROP TABLE IF EXISTS `category`; CREATE TABLE `category` ( `categoryId` int NOT NULL AUTO_INCREMENT COMMENT '标签ID', - `category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签内容', + `category` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签内容(包含图标)', + `categoryName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签名称', `isValid` int NULL DEFAULT NULL COMMENT '是否有效(0/1)', PRIMARY KEY (`categoryId`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '标签表' ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '标签表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of category -- ---------------------------- -INSERT INTO `category` VALUES (1, 'C', 1); -INSERT INTO `category` VALUES (2, 'C#', 1); -INSERT INTO `category` VALUES (3, 'C++', 1); -INSERT INTO `category` VALUES (4, 'CSS', 1); -INSERT INTO `category` VALUES (5, 'Go', 1); -INSERT INTO `category` VALUES (6, 'Java', 1); -INSERT INTO `category` VALUES (7, 'JavaScript', 1); -INSERT INTO `category` VALUES (8, 'Kotlin', 1); -INSERT INTO `category` VALUES (9, 'Objective-C', 1); -INSERT INTO `category` VALUES (10, 'PHP', 1); -INSERT INTO `category` VALUES (11, 'python', 1); -INSERT INTO `category` VALUES (12, 'Ruby', 1); -INSERT INTO `category` VALUES (13, 'Rust', 1); -INSERT INTO `category` VALUES (14, 'Swift', 1); -INSERT INTO `category` VALUES (15, 'Other', 1); -INSERT INTO `category` VALUES (16, '开源书籍', 1); -INSERT INTO `category` VALUES (17, '机器学习', 1); +INSERT INTO `category` VALUES (0, ' 综合', '综合', NULL); +INSERT INTO `category` VALUES (1, ' C', 'C', 1); +INSERT INTO `category` VALUES (2, ' C#', 'C#', 1); +INSERT INTO `category` VALUES (3, ' C++', 'C++', 1); +INSERT INTO `category` VALUES (4, ' CSS', 'CSS', 1); +INSERT INTO `category` VALUES (5, ' Go', 'Go', 1); +INSERT INTO `category` VALUES (6, ' Java', 'Java', 1); +INSERT INTO `category` VALUES (7, ' JavaScript', 'JavaScript', 1); +INSERT INTO `category` VALUES (8, ' Kotlin', 'Kotlin', 1); +INSERT INTO `category` VALUES (9, ' ObjectiveC', 'Objective-C', 1); +INSERT INTO `category` VALUES (10, ' PHP', 'PHP', 1); +INSERT INTO `category` VALUES (11, ' python', 'python', 1); +INSERT INTO `category` VALUES (12, ' Ruby', 'Ruby', 1); +INSERT INTO `category` VALUES (13, ' Rust', 'Rust', 1); +INSERT INTO `category` VALUES (14, ' Swift', 'Swift', 1); +INSERT INTO `category` VALUES (15, ' Other', 'Other', 1); +INSERT INTO `category` VALUES (16, ' 开源书籍', '开源书籍', 1); +INSERT INTO `category` VALUES (17, ' 机器学习', '机器学习', 1); -- ---------------------------- -- Table structure for comment @@ -95,7 +97,7 @@ CREATE TABLE `comment` ( `projectId` int NULL DEFAULT NULL COMMENT '项目ID', `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '评论内容', `isUsed` int NULL DEFAULT NULL COMMENT '是否使用过', - `commentTime` datetime NULL DEFAULT NULL COMMENT '评论时间', + `commentTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评论时间', `isValid` int NULL DEFAULT NULL COMMENT '是否有效', PRIMARY KEY (`commentId`) USING BTREE, INDEX `userId_comment`(`userId` ASC) USING BTREE, @@ -172,7 +174,7 @@ CREATE TABLE `user` ( `userId` int NOT NULL AUTO_INCREMENT COMMENT '用户ID', `userName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名', `userPassword` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码', - `creatTime` datetime NULL DEFAULT NULL COMMENT '创建时间', + `creatTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间', `isValid` int NULL DEFAULT NULL COMMENT '是否有效(0/1)', `projectNum` int NULL DEFAULT NULL COMMENT '提交的项目总数', `searchHistory` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '搜索历史', diff --git a/src/com/hellogithub/dao/categoryDao.java b/src/com/hellogithub/dao/categoryDao.java new file mode 100644 index 0000000..192960b --- /dev/null +++ b/src/com/hellogithub/dao/categoryDao.java @@ -0,0 +1,44 @@ +package com.hellogithub.dao; + +import com.hellogithub.entity.categoryEntity; +import com.hellogithub.entity.projectEntity; +import com.hellogithub.utils.JdbcUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanHandler; +import org.apache.commons.dbutils.handlers.BeanListHandler; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +public class categoryDao { + + //返回所有标签 + public List retLabel() { + List categoryEntity; + try { + Connection conn = JdbcUtils.getConnection(); + QueryRunner runner = new QueryRunner(); + String sql = "select * from category "; + categoryEntity = runner.query(conn, sql, new BeanListHandler<>(categoryEntity.class)); + conn.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + return categoryEntity; + } + //发送Id找中文名字 + public categoryEntity retNum(int id ) { + categoryEntity categoryEntity; + try { + Connection conn = JdbcUtils.getConnection(); + QueryRunner runner = new QueryRunner(); + String sql = "select * from category where categoryId=?"; + categoryEntity = runner.query(conn, sql, new BeanHandler<>(categoryEntity.class),id); + conn.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + return categoryEntity; + } +} diff --git a/src/com/hellogithub/dao/projectDao.java b/src/com/hellogithub/dao/projectDao.java index 880decd..34fc029 100644 --- a/src/com/hellogithub/dao/projectDao.java +++ b/src/com/hellogithub/dao/projectDao.java @@ -41,7 +41,7 @@ public class projectDao { try { Connection conn = JdbcUtils.getConnection(); QueryRunner runner = new QueryRunner(); - String sql = "select * from project Group BY periodicals DESC limit 1"; + String sql = "select * from project Order BY periodicals DESC limit 1"; projectEntity = runner.query(conn, sql, new BeanHandler<>(projectEntity.class)); conn.close(); } catch (SQLException e) { @@ -54,15 +54,15 @@ public class projectDao { * * */ - public int countAll() { - int count; + public long countAll() { + long count; projectEntity p; try { Connection conn = JdbcUtils.getConnection(); QueryRunner runner = new QueryRunner(); - String sql = "select count(*) as projectId from project"; + String sql = "select count(*) as num from project"; p = runner.query(conn, sql, new BeanHandler<>(projectEntity.class)); - count = p.getProjectId(); + count = p.getNum(); conn.close(); } catch (SQLException e) { throw new RuntimeException(e); @@ -101,13 +101,13 @@ public class projectDao { } return projectEntityList; } - public List retSelcetByCate(int cateid){ + public List retSelcetByCate(int cateid,String name){ List projectEntityList; try { Connection conn = JdbcUtils.getConnection(); QueryRunner runner = new QueryRunner(); - String sql = "select * from project where projectId in (select projectId from project_category where categoryId=?)"; - projectEntityList = runner.query(conn, sql, new BeanListHandler<>(projectEntity.class),cateid); + String sql = "select * from project where projectId in (select projectId from project_category where categoryId in(select categoryId from category where categoryName = ?))"; + projectEntityList = runner.query(conn, sql, new BeanListHandler<>(projectEntity.class),name); conn.close(); } catch (SQLException e) { throw new RuntimeException(e); @@ -115,13 +115,13 @@ public class projectDao { return projectEntityList; } - public List retSelcetByStartNum(int cateid){ + public List retSelcetByStartNum(int cateid,String name){ List projectEntityList; try { Connection conn = JdbcUtils.getConnection(); QueryRunner runner = new QueryRunner(); - String sql = "select * from project where projectId in (select projectId from project_category where categoryId=?) order by lookCount desc"; - projectEntityList = runner.query(conn, sql, new BeanListHandler<>(projectEntity.class),cateid); + String sql = "select * from project where projectId in (select projectId from project_category where categoryId in(select categoryId from category where categoryName = ?)) order by lookCount desc"; + projectEntityList = runner.query(conn, sql, new BeanListHandler<>(projectEntity.class),name); conn.close(); } catch (SQLException e) { throw new RuntimeException(e); diff --git a/src/com/hellogithub/entity/categoryEntity.java b/src/com/hellogithub/entity/categoryEntity.java index c20d5dd..7f10a22 100644 --- a/src/com/hellogithub/entity/categoryEntity.java +++ b/src/com/hellogithub/entity/categoryEntity.java @@ -29,4 +29,14 @@ public class categoryEntity { } int isValid; + + String categoryName; + + public String getCategoryName() { + return categoryName; + } + + public void setCategoryName(String categoryName) { + this.categoryName = categoryName; + } } diff --git a/src/com/hellogithub/entity/projectEntity.java b/src/com/hellogithub/entity/projectEntity.java index 7642e03..4cbb697 100644 --- a/src/com/hellogithub/entity/projectEntity.java +++ b/src/com/hellogithub/entity/projectEntity.java @@ -141,4 +141,14 @@ public class projectEntity { public void setCategoryName(String categoryName) { this.categoryName = categoryName; } + + long num=0; + + public long getNum() { + return num; + } + + public void setNum(long num) { + this.num = num; + } } diff --git a/src/com/hellogithub/service/categoryService.java b/src/com/hellogithub/service/categoryService.java new file mode 100644 index 0000000..5d7dd7f --- /dev/null +++ b/src/com/hellogithub/service/categoryService.java @@ -0,0 +1,16 @@ +package com.hellogithub.service; + +import com.hellogithub.dao.projectDao; +import com.hellogithub.dao.categoryDao; +import com.hellogithub.entity.categoryEntity; + +import java.util.List; + +public class categoryService { + + private categoryDao categoryDao = new categoryDao(); + + public List retLabel() {return categoryDao.retLabel();} + + public categoryEntity retNum(int id ){return categoryDao.retNum(id);} +} diff --git a/src/com/hellogithub/service/projectService.java b/src/com/hellogithub/service/projectService.java index 844455c..57147f8 100644 --- a/src/com/hellogithub/service/projectService.java +++ b/src/com/hellogithub/service/projectService.java @@ -1,47 +1,30 @@ package com.hellogithub.service; -import com.hellogithub.dao.UserDao; -import com.hellogithub.dao.projectDao; -import com.hellogithub.entity.projectEntity; -import java.util.HashMap; -import java.util.Iterator; +import com.hellogithub.dao.categoryDao; +import com.hellogithub.dao.projectDao; +import com.hellogithub.entity.categoryEntity; +import com.hellogithub.entity.projectEntity; import java.util.List; -import java.util.Map; + public class projectService { private projectDao projectDao = new projectDao(); + private categoryDao categoryDao = new categoryDao(); /** * 按照期刊号查询 * * @param num */ public List retTerm(String num){ - Map dataMap=new HashMap<>(); - dataMap.put(1,"C项目"); - dataMap.put(2,"C#项目"); - dataMap.put(3,"C++项目"); - dataMap.put(4,"CSS项目"); - dataMap.put(5,"Go项目"); - dataMap.put(6,"Java项目"); - dataMap.put(7,"Javascript项目"); - dataMap.put(8,"Kotlin项目"); - dataMap.put(9,"Obejctive-C项目"); - dataMap.put(10,"PHP项目"); - dataMap.put(11,"Python项目"); - dataMap.put(12,"Ruby项目"); - dataMap.put(13,"Rust项目"); - dataMap.put(14,"Swift项目"); - dataMap.put(15,"其他"); - dataMap.put(16,"开源书籍"); - dataMap.put(17,"机器学习"); List projectEntityList = projectDao.retTerm(num); for(int i =0;i retLatestProject(int cate) { - Map dataMap=new HashMap<>(); - dataMap.put(1,"C项目"); - dataMap.put(2,"C#项目"); - dataMap.put(3,"C++项目"); - dataMap.put(4,"CSS项目"); - dataMap.put(5,"Go项目"); - dataMap.put(6,"Java项目"); - dataMap.put(7,"Javascript项目"); - dataMap.put(8,"Kotlin项目"); - dataMap.put(9,"Obejctive-C项目"); - dataMap.put(10,"PHP项目"); - dataMap.put(11,"Python项目"); - dataMap.put(12,"Ruby项目"); - dataMap.put(13,"Rust项目"); - dataMap.put(14,"Swift项目"); - dataMap.put(15,"其他"); - dataMap.put(16,"开源书籍"); - dataMap.put(17,"机器学习"); + public List retLatestProject(int cate,String name) { List projectEntityList; if (cate == 0) { projectEntityList =projectDao.retLatestProject(); for(int i =0;i retSelcetByStar(int cate){ - Map dataMap=new HashMap<>(); - dataMap.put(1,"C项目"); - dataMap.put(2,"C#项目"); - dataMap.put(3,"C++项目"); - dataMap.put(4,"CSS项目"); - dataMap.put(5,"Go项目"); - dataMap.put(6,"Java项目"); - dataMap.put(7,"Javascript项目"); - dataMap.put(8,"Kotlin项目"); - dataMap.put(9,"Obejctive-C项目"); - dataMap.put(10,"PHP项目"); - dataMap.put(11,"Python项目"); - dataMap.put(12,"Ruby项目"); - dataMap.put(13,"Rust项目"); - dataMap.put(14,"Swift项目"); - dataMap.put(15,"其他"); - dataMap.put(16,"开源书籍"); - dataMap.put(17,"机器学习"); + public List retSelcetByStar(int cate,String name){ + List projectEntityList; if (cate == 0){ @@ -136,47 +86,32 @@ public class projectService { { projectEntity projectEntity = projectEntityList.get(i); - projectEntity.setCategoryName(dataMap.get(projectEntity.getCategoryId())); + categoryEntity categoryEntity = categoryDao.retNum(projectEntity.getCategoryId()); + projectEntity.setCategoryName(categoryEntity.getCategoryName()); } }else { - projectEntityList =projectDao.retSelcetByStartNum(cate); + projectEntityList =projectDao.retSelcetByStartNum(cate,name); for(int i =0;i selectByInput(String str){ - Map dataMap=new HashMap<>(); - dataMap.put(1,"C项目"); - dataMap.put(2,"C#项目"); - dataMap.put(3,"C++项目"); - dataMap.put(4,"CSS项目"); - dataMap.put(5,"Go项目"); - dataMap.put(6,"Java项目"); - dataMap.put(7,"Javascript项目"); - dataMap.put(8,"Kotlin项目"); - dataMap.put(9,"Obejctive-C项目"); - dataMap.put(10,"PHP项目"); - dataMap.put(11,"Python项目"); - dataMap.put(12,"Ruby项目"); - dataMap.put(13,"Rust项目"); - dataMap.put(14,"Swift项目"); - dataMap.put(15,"其他"); - dataMap.put(16,"开源书籍"); - dataMap.put(17,"机器学习"); + List projectEntityList = projectDao.selectByInput(str); for(int i =0;i result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } +} diff --git a/src/com/hellogithub/servlet/selectLastByCateServlet.java b/src/com/hellogithub/servlet/selectLastByCateServlet.java index 49a2f35..da255c5 100644 --- a/src/com/hellogithub/servlet/selectLastByCateServlet.java +++ b/src/com/hellogithub/servlet/selectLastByCateServlet.java @@ -43,8 +43,9 @@ public class selectLastByCateServlet extends HttpServlet { resp.setContentType("application/json;charset=UTF-8"); String cate = req.getParameter("num"); + String name = req.getParameter("name"); PrintWriter writer = resp.getWriter(); - String jsonString = JSONObject.toJSONString(projectService.retLatestProject(Integer.valueOf(cate))); + String jsonString = JSONObject.toJSONString(projectService.retLatestProject(Integer.valueOf(cate),name)); writer.println(jsonString); writer.close(); } diff --git a/src/com/hellogithub/servlet/selectMostStarServlet.java b/src/com/hellogithub/servlet/selectMostStarServlet.java index eb4c9ab..cb77022 100644 --- a/src/com/hellogithub/servlet/selectMostStarServlet.java +++ b/src/com/hellogithub/servlet/selectMostStarServlet.java @@ -39,9 +39,9 @@ public class selectMostStarServlet extends HttpServlet { resp.setContentType("application/json;charset=UTF-8"); String cate = req.getParameter("num"); - + String name =req.getParameter("name"); PrintWriter writer = resp.getWriter(); - String jsonString = JSONObject.toJSONString(projectService.retSelcetByStar(Integer.valueOf(cate))); + String jsonString = JSONObject.toJSONString(projectService.retSelcetByStar(Integer.valueOf(cate), name)); writer.println(jsonString); writer.close(); } diff --git a/web/index.jsp b/web/index.jsp index 8da7aaf..0b1828a 100644 --- a/web/index.jsp +++ b/web/index.jsp @@ -11,7 +11,7 @@ $Title$ - 你说的对,但是hellogithub是一个.... - + 你说的对,但是hellogithub是一个....
+ 主页