【JavaWeb】JDBC学习笔记

本文详细介绍了Java数据库连接(JDBC)的基本概念,包括JDBC API的主要功能和使用步骤。涵盖了DriverManager、Connection、Statement等核心类的作用及如何通过它们进行数据库的增删改查操作。同时,对比了Statement与PreparedStatement在实际应用中的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.相关概念
JDBC: Java DataBase Connectivity 可以为多种关系型数据库提供统一的方式
JDBC API:提供各种操作访问接口
各种数据库驱动:相应的数据库厂商提供的(第三方公司提供)

2.jdbc访问数据库的具体步骤
a.导入驱动,加载具体的驱动类
b.与数据库建立连接
c.发送sql,执行
d.处理结果集(查询)

3.JDBC API 主要功能:
三件事,具体是通过以下类/接口实现:
DriverManager:管理不同的数据库驱动
Connection:连接----------------通过DriverManager产生
Statement、PreparedStatment:增删改查---------通过Connection产生
CallableStatment:调用数据库的存储过程、存储函数---------------通过Connection产生
Result:返回结果--------------通过各类Statement产生
DriverManager→Connection→Statement
Connection:
Connection产生操作数据库的对象:
Connection产生Statement对象 :createStatment()
Connection产生PreparedStatment对象 :prepareStatment()
Connection产生CallableStatment对象 :prepareCall()

Statement:
Statement操作数据库:
增删改:executeUpdate():
查询:executeQuery():

PreparedStatment操作数据库:
增删改:executeUpdate():
查询:executeQuery():
赋值操作:setXXX();

ResultSet
ResultSet:保存结果集 select*from xxx
.next():光标下移 判断是否有下一条数据:true/false
.previous():光标上移 判断是否有上一条数据:true/false
.getXXX(字段名|位置);获取具体的字段值

数据库驱动
驱动jar 具体驱动类 连接字符串
Mysql mysql-connector-java.x.jarcom.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test
SqlServer sqljdbc-x.jar
Oracle ojdbc-x.jar

package com.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class mysql {
    private static final String URL="jdbc:mysql://localhost:3306/test"; //连接字符串
    private static final String USERNAME="root"; //数据库用户名
    private static final String USERPASSWORD="root"; //数据库连接所用密码

   public static void  update() {//增删改
       Statement stmt=null;
       Connection connection=null;
       try {
           //a.导入驱动  ,加载具体的驱动类
           Class.forName("com.mysql.jdbc.Driver");//加载具体的驱动类

 		 //b.与数据库建立连接
            connection = DriverManager.getConnection(URL, USERNAME, USERPASSWORD);

           // c.发送sql,执行(增删改,查)
              stmt = connection.createStatement();
           //String sql = "INSERT INTO student VALUES (987,'陈华凯',234,'wdwd')";
           //String sql = "update student set sname='魔王' where  sno = 987 ";
           String sql = "delete  from student where  sno= 987";

           //执行sql
           int count = stmt.executeUpdate(sql);//返回值表示 增删改了几条数据
           if (count > 0) {
               System.out.print("操作成功");
           }
       }catch (ClassNotFoundException e){
           e.printStackTrace();
       }catch (SQLException e){
            e.printStackTrace();
       }catch (Exception e){
            e.printStackTrace();
       } finally {
            try {
                if (stmt!=null)        stmt.close();//对象.方法()
                if (connection!=null)  connection.close();
            } catch (SQLException e){
                e.printStackTrace();
            }catch (Exception e){
                e.printStackTrace();
            }

       }
   }

    public static void main(String[] args) {
       update();
    }

}

PreparedStatment 与Statment在使用时的区别:
1.Statment:
sql
executeUpdate(sql)

PreparedStatment:
sql(可能存在占位符?)
在创建PreparedStatment对象时将sql预编译connection.prepareStatement(sql);
setXxx()替换占位符?
executeUpdate()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值