新闻分类中文分词+词云展示(2)

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;">&nbsp; <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、结果显示

 

 

原文地址:https://www.cnblogs.com/lx06/p/15650863.html