eclipse对jsp操作mysql所遇到的问题

码一下这几天eclipse对jsp操作mysql所遇到的问题

1.运行一下代码发现报错找不到Class.forName(“com.mysql.jdbc.Driver”).newInstance();
需要注意的是:java项目只需要在library里面导入jdbc的jar包
web项目需要重新在web-inf的lib中导入jar包

2.数据库创建连接conn报错
在这里插入图片描述 解决办法 将URL改成代码中所示的格式即可
原因笔者现在也没搞懂(如果有人知道原因请告诉我一下 谢谢) 反正这个挺坑的 找了不少资料才找到的解决办法

、jdbc:mysql://127.0.0.1:3306/******?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
解析:
characterEncoding=utf8 (字符编码)
useSSL=false (发现是8版本开始才需要添加,5.X印象中不需要,添加这个参数可能和MySQL的SSL连接设置有关系)
serverTimezone=UTC (当连接数据库时候,出现Time Zone错误时添加此参数,我貌似是使用Druid连接池时才出现的这个问题)
allowPublicKeyRetrieval=true (使用root账户登陆没问题,使用普通账户会提示Public Key Retrieval错误)
参考链接:参考链接

一切就绪后即可success:

在这里插入图片描述

<%@page contenxType="text/html;character="utf-8" language="java" 
import="com.mysql.jdbc.Driver"
import="java.sql.*"%>
//加载驱动程序  数据库信息 密码 数据库名 
String driverName="com.mysql.jdbc.Driver"; 
String userName="root";
String userPasswd="-------";//你的数据库密码
String dbName="ch4_3_user";
String tableName="user"; 

//注意这里的URL
String URL="jdbc:mysql://localhost/ch4_3_user?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&
rewriteBatchedStatements=true";//
//注意这里的URL写法
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn=DriverManager.getConnection(URL,userName,userPasswd); 
Statement stmt = conn.createStatement(); 
String sql="SELECT * FROM "+tableName; 
ResultSet rs = stmt.executeQuery(sql);
out.priint("id");
out.print("--");
out.priint("name");
out.print("--");
out.priint("pwd");
out.print("<br>");
while(rs.next()){
out.print(rs.getString(1)+" ");
out.print("--"); 
out.print(rs.getString(2)+" "); 
out.print("--"); 
out.print(rs.getString(3)+" "); 
out.print("<br>");  
}
rs.close();
stmt.close();
conn.close();
%>








发布了9 篇原创文章 · 获赞 4 · 访问量 4252

猜你喜欢

转载自blog.csdn.net/qq_42239081/article/details/87922591