我竟然把JDBC忘了,一篇适合新手和老手的JDBC完整介绍(详细的不要不要的)

本文详细介绍了JDBC的概念、新手操作步骤、使用PreparedStatement解决SQL问题以及数据库连接池的高级应用,特别提到了德鲁伊数据库连接池的配置和优势。通过实例讲解了SQL拼接、SQL注入和二进制文件处理,帮助读者从基础到高级全面掌握JDBC。
摘要由CSDN通过智能技术生成

宁愿辛苦一阵子,不要辛苦一辈子
在这里插入图片描述

JDBC

什么是JDBC?

Java Database Connectivity:java连接数据库

JDBC是代表一组API,一个独立于特定数据库管理系统,通用的SQL数据库存取和操作的公共接口(一组API).

SUN公司为了使java代码可以跨数据库,既是指数据库换了,我们JDBC的代码不改变(或少改变)设计了一组公共的接口(标准),规定了所有操作数据库的代码,应使用哪些类型,哪些方法

这些操作数据库的具体代码由数据库厂商来实现,这些实现类,我们称之为数据库驱动,这就意味着,你要连接和操作数据库,就必须加载数据库的驱动程序

那么java代码就可以通过接口+驱动+标准的SQL语句实现java代码和各种数据库的连接和操作.

JDBC新手(实现最普通功能的JDBC)

操作步骤详解:

1.加载数据库驱动和注册驱动

有两种方式:

(1)是直接在源码库中引入,相当于绝对路径,但是是引入型的,将项目打包时,并不会打包驱动的jar文件(占得内存小,但是打包时,会丢失驱动)

(2)创建文件,导入型,在项目中创建目录并导入,这是相当于把jar驱动复制在了项目中,打包时会携带(不会丢失驱动,但是占的内存比较大)

注册驱动:

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

2.获取连接

url = "jdbc:mysql://localhost:3306/test";

​ 主协议 协议 主机名 端口号 数据库名

user = "数据库账号";

password = "数据库密码";

Connection ct =  DriverManger.getConnection(url,user,password);

3.执行sql语句:

sql = "insert into dept values(6,'张三',15)";

Statement st = ct.createStatement();

int len  = st.executeUpdate(sql);
System.out.println(len>0?"添加成功":"添加失败");

如上是添加数据,凡是添加,删除,修改都是修改操作,都调用executeUpdate()方法,方法的参数是sql语句,返回值是len(int类型),凡是select语句都调用executeQuery()方法,遍历查询,返回值是一个set,要用ResultSet接受

4.关闭连接

st.close();
ct.close();

分开代码,各位客官可能不容易记忆和查看

整体代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
 *
 * 1.注册驱动,加载驱动类到内存中,即内存中有驱动类对象
 * 2.获取连接,即登录
 * 3.执行sql
 *      (1)编写sql语句
 *      (2)创建Statement对象
 *      (3)用Statement来执行sql操作,并接受结果
 *  4.关闭连接
 *
 * API:
 * java.sql.Connection;接口,代表连接
 * java.sql.DriverManager, 代表类,驱动管理类
 * java.sql.Statement;
 *
 *协议,主机地址,端口号,路径(查询字串)
 * 用java添加一个人到test1库中dept(id,name,money)表中
 */
public class dome1 {
   

    //先导入驱动数据库驱动
    
    public static void main(String[] args) throws Exception {
   
        
        //1.注册驱动,加载驱动类到内存中,即内存中有驱动类对象
        //Class.forName("org.git.mm.mysql.Driver");//旧版驱动注册方式
        Class.forName("com.mysql.jdbc.Driver");//新版驱动注册方式
        
        //2.获取连接
        String url = "jdbc:mysql://localhost:3306/test1";
        String user = "root";
        String password = "123456";
        //驱动已经加载了,现在用驱动管理类DriverManager
		Connection  connection = DriverManager.getConnection(url,user,password);
        
        //3.执行sql语句
        	//3.1编写sql语句
        String sql = "insert into dept values(6,'雷',15)";
        //要把sql语句发给服务器端执行,并接受他返回的结果
          	//3.2创建Statement对象
        Statement statement = connection.createStatement();
        	//3.3用Statement来执行sql操作,并接受结果
        //凡是insert,delete,update语句都是更新数据库
        //凡是select都是查询query
        int len =statement.executeUpdate(sql);//返回一个整数,表示多少行收到影响

        System.out.println(len>0?"添加成功":"添加失败");


        //4.关闭连接
        statement.close();
        connection.close();

    }


}

JDBC强者(对普通JDBC优化)

强者就是能一次干到多个敌人(sql语句),先讲个开胃菜,和优化无关,但是我没放到基础里面,怕让新手感到恐惧(其实我多想了,大家都是很强的)

关键的方法"摘"出来(有些方法,我感觉必须得对数据库事务有些了解,才能食用)

  • commit()提交事务
  • rollback()回滚事务
  • setAutoCommit() 参数为false时为手动提交模式,为true时当然是自动提交sql代码模式
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

炒冷饭

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值