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