使用的mysql版本8.0.11,tomcat版本7.0.88,myeclipse2017ci9破解版
-->1:学习如何用myeclipse + tomcat + mysql + browser发布自己的web项目,这个项目是所有项目的开端。
-->2:我需要做到:显示我mysql中某一个数据库其中一个列表里的内容,我需要利用java的JDBC技术,其中主要用到这几个API:
java.sql.Connection:建立程序和数据库的通道,负责连接数据库,在这里需要传递连接数据库的URL,以及对应的用户名和密码。
java.sql.Statement:负责执行数据库SQL语句,我只要能连接上数据库,并且能执行一条语句,那我就可以执行很多条语句。
java.sql.ResultSet:负责存放查询结果,这是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,同时还具有操纵数据的功能,可以完成对数据的更新。简单记录几个其拥有的方法:getArray(int colindex/String columnname)、getAsciiStream ( int colindex/String colname )。
-->3:首先一开始是安装好了mysql、Myecplise、tomcat后,能实现:在mysql客户端能通过用户名和密码查询数据,建立删除数据等,在myecplise里面可以编写项目,并且已经可以把简单的项目部署到tomcat中,这是软件自动检测到的tomcat,只需要在浏览器中输入对应的项目地址就可以了。
-->4:这次是需要连接上数据库的,刚才的jdbc只是负责处理的java技术,连接还是需要数据库本身提供的驱动,在mysql网上下载到驱动,是一个zip包,里面带有一个jar包,把这个包分别复制到myeclipse项目下的lib包中和tomcat目录下的lib包中。到此可以防止一些java.lang.classnotfoundexception的错误。
-->5:在做完这些后就开始写代码,然后发布,但是在浏览器查看的时候会出现几个错误,分别是:
--》1:The server time zone value '?й???????' is unrecognized or represents more than one time zone;
中间的乱码是因为识别不出中文编码的关系,这个需要在URL后面添加时区信息和编码信息,最终URL如下:
"jdbc:mysql://localhost:3306/liyt" + "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
--》2:Malformed database URL;
这是显示URL格式出问题了,实际上一开始我在加时区的时候是直接把时区的信息添加在URL后面,URL中还带有数据库的用户名和密码:
jdbc:mysql://localhost:3306/"+dbName+ "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" + "?user="+userName+"&password="+userPasswd;
但是这样并不能奏效,我还修改了对应的驱动类名,这个现在看来是没有问题的。后来我把URL,用户名和密码分别作为三个参数传给了Connection,最后是能够显示。这中间为了发现问题我把代码一行一行地执行,最后显示是Connecion这一行出现了问题,于是我就改了参数,最后能够输出正确的结果了。
1 <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%> 2 <html> 3 <body> 4 <% 5 out.println("这是我家!<br>"); 6 String driverName="com.mysql.cj.jdbc.Driver"; 7 String userName="root"; 8 String userPasswd="858520"; 9 String dbName="liyt"; 10 String tableName="test"; 11 12 String url ="jdbc:mysql://localhost:3306/liyt" + "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"; 13 //String url="jdbc:mysql://localhost:3306/"+dbName+ "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" + "?user="+userName+"&password="+userPasswd; 14 Class.forName("com.mysql.jdbc.Driver").newInstance(); 15 Connection conn=DriverManager.getConnection(url, userName, userPasswd); 16 Statement stmt = conn.createStatement(); 17 String sql="SELECT * FROM "+tableName; 18 ResultSet rs = stmt.executeQuery(sql); 19 //out.println(rs); 20 out.print("name"); 21 out.print("|"); 22 out.print("sex"); 23 out.print("|"); 24 out.print("age"); 25 out.print("<br>"); 26 while(rs.next()){ 27 out.print(rs.getString(1)+" "); 28 out.print("|"); 29 out.print(rs.getString(2)+" "); 30 out.print("|"); 31 out.print(rs.getString(3)); 32 out.print("<br>"); 33 } 34 out.print("<br>"); 35 out.print("ok, Database Query Successd!"); 36 rs.close(); 37 stmt.close(); 38 conn.close(); 39 out.println("这是你家3!"); 40 41 %> 42 </body> 43 </html>