初识JDBC及链接数据库相关问题(mysql+IDEA)

1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库

JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

2. 入门:
2.1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar

2.1.1 复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
在这里插入图片描述
在这里插入图片描述2.1.2 右键–>Add As Library
在这里插入图片描述
在这里插入图片描述

2.2 注册驱动
Class.forName("com.mysql.jdbc.Driver");
2.3 获取数据库连接对象 Connection
 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/firstdatabase", "root", "root");

在这里插入图片描述

2.4 定义sql
 String sql = "update account set balance = 500 where id = 1";
2.5 获取执行sql语句的对象 Statement
 Statement statement = conn.createStatement();
2.6 执行sql,接受返回结果
long l = statement.executeLargeUpdate(sql);
2.7 处理结果
System.out.println(l);
2.8 释放资源
statement.close();
conn.close(); 
2.9 完整代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
 * JDBC快速入门
 */
public class jdbcDemo1 {
   
    public static void main(String[] args) throws Exception {
   
        //1.导入驱动jar包
        //2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //3.获取数据库连接对象
        Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/firstdatabase",
                "root", "root");

        //4.定义sql语句
        String sql = "update account set balance = 500 where id = 1";
        //5.获取执行sql的对象 Statement
        Statement statement = conn.createStatement();
        //6.执行sql
        long l = statement.executeLargeUpdate(sql);
        //7.处理结果
        System.out.println(l);
        //8.释放资源
        statement.close();
        conn.close();
    }
}
3. 问题:

按照以上代码编辑,一般是可以对数据库进行正常操作的,但是!!!我遇到了一些问题:

3.1首先的问题便是编译报错:(错误信息如下)
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
	at com.mysql.jdbc.Util.getInstance(Util.java:387)
	at com.mysql.jdbc
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值