JDBC 蓝旭工作室预习

目录

文章目录

前言

一、JDBC是什么

二、JDBC使用步骤

​编辑

图示:

第一步 

图示:

第二步 

第三步

第四步、第五步、第六步

至此,数据库插入操作完成(*^▽^*) 

三、JDBC各个部分功能详解​​​​​​​


前言

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

img✨✨  ✨✨

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝


提示:以下是本篇文章正文内容,下面案例可供参考

一、JDBC是什么

  • JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。
  • 本质是一套接口(interface),面向接口编程:解耦合,降低程序耦合度,提高程序扩展力

JDBC技术相关接口
作用:JDBC要通过Java代码操作数据库,JDBC中定义了操作数据库的各种接口和类型:

接口    作用
Driver    驱动接口,定义建立链接的方式
DriverManager    工具类,用于管理驱动,可以获取数据库的链接
Connection    表示Java与数据库建立的连接对象(接口)
PreparedStatement    发送SQL语句的工具
ResultSet    结果集,用于获取查询语句的结果

 

二、JDBC使用步骤

代码如下(示例):

package com.txw.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@SuppressWarnings("all")   // 注解警告信息
public class JdbcTest01 {
    public static void main(String[] args) throws Exception {
        // 1.加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        // 2 创建和数据库之间的连接
        String username = "root";
        String password = "123456";
        String url = "jdbc:mysql://192.168.64.128:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";
        Connection conn = DriverManager.getConnection(url,username,password);
        // 3.准备发送SQL
        String sql = "select * from t_person";
        PreparedStatement pstm = conn.prepareStatement(sql);
        // 4.执行SQL,接收结果集
        ResultSet rs = pstm.executeQuery();
        // 5 处理结果集
        while(rs.next()){
     /*
        rs.getXxx(列顺序从1开始) 或者 rs.getXxx("列名") 获取指定列的数据,Xxx为数据类型
        实战中多使用列名,可读性强
      */
            /*
            int personId2 = rs.getInt(1);
            String personName2 = rs.getString(2);
            int age2 = rs.getInt(3);
            String sex2 = rs.getString(4);
            String mobile2 = rs.getString(5);
            String address2 = rs.getString(6);
            System.out.println("personId="+personId2+",personName="+personName2
                    +",age="+age2+",sex="+sex2+",mobile="+mobile2+",address="+address2);
            */
            int personId1 = rs.getInt("person_id");
            String personName1 = rs.getString("person_name");
            int age1 = rs.getInt("age");
            String sex1 = rs.getString("sex");
            String mobile1 = rs.getString("mobile");
            String address1 = rs.getString("address");
            System.out.println("personId="+personId1+",personName="+personName1
                    +",age="+age1+",sex="+sex1+",mobile="+mobile1+",address="+address1);
        }
        // 6.释放资源
        rs.close();
        pstm.close();
        conn.close();
    }
}

图示:

 

第一步 

注册驱动

package com.jdbc;

import java.sql.*;

@SuppressWarnings("all")   // 注解警告信息
public class jdbctest {
    public static void main(String[] args) throws Exception {
        try {
            //1.注册驱动
            Driver driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(driver);
        }catch (SQLException e){
            e.printStackTrace();
        }
        //2.获取连接
        //3.获取数据库操作对象

    }
}

图示:


第二步 

获取连接

package com.jdbc;

import java.sql.*;

@SuppressWarnings("all")   // 注解警告信息
public class jdbctest {
    public static void main(String[] args) throws Exception {
        try {
            //1.注册驱动
            Driver driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(driver);

            //2.获取连接
            String url="jdbc:mysql:/itcast";
            /*
            JDBC URL 由三部分组成:
            协议(Protocol):JDBC 驱动程序的协议。
            对于 MySQL,协议是 jdbc:mysql://;
            对于 Oracle,协议是 jdbc:oracle:thin://;
            对于 SQL Server,协议是 jdbc:sqlserver://。
            主机和端口(Host and Port):数据库服务器的地址和端口号。
            对于本地数据库,主机和端口可以省略;
            对于远程数据库,需要指定主机和端口,例如:jdbc:mysql://192.168.0.1:3306/test。
            数据库名(Database Name):要连接的数据库的名称。
            对于 MySQL,数据库名可以在主机和端口后面直接指定,例如:jdbc:mysql://localhost:3306/test;
            对于 Oracle,需要在协议和主机端口之后通过“/”分隔指定,例如:jdbc:oracle:thin:@localhost:1521:test;
            对于 SQL Server,需要在主机端口之后通过“;”分隔指定,例如:jdbc:sqlserver://localhost:1433;databaseName=test。
            */
            String user="root";
            String password="123456";
            Connection conn=DriverManager.getConnection(url,user,password);
            System.out.println("数据库连接对象= "+conn);
            //数据库连接对象= com.mysql.cj.jdbc.ConnectionImpl@6646153

        }catch (SQLException e){
            e.printStackTrace();
        }

        //3.获取数据库操作对象

    }
}

图示:

 

第三步

获取数据库操作对象

   //3.获取数据库操作对象(statement专门执行SQL语句)
            stmt = conn.createStatement();

第四步、第五步、第六步

执行SQL语句
处理查询结果集
释放资源
package com.jdbc;

import java.sql.*;

@SuppressWarnings("all")   // 注解警告信息
public class jdbctest {
    public static void main(String[] args) throws Exception {
        Statement stmt = null;
        Connection conn = null;
        try {
            //1.注册驱动
            Driver driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(driver);

            //2.获取连接
            String url = "jdbc:mysql:/itcast";
            /*
            JDBC URL 由三部分组成:
            协议(Protocol):JDBC 驱动程序的协议。
            对于 MySQL,协议是 jdbc:mysql://;
            对于 Oracle,协议是 jdbc:oracle:thin://;
            对于 SQL Server,协议是 jdbc:sqlserver://。
            主机和端口(Host and Port):数据库服务器的地址和端口号。
            对于本地数据库,主机和端口可以省略;
            localhost和127.0.0.1都是本机ip
            对于远程数据库,需要指定主机和端口,例如:jdbc:mysql://192.168.0.1:3306/test。
            数据库名(Database Name):要连接的数据库的名称。
            对于 MySQL,数据库名可以在主机和端口后面直接指定,例如:jdbc:mysql://localhost:3306/test;
            对于 Oracle,需要在协议和主机端口之后通过“/”分隔指定,例如:jdbc:oracle:thin:@localhost:1521:test;
            对于 SQL Server,需要在主机端口之后通过“;”分隔指定,例如:jdbc:sqlserver://localhost:1433;databaseName=test。
            */
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("数据库连接对象= " + conn);
            //数据库连接对象= com.mysql.cj.jdbc.ConnectionImpl@6646153

            //3.获取数据库操作对象(statement专门执行SQL语句)
            stmt = conn.createStatement();
            //4.执行SQL语句
            String sql = "insert into tb_user(id,name,age,gender) values(1,'大大帅',20,1)";
            //专门执行DML语句(insert delete update)
            int count = stmt.executeUpdate(sql);
            System.out.println(count == 1 ? "保存成功" : "保存失败");

            //5.处理查询结果集

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //6.释放资源
            //为了保证资源一定释放,在finally语句中关闭资源
            //并且要遵循从小到大依次关闭
            //分别对其try...catch
            try{
             if (stmt != null) {
                stmt.close();
               }
             }catch(SQLException e){
               e.printStackTrace();
            }
            try{
                if (conn != null) {
                    conn.close();
                }
            }catch(SQLException e){
                e.printStackTrace();
            }
        }


    }
}

图示:

 

至此,数据库插入操作完成(*^▽^*) 

三、JDBC各个部分功能详解

1.DriverManager
DriverManager:驱动管理对象

注册驱动(告诉程序该使用哪一个数据库驱动)

注册给定的驱动程序:static void registerDriver(Driver driver) (DriverManager的方法)
我们在刚刚的入门案例中并没有注册驱动,也成功了,咋回事呢
这是因为我们使用了Class.forName:Class.forName(“com.mysql.jdbc.Driver”)
我们通过了给forName指定了是mysql的驱动
它会帮助我们注册驱动,如下:
在com.mysql.jdbc.Driver类中存在静态代码块(通过查看源码发现)
 

Driver driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(driver);
//2.获取连接
            String url = "jdbc:mysql:/itcast";
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, user, password);

注意:我们不需要通过DriverManager调用静态方法registerDriver(),因为只要Driver类被使用,则会执行其静态代码块完成注册驱动

mysql5之后可以省略注册驱动的步骤。在jar包中,存在一个java.sql.Driver配置文件,文件中指定了com.mysql.jdbc.Driver

所以后边我们其实可以省略注册驱动的步骤(可以注释掉上个案例的注册驱动的步骤,也可以查询到数据)

获取数据库连接(获取到数据库的连接并返回连接对象)

static Connection getConnection(String url, String user, String password);
返回值:Connection数据库连接对象
参数
url:指定连接的路径。语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
user:用户名
password:密码

2.Connection
Connection:数据库连接对象
获取执行者对象
获取普通执行者对象:Statement createStatement();
获取预编译执行者对象:PreparedStatement prepareStatement(String sql);
管理事务
开启事务:setAutoCommit(boolean autoCommit); 参数为false,则开启事务。
提交事务:commit();
回滚事务:rollback();
释放资源
立即将数据库连接对象释放:void close();

Connection conn = null;


 if (conn != null) {
                    conn.close();
                }

3.Statement
Statement:执行sql语句的对象
执行DML语句:int executeUpdate(String sql);
返回值int:返回影响的行数。
参数sql:可以执行insert、update、delete语句。
执行DQL语句:ResultSet executeQuery(String sql);
返回值ResultSet:封装查询的结果。
参数sql:可以执行select语句。
释放资源
立即将执行者对象释放:void close();

            stmt = conn.createStatement();
//4.执行SQL语句
            String sql = "insert into tb_user(id,name,age,gender) values(1,'大大帅',20,1)";
            //专门执行DML语句(insert delete update)
            int count = stmt.executeUpdate(sql);


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值