JDBC定义:

Java语言访问数据库的一种规范,是一套API

JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。
在这里插入图片描述

java程序员只需要面对jdbc就行,其他数据库厂家负责实现JDBC接口的具体方法,优点是解耦合
JDBC a =new Mysql()//多态机制
JDBC b =new SqlYog()

连接操作

第一步:导入jar包:
在这里插入图片描述
在导入的jar鼠标右击一下,选择Add as library
在这里插入图片描述

第二步:注册驱动:

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

第三步:获取连接
mysql通信协议:jdbc:mysql://127.0.0.1:3306/dbtest1",“root”,"123456
Oracle通信协议:
oracl:jdbc:thin:@127.0.0.1:3306/dbtest1
本机地址:localhost或者127.0.0.1

 Connection con= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbtest1","root","123456");

第四步:获取数据库操作对象
出现问题:
在这里插入图片描述
Statement提示有歧义,就是说在idea中提示有java.beans.Statement无法转换为java.sql.Statement.
在这里插入图片描述
解决方案:
在这里插入图片描述
这种重名的冲突需要写出类的完整路径以示区别
java.sql.Statement st = connection.createStatement();

第五步:执行sql语句
第六步:处理查询结果集
第七步:释放资源(使用完一定要关闭)

package com.www;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class JDBCDemo1 {
    public static void main(String[] args) throws Exception{
//    第一步:注册驱动:
        Class.forName("com.mysql.jdbc.Driver");
//    第二步:获取连接
        Connection con= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dbtest1","root","123456");
//    第三步:获取数据库操作对象
        java.sql.Statement  stat =  con.createStatement();
//    第四步:执行sql语句
        String sql ="SELECT * FROM employees";
        ResultSet rs= stat.executeQuery(sql);
//    第五步:处理查询结果集
        while(rs.next()){
            System.out.println(rs.getInt("employee_id")+"\t"+rs.getString("last_name"));
        }
//    第六步:释放资源(使用完一定要关闭)
        con.close();
        stat.close();
        con.close();
    }
}

功能解释:

DriverManager

1.DriverManager驱动管理对象:
注册驱动:注册驱动的程序为 static void registerDriver(Driver diver)
代码注册时用:Class.forName(“com.mysql.jdbc.Driver”);
这里的Driver会执行jar包里面Driver的Driver类,从而调用了注册驱动的程序,故不需要通过DriverManager调用registerDrive
在这里插入图片描述
2.java5之后也可以不写第二步的注册驱动;也可以运行的,因为jar包里service里面配置了相关注册信息。
在这里插入图片描述
在这里插入图片描述
3.数据库连接:
static Connection getConnection(…)
url:连接路径;
jdbc:mysql://127.0.0.1:3306/dbtest1",“root”,“123456”
dbtest1为自己数据库名称
3306:端口号,一般默认是这个

Connetion

1.获取执行者对象
Statement creatStatement(); //执行sql语句的
2.管理事务:
开启事务:setAtutoCommit(false),参数false为开启事务
提交事务:commit()
回滚事务:rollback()
释放资源:close();

Statement

1.执行DML语句:int execuUpdate(String sql)
int可以返回影响的行数;参数sql:可以执行insert,update,delect语句
2.执行DQL语句:ResultSet executeQuery(String sql);
ResultSet :封装查询结果
sql:执行select语句;
结束要释放资源;

 java.sql.Statement  stat =  con.createStatement();
 stat.close();

ResultSet

1.ResultSet 结果集对象
【1】判断结果集中是否还有数据:next()
有数据就返回ture ,并j将索引向下一行
【2】获取结果集数据: getInt(),getString();
【3】:结束要释放资源;

while(rs.next()){
            System.out.println(rs.getInt("employee_id")+"\t"+rs.getString("last_name"));
        }
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐