数据可视化实践 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,而是要在理解的基础上对自己的代码进行优化。最后不得不承认自己还是代码敲得太少了,今后的学习中还要更加努力。

经验分享 程序员 微信小程序 职场和发展