数据可视化实践 JSP连接数据库
通过jsp连接mySQL数据库,将map_enword表中的相关内容显示在jsp网页中。
1.创建数据库,导入map_enword表
在mySQL-FONT中创建数据库,命名为dict。
选中创建的数据库dict,向其中输入已有的map_enword.sql文件。注意输入时选中字符集为“UTF-8”。
2. 添加驱动
将已有的mysql-connector-java-5.0.4.jar包拷贝进tomcat的lib目录下。该步骤是为jsp脚本提供连接mySQL的驱动程序。
3. 编辑jsp文件
将index.jsp文件放入课程实验目录C:Program FilesApache Software FoundationTomcat 9.0webappsvis2021下。并对已有内容中的相关参数进行修改。
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
out.print("<center><h1><font color=blue>Matrix Word Cloud English Learning</h1></center>");
//访问控制
//驱动程序名,用于连接mysql
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="root";
//密码,修改为自己的密码
String userPasswd="2017";
//数据库名,修改为第1步中添加的数据库名
String dbName="dict";
//表名,修改为第1步中对应表名
String tableName="map_enword";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
//建立连接
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
//陈述与得到回答
Statement statement = connection.createStatement();
for(int i=0;i<26;i++){
int aa=Integer.valueOf(a)+i;
char cha = (char) aa;
out.print(cha);
String sql="SELECT * FROM "+tableName+" where english like "+cha+"% "+"order by english";
ResultSet rs = statement.executeQuery(sql);
// 输出每一个数据值
String str;
int j=0;
while(rs.next()) {
str=(rs.getString(2)).substring(0,1);
out.print(str+" ");
j++;
}
out.print(" "+j+" <br>"); //输出每组拥有相同首字母的单词的个数
rs.close();
}
statement.close();
connection.close();
%>
4. 重启tomcat,访问对应路径,查看结果
查看到如上所示页面则表示连接mySQL成功。
在重启tomcat时遇到的问题:
在bin文件中点击了shutdown.bat,再重新启动tomcat,访问显示http-500错误。原因是点击shutdown.bat文件未将tomcat服务完全关闭,tomcat仍在后台运行,导致驱动程序没有加载进去。
解决方法:在任务管理器中关闭tomcat。
四天数据可视化课程总结:
在四天的实践课程中,简单实现了直方图、文字书、饼图和力导图几种数据可视化的方法。在实验的一开始对新的内容适应比较慢,图形实现也经常出bug,犯一些细节上的小错误,比如第一天实现直方图时for循环中居然打漏了给i赋初始值0导致卡了蛮久……但每一次bug都是可以帮助自己完善下一次代码的宝贵经验教训。
在课程中印象深刻的一点是课程中老师从简单到复杂的代码演化,让我明白了理解功能实现的原理和代码之间的逻辑的重要性。并且要多看多学习别人的代码,但学习不是机械式的copy,而是要在理解的基础上对自己的代码进行优化。最后不得不承认自己还是代码敲得太少了,今后的学习中还要更加努力。
