JDBC
概念
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库
JDBC本质:
其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。
各个数据库厂商去实现这套接口,提供数据库驱动jar包。
我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
快速入门
- 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
- 复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
- 右键–>Add As Library
- 注册驱动
- 获取数据库连接对象 Connection
- 定义sql
- 获取执行sql语句的对象 Statement
- 执行sql,接受返回结果
- 处理结果
- 释放资源
package cn.itcast.jdbc;
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.注册驱动 mysql5之后驱动可以不写,会自动注册驱动
//Class.forName("com.mysql.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行的sql对象 Statement conn.createstatement()
Statement stmt = conn.createStatement();
//6.执行sql对象 stmt.excuteupdate(string sql)
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
}
}
详解各个对象
1.DriverManager:驱动管理对象
1.作用一:注册驱动(一般不用)
|返回值 | 方法介绍 | 方法介绍 |
static void | registerDriver(Driver driver) | 注册驱动|
使用static void registerDriver(Driver driver)
可以帮我们完成驱动的注册,但是开发中我们一般都不用,因为使用这个方法就会导致驱动被注册两次.
写代码使用:Class.forName("com.mysql.jdbc.Driver");
在代码中有一段静态代码块,静态代码块已经调用了注册驱动的方法。如果再手动调用该方法注册驱动,就会导致驱动被注册两次.所以mysql5 之后可以不手动注册驱动
static {
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException("Can't register driver!");
}
}
作用二:获取数据库连接
- 方法
- 使用
static Connection getConnection(String url, String user, String password)
可以帮我们获取与数据库的连接
这个方法中有三个参数:
- url :与数据库连接的路径
- 语法
jdbc:mysql://ip地址:端口/数据库名称
"jdbc:mysql://localhost:3306/db1"
- url如果连接的是本机的路径,并且默认端口为3306,可以简化为如下格式:
jdbc:mysql:///db1
-
user :与数据库连接的用户名
-
password :与数据库连接的密码
-
jdbc : 连接数据库的协议(固定)
-
mysql : 是jdbc的子协议
-
localhost : 连接的MySQL数据库服务器的主机地址。(连接是本机就可以写成localhost),如果连接不是本机的,就需要写上连接主机的IP地址。
-
3306 :MySQL数据库服务器的端口号
-
:数据库名称
2.Connection:数据库连接对象
作用一: 获取执行SQL语句的对象
Statement createStatement()
获取执行SQL语句的对象
PreparedStatement prepareStatement(String sql)
预编译SQL
作用二:管理事物
- 开启事物
void setAutoCommit(boolean autoCommit)
调用该方法设置参数为false,即开启事物 - 提交事务
void commit()
- *回滚事务
void rollback()
3.Statement:执行sql的对象
作用一:执行SQL
1.boolean execute(String sql)
执行SQL语句
2.ResultSet executeQuery(String sql)
执行查询 DQL (select)语句
3.int executeUpdate(String sql)
执行增(insert),删(delete),改(update)DML语句, DDL(create,alter,drop)语句
**练习:account 添加一条记录
**
package cn.itcast.jdbc;
/*account表 添加一条记录 insert语句*/
import javax.swing.*;
import java.sql.Connection;
import java