1、项目关键代码
1.1 新闻进行分类与mysql交互业务层代码
public List<entityDic> Selecting() { List<entityDic> list = new ArrayList<>(); Connection conn = DbHelper.getConnection(); try { DatabaseMetaData dbm = conn.getMetaData(); ResultSet rs = dbm.getTables(null, null, "sheet%", null);//通配符获取表名称中所有含有字符sheet的表 while(rs.next()){ entityDic user = new entityDic(); user.setTABLE_NAME(rs.getString(3)); System.out.println(rs.getString(3)); //打印表名 list.add(user); } rs.close(); } catch (SQLException e) { e.printStackTrace(); } return list; } public String SelectingType(String tablename) { String sql = "select channelName from "+tablename; Connection conn = DbHelper.getConnection(); PreparedStatement pst = null; String channel=null; try { pst = conn.prepareStatement(sql); ResultSet rst = pst.executeQuery(); while(rst.next()) { channel = rst.getString("channelName"); } rst.close(); pst.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return channel; } public List<entityDic> SelectingTitle(String tablename) { List<entityDic> list = new ArrayList<>(); String sql = "select title from "+tablename; Connection conn = DbHelper.getConnection(); PreparedStatement pst = null; try { pst = conn.prepareStatement(sql); ResultSet rst = pst.executeQuery(); while(rst.next()) { entityDic user = new entityDic(); user.setTABLE_COMMENT(rst.getString("title")); System.out.println(rst.getString("title")); //打印表名 list.add(user); } rst.close(); pst.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return list; } public entityDic SelectingAll(String titlename,String tablename) { String sql = "select * from "+tablename+" where title = ?"; Connection conn = DbHelper.getConnection(); PreparedStatement pst = null; entityDic user = new entityDic(); try { pst = conn.prepareStatement(sql); pst.setString(1, titlename); ResultSet rst = pst.executeQuery(); while(rst.next()) { user.setCOLUMN_NAME(rst.getString("title")); user.setCOLUMN_TYPE(rst.getString("channelName")); user.setCOLUMN_KEY(rst.getString("content")); } rst.close(); pst.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return user; } public String SelectingCol(String tablename) { String sql = "select count(*) from "+tablename; Connection conn = DbHelper.getConnection(); PreparedStatement pst = null; String channel=null; try { pst = conn.prepareStatement(sql); ResultSet rst = pst.executeQuery(); while(rst.next()) { channel = rst.getString("count(*)"); } rst.close(); pst.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return channel; }
1.2 提取mysql数据库中关键词代码
public int selectingTotal(String tablename) { String sql = "select COUNT(num) from "+tablename; Connection conn = DbHelper.getConnection(); PreparedStatement pst = null; int channel=1; try { pst = conn.prepareStatement(sql); ResultSet rst = pst.executeQuery(); while(rst.next()) { channel = rst.getInt("COUNT(num)"); } rst.close(); pst.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return channel; } public List<DataJson> cha(String tablename) { List<DataJson> list = new ArrayList<>(); String sql = "select * from "+tablename+" ORDER BY 'num' ASC limit 0,600"; Connection conn = DbHelper.getConnection(); PreparedStatement pst = null; try { pst = conn.prepareStatement(sql); ResultSet rst = pst.executeQuery(); while(rst.next()) { DataJson user = new DataJson(); user.setName(rst.getString("keywords")); double t= rst.getInt("num"); double b = (double)t/selectingTotal(tablename); System.out.println(selectingTotal(tablename)); user.setValue(b); list.add(user); } rst.close(); pst.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } return list; }
1.3 前端显示代码(此显示仅为index.jsp)
<%@ page import="com.entity.entityDic" %> <%@ page import="java.util.ArrayList" %> <%@ page import="com.dao.Datadao" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>新闻信息管理</title> <!-- BOOTSTRAP STYLES--> <link href="assets/css/bootstrap.css" rel="stylesheet" /> <!-- FONTAWESOME STYLES--> <link href="assets/css/style.css" rel="stylesheet" /> <!-- CUSTOM STYLES--> <link href="assets/css/table-responsive.css" rel="stylesheet" /> <!-- GOOGLE FONTS--> <link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' /> </head> <body> <div id="wrapper"> <nav class="navbar navbar-default navbar-cls-top " role="navigation" style="margin-bottom: 0"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-collapse"> <span class="sr-only">新闻</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="index.jsp">数据</a> </div> <div style="color: white; padding: 15px 50px 5px 50px; float: right; font-size: 16px;"> <a href="#" class="btn btn-danger square-btn-adjust">登录</a> </div> </nav> <!-- /. NAV TOP --> <nav class="navbar-default navbar-side" role="navigation"> <div class="sidebar-collapse"> <ul class="nav" id="main-menu"> <% Datadao dao = new Datadao(); ArrayList<entityDic> lists = (ArrayList<entityDic>) dao.Selecting(); for (entityDic bi : lists) { %> <tr> <li> <a class="active-menu" href="ShowServlet?name=<%=bi.getTABLE_NAME()%>"><i class="fa fa-dashboard fa-3x"></i><%=dao.SelectingType(bi.getTABLE_NAME())%>(<%=dao.SelectingCol(bi.getTABLE_NAME())%>)</a> </li> </tr> <% } %> <li> <a class="active-menu" href="blank.jsp"><i class="fa fa-dashboard fa-3x"></i>分类统计</a> </li> <li> <a class="active-menu" href="sheet_army.jsp"><i class="fa fa-dashboard fa-3x"></i>词云展示</a> </li> <% for (entityDic bi : lists) { %> <tr> <li> <a class="active-menu" href="/<%=bi.getTABLE_NAME()%>.jsp"><i class="fa fa-dashboard fa-3x"></i><%=dao.SelectingType(bi.getTABLE_NAME())%>词云图</a> </li> </tr> <% } %> </ul> </div> </nav> <!-- /. NAV SIDE --> <div id="page-wrapper" > <div id="page-inner"> <div class="row"> <div class="panel panel-default"> <div class="panel-heading"> <label>展示</label> </div> <div class="panel-body"> <div class="table-responsive"> <table class="table table-striped table-bordered table-hover"> <thead> <tr> <th>#</th> <th>新闻标题</th> </tr> </thead> <tbody> <% Datadao daos= new Datadao(); int j=1; String name = (String) request.getAttribute("name"); if(name==null) { name = "sheet_army"; } ArrayList<entityDic> list = (ArrayList<entityDic>) daos.SelectingTitle(name); for (entityDic bis : list) { int id = bis.getId(); %> <tr> <form action="/ShowServlet" method="post"> <td><%=j%></td> <td><a href="blank2.jsp?id=<%=bis.getTABLE_COMMENT()%>&name=<%=name%>" ><%=bis.getTABLE_COMMENT()%></a></td> </form> </tr> <% j++;} %> </tbody> </table> </div> </div> </div> </div> <!-- /. ROW --> <hr /> </div> <!-- /. PAGE INNER --> </div> <!-- /. PAGE WRAPPER --> </div> <!-- /. WRAPPER --> <!-- SCRIPTS -AT THE BOTOM TO REDUCE THE LOAD TIME--> <!-- JQUERY SCRIPTS --> <script src="assets/js/jquery-1.8.3.min.js"></script> <!-- BOOTSTRAP SCRIPTS --> <script src="assets/js/bootstrap.min.js"></script> <!-- METISMENU SCRIPTS --> <script src="assets/js/jquery.sparkline.js"></script> <!-- CUSTOM SCRIPTS --> <script src="assets/js/common-scripts.js"></script> </body> </html>
2、结果显示