JSP访问数据库的过程与问题

使用的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>

  

猜你喜欢

转载自www.cnblogs.com/liyueteng/p/9122133.html