JDBC连接MySQL数据库出现的错误及解决方法整理
1. 在JDBC使用的时候有时候会出现java.sql.SQLException: The server time zone value ‘???ú±ê×??±??’ is unrecognized or represents…的错误,具体错误如下:
注: 出现这个的原因是因为 mysql返回的时间总是有问题,比实际时间要早8小时。
解决办法:1.在url后面加useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false2.url="jdbc:mysql://localhost:3306/library?serverTimezone=UTC"
注: 还有一种可能就是:在xml配置文件中,url中的&
符号需要转义成 &;
即
"jdbc:mysql://localhost:3306/how2java?useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true"
package edu.gdut.imis.library.common;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;import edu.gdut.imis.library.entity.BookModel;public class DBConnector {public static Connection getConn() throws SQLException {String url="jdbc:mysql://localhost:3306/library?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";String user="root";String password="123456";try {Class.forName("com.mysql.cj.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}Connection conn=DriverManager.getConnection(url, user, password);return conn;}public List<BookModel> findAll() {Connection conn=null;Statement stmt=null;List<BookModel>list=new ArrayList<BookModel>();BookModel bm=null;try {conn =this.getConn();String sql="SELECT* FROM book";stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {bm=new BookModel();bm.setIsbn(rs.getString(1));bm.setName(rs.getString(2));bm.setAuthor(rs.getString(3));bm.setPrice(rs.getFloat(4));list.add(bm);}} catch (SQLException e) {System.out.println("数据库加载失败!");e.printStackTrace();}finally {try {stmt.close();conn.close();} catch (SQLException e) {System.out.println("数据库加载失败!2");e.printStackTrace();}}return list;}
public static void main(String[]args) {DBConnector db=new DBConnector();System.out.println("book表");List<BookModel>list=db.findAll();String isbn=list.get(0).getIsbn();System.out.println(isbn);if(list.size()==0)System.out.println("没有数据");System.out.println("youshuju");
}}
注:当在mybatis中解决时差问题用:
<property name="url" value="jdbc:mysql://localhost:3306/how2java?useSSL=false&serverTimezone=GMT%2B8"/>
2.出现Unknown column ‘xxx’ in 'where clause’问题
这是因为该列的值为中文时,筛选条件要加单引号‘’
String sql="SELECT* FROM product WHERE code="+codename+" OR name="+codename+";";
即code是整型的数字,不用单引号;而name是字符串类型的,必须要包含在单引号内,修改如下:
String sql="SELECT* FROM product WHERE code="+codename+" OR name='"+codename+"';";
3.Tomcat出现“Servlet execution threw an exception threw NamingException”
可能是没有找到配置文件
在Tomcat: apache-tomcat-9.0.16\conf\Catalina\localhost在这个文件夹下面新建配置xml文件
JDBC连接MySQL数据库出现的错误及解决方法整理相关推荐
- navicat for mysql 1045错误,navicat连接mysql时出现1045错误的解决方法
navicat连接mysql时出现1045错误的解决方法 navicat for MySQL 连接本地数据库出现1045错误 如下图: 查了很多资料,意思是说mysql没有授权远程连接,也就是权限不够 ...
- mysql数据库报1205错误的解决方法
mysql数据库报1205错误的解决方法 解决办法 解决办法 查看数据库的进程表 show full processlist; 查看事物表 select* from information_schem ...
- nodejs连接mysql报connect ECONNREFUSED错误的解决方法
通过AMH面板安装的mysql,用nodejs连接mysql时候结果报[connect ECONNREFUSED]连接错误. 解决方法:添加socketPath 有些mysql 安装的时候不是mysq ...
- 使用navicat连接mysql出现提示10038错误的解决方法
可能是mysql没有启动,以管理员身份运行cmd,输入net start mysql 启动mysql,然后再去使用navicat连接mysql
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- java mysql教程基于_java基于jdbc连接mysql数据库功能实例详解
本文实例讲述了java基于jdbc连接mysql数据库的方法.分享给大家供大家参考,具体如下: 一.JDBC简介 Java 数据库连接,(Java Database Connectivity,简称JD ...
- 在java中使用JDBC连接mysql数据库时的服务器时区值无法识别或表示多个时区的问题解决方案
项目场景: 在java中使用JDBC连接mysql数据库时,报以下的错:Exception in thread "main" java.sql.SQLException: The ...
- JDBC连接MySQL数据库,访问数据库信息完成登录功能——保姆级详细教程(附所有java和jsp源代码)
目录 前言 JDBC的介绍 通过JDBC连接MySQL数据库 导入mysql驱动 连接数据库 连接数据库 判断连接是否成功 使用数据库实现登录 获取前端表单的用户输入 判断用户名和密码为空 查询表 判 ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- JAVA-数据库之JDBC连接MySQL数据库
相关资料: <21天学通Java Web开发> JDBC连接MySQL数据库 1.如果需要通过JDBC来连接MySQL数据库,还必须先在MySQL数据库服务器中创建数据库和表. Conne ...
最新文章
- C语言如何编写游戏界面,「分享」C语言如何编写图形界面
- 使用 Termux 查看连接到手机热点的ip地址
- java 字符转化字符串_【转载】java字符串的各种编码转换
- joomla建站-双语CMS系统开发的实现
- idea中git提交代码更改作者名字(亲测)
- 设计模式之单例模式(C++代码实现)
- bootstrap获取弹框数据_Bootstrap模态弹出框的实例教程
- 前端页面:一直报Cannot set property 'height' of undefined
- android sharedpre,android 数据存储一SharedPrenference存储简单数据
- Android之使用枚举利弊及替代方案
- 博弈论 斯坦福game theory stanford week 2.1_
- php设计模式实战之--观察者模式
- Windows+Python3.7下自动生成requirements.txt文件
- 我,开了五年快递站,现在还没回本
- 大唐凌烟阁开国廿四将
- 一种无法用言语表达的爱——父爱
- 警告:Named Route ‘Main‘ has a default child route. When navigating to this named route
- nginx与react配合二级路由
- python 采用to_csv保存数据不覆盖原有数据到文件中
- 有一种努力叫:靠自己