俩个jar包重叠

俩个jar包重叠

老师我得mysql版本和包好像都不对应,但是两个包一起用就好了,怎么回事,但是查询不管用哪个包都能输出,修改就得俩个包都装进去后运行数据表得值才变化,每次去掉一个包运行java时提示有错误是否继续运行,但代码没有显示错误。

http://img1.sycdn.imooc.com//climg/5cd18b4900016c8102270061.jpg

http://img1.sycdn.imooc.com//climg/5cd18b4900012f3f12480646.jpg

http://img1.sycdn.imooc.com//climg/5cd18b490001d35c13430716.jpg

http://img1.sycdn.imooc.com//climg/5cd18b4a00013d7e11630563.jpg

http://img1.sycdn.imooc.com//climg/5cd18b4b00010a9c06760363.jpg

http://img1.sycdn.imooc.com//climg/5cd18b4b0001323b13380711.jpg


package com.imooc.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo01 {

	public static void main(String[] args) throws ClassNotFoundException {
		Connection conn = null;
		Statement stat = null;
		ResultSet res = null;

		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(
					"jdbc:mysql://localhost:3306/test"
							+ "?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8",
					"root", "123456");
			stat = conn.createStatement();
			String sql = "select * from users";
			String sql1 = "update user set username='qqq',password='1389' where totlogin = 2";
			int i = stat.executeUpdate(sql1);

			if (i > 0) {
				System.out.println("保存成功!");

			}
			res = stat.executeQuery(sql);
			
			while (res.next()) {
				int state = res.getInt("state");
				String username = res.getString("username");
				String password = res.getString("password");
				System.out.println(state + username + password);
			}

		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} finally {
			if (stat != null) {
				try {
					stat.close();
				} catch (SQLException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				stat = null;

			}

			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				conn = null;

			}

			if (res != null) {
				try {
					res.close();
				} catch (SQLException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				res = null;

			}
		}

	}

}


正在回答

登陆购买课程后可参与讨论,去登陆

5回答

同学你好,在程序中已经完成加载驱动,建立数据库连接的操作了~

http://img1.sycdn.imooc.com//climg/5cd284050001572607390262.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-05-08 11:56:53

同学你好,这可能是由于jar包没有彻底删除的原因导致的。

可以按照如下操作:
http://img1.sycdn.imooc.com//climg/5cd2528d000173e107040288.jpg

在弹出的对话框中点击“Libraries”出现类似下图所示内容,按着“Ctrl”键依次点击带有红色叉号的 jar 包,然后点击右侧的“Remove” 

注意截图中的报红jar包和同学不一样,同学此时只需要选择自己报红的jar包即可。

http://img1.sycdn.imooc.com//climg/5cd2530c0001434807040419.jpg

然后依次点击“Apply”和“OK”,最后关闭对话框,可看到项目前的红色感叹号已经消失了。 这时,再运行程序进行测试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • 提问者 the_shy #1
    谢谢老师,好了,但我数据库cmd指令行没有输命令密码,也没有打开我的mysql-front,直接运行怎么就修改了,怎么看链接了没有,前面只通过代码就能直接连接数据库了吗?
    2019-05-08 12:07:17
吃吃吃鱼的猫 2019-05-08 11:15:15

同学遇到什么问题了呢?

是数据库没有更改成功吗?如果是的话,同学有没有刷新表看一下呢?打开user表,右键刷新。

http://img1.sycdn.imooc.com//climg/5cd249720001a56b07580318.jpg

如果不是的话,需要同学详细描述问题哦~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 the_shy #1
    老师我刷新过了,没有变化,关键运行时还提示有错误是否运行,
    2019-05-08 11:19:35
  • 提问者 the_shy #2
    老师我把我的换成课上老师用的5.1.7的,把原来的删了,但还是同样的问题
    2019-05-08 11:26:06
提问者 the_shy 2019-05-08 11:05:15
吃吃吃鱼的猫 2019-05-08 10:44:52

同学你好,当数据库驱动的版本是8时,即

http://img1.sycdn.imooc.com//climg/5cd2416e0001f98103470111.jpg

程序中加载驱动应该写为:

 Class.forName("com.mysql.cj.jdbc.Driver");

而且在数据库版本是5.7.22时,是不建议使用驱动8的,建议使用驱动5,即:

http://img1.sycdn.imooc.com//climg/5cd242130001e9c604060150.jpg

综上,只有驱动8时,可能会出现报错或修改不成功的情况,同学可以将驱动8的jar包去掉,只留下驱动5的jar包。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 the_shy #1
    老师,只加版本5的包还是有问题呀?我将代码中8版本需要的url ?后面那一长串去掉了,重新的截图在回答里,运行后查询结果输出,但是后面数据库表修改的password值1390没有改变,还是1389,其他代码都没动。而且运行代码时依然提示有有问题是否继续执行。但代码本身没有错误警告
    2019-05-08 11:14:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师