JDBC
JDBC就是使用Java语言操作关系型数据库的一套API
全称:(Java DataBase Connectivity) Java数据库连接
JDBC本质:
官方(SUN公司)定义的一套操作所有关系型数据库的规则,即接口
各个数据库厂商去实现这套接口,提供数据库驱动jajr报
我们可以使用这套接口(JDBC)编程,真正执行的代码时驱动jar包中的实现类
JDBC好处:
各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
可随时替换底层数据库,访问数据库的Java代码基本不变
JDBC实现
0.创建工程
1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
2.获取连接
Connection conn=DriverManager.getConnection(url,username,password);
3.定义SQL语句
String sql="update ...";
4.获取执行SQL对象
Statement stmt=conn.createStatement();
5.执行SQL
6.处理返回结果
7.释放资源
代码 示例:
package com.sx.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Demo {
public static void main(String[] args) throws Exception {
//1.注册驱动 让代码知道使用的是那个jar包
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
String url="jdbc:mysql://127.0.0.1:3306/test";
String user="root";
String password="1234";
Connection conn = DriverManager.getConnection(url,user,password);
//定义SQL语句
String sql="update emp set salary ='66' where id =1";
//获取执行sql的对象Statement
Statement stmt = conn.createStatement();
//执行sql
int count = stmt.executeUpdate(sql);
//处理结果
System.out.println(count);
//释放资源
stmt.close();
conn.close();
}
}
JavaAPI简单介绍
DriverManager (驱动管理类)
1.注册驱动:DriverManager.registerDriver()
Driver源码
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
public Driver() throws SQLException {
}
static {
try {
//真正意义上的注册驱动代码
//如果没有这段代码 换数据库就需要换很多代码会存在耦合
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException("Can't register driver!");
}
}
}
实际上不写也可以 MYSQL 5之后的jar包 可以省略注册驱动的步骤 自动加载java.sql.Driver文件中的驱动类
写的原因就是可以解耦
2.获取数据库连接:DriverManager.getConnection()
参数:
1.url路径:连接路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
示例:jdbc:mysql//127.0.0.1:3306/test
提示:如果连接的是本机的mysql服务器,并且MySQL服务默认端口是3306,则url可以简写位:jdbc:mysql:数据库名?参数键值对
配置useSSl=false参数,禁止安全连接方式,解决警告提示
String url="jdbc:mysql://127.0.0.1:3306/test?useSSR=false";
2.user:用户名 这就自己写自己的哈
3.password:密码也是写自己的
Connection(数据库连接对象)
1.获取执行SQL的对象:Statement
1.普通执行SQL对象
Statement sreateStatement()
2.预编译SQL的执行SQL对象
PreparedStatement prepareStatement(sql)
3.执行存储过程的对象
CallableStatement prepareCall(sql)
2.管理事物
MYSQL事务管理
开启事物:BEGIN/START TRANSACTION;
提交事务:COMMIT;
回滚事务:ROLLBACK;
MYSQL上默认自动提交事务
JDBC事务管理:Connection接口中定义了三个对应的方法
开启事务:setAutoCommit(boolean autoCommit);true为自动提交事务;false为手动提交
提交事务:commit();
回滚事务:rollback();



