首页 > 其他分享 >纪念JDBC

纪念JDBC

时间:2024-01-30 15:36:25浏览次数:29  
标签:JDBC String 纪念 数据库 SQL Statement sql

技术总是在不断更新变化的,尤其是在IT编程领域。

有时候我们理所当然的用着现成的框架,以至于用的太过于顺手,更要时不时的骂一句:

什么垃圾框架?我家狗都不会用!

如果那些被拍死在沙滩的“前浪”听到这话,怕是要顶开棺材板给你点个赞。

为什么?

因为太安逸了,安逸到一出生就开着拖拉机耕地,还嫌拖拉机费油。

今天来看看不费油的,费人。


现在MyBatis框架用的比较熟练了,但是有时候不明白原理,也不知道MyBatis具体做了什么工作,于是就把JDBC翻出来看一下,忆苦思甜。

什么是 JDBC

我们是学 java 的,我们要操作数据库,我们怎么办?

聪明的 Sun 公司想了个办法,我们定义一套 java 接口,一套标准的操作数据库的 API,你们各家数据库公司都按我的来,不按我来的都给我滚。

于是就有了 JDBC,JDBC 就是这套接口的名字,全称叫 Java DataBase Connectivity(Java 数据库连接)。

我们也就应该知道,你光有接口是操作不了数据库的,所以你要用 MySQL 数据库,就得装上 MySQL 驱动。

用谁家的数据库,就装谁家的数据库驱动。

比如:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.28</version>
</dependency>

JDBC 怎么用

有了接口实现,也就是驱动,那我们就可以用了呀?干嘛?操作数据库!


public class JDBCDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        // 2.获取连接 Connection可管理事务
        String url = "jdbc:mysql://127.0.0.1:3306/test";
        String username = "root";
        String password = "root";
        Connection conn = DriverManager.getConnection(url, username, password);
        // 3.定义sql
        String sql = "update person set name = '张三' where id = 1";
        // 4.获取执行sql的对象Statement
        // 普通执行SQL对象 Statement createStatement() throws SQLException;
        // 预编译SQL的执行SQL对象:防止SQL注入 
        // PreparedStatement prepareStatement(String sql)throws SQLException;
        Statement stmt = conn.createStatement();
        // 5.执行sql Statement有各种执行sql的方法,可查看源码,注意返回的ResultSet
        int count = stmt.executeUpdate(sql);
        // 6.处理结果
        System.out.println(count);
        // 7.释放资源
        stmt.close();
        conn.close();
    }
}

从以上 JDBC 的实际开发中可以看到2个明显的缺点:

1.硬编码

2.操作繁琐

那么对此 MyBatis 做了什么?

1.硬编码配置到配置文件

2.操作繁琐的地方自动完成

除此以外,MyBatis 还做了大量微小的工作,这里不再列举。


谨以此文纪念JDBC,希望你永远不要醒来。


往期推荐:

● 师爷,翻译翻译什么叫AOP

终于搞懂动态代理了!

● 学会@ConfigurationProperties月薪过三千

● 0.o?让我看看怎么个事儿之SpringBoot自动配置

● 不是银趴~是@Import!

● Java反射,看完就会用

标签:JDBC,String,纪念,数据库,SQL,Statement,sql
From: https://www.cnblogs.com/cosimo/p/17997222

相关文章

  • 使用debezium-connector-jdbc组件完成数据同步(io.debezium.connector.jdbc.JdbcSinkCo
    1.情景展示在网络上几乎找不到关于debezium-connector-jdbc插件的博客文章,基本上都在吹io.confluent.connect.jdbc.JdbcSinkConnector,由于一开始对数据同步插件并不了解,导致自己走了不少弯路。生产数据组件:debezium-connector-mysql、debezium-connector-oracle等数据库组件,通......
  • AngusTester 和 JMeter JDBC 测试结果比较
    本次测试主要目的是对比AngusTester和JMeter对JDBC协议性能表现。测试环境以下测试AngusTester和JMeter使用相同环境。注意:本次测试是在同一台PC机上进行,如果想测试特定配置下数据库的准确性能,需要将测试机和MySQL服务器分开部署,或者使用更高配置的测试服务器。软......
  • Spring的JdbcTemplate使用教程
    什么是JdbcTemplate?Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作。准备工作引入jdbcTemplate的相关依赖:案例实操创建jdbc.properties文件,配置数据库信息jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/dbtest1?serv......
  • 从SQL到Java数据类型映射的JDBC规范
    SQL类型Java类型CHARjava.lang.StringVARCHARjava.lang.StringLONGVARCHARjava.lang.StringNUMERICjava.math.BigDecimalDECIMALjava.math.BigDecimalBITbooleanTINYINTbyteSMALLINTshortINTEGERint......
  • elasticsearch学习笔记2 - logstash jdbc 同步MYSQL到ES
    logstash是一个管道工具input输入output输出filter过滤条件咋们初级先了解到这些再说比较优秀的教程文档作为基础知识需要了解:https://blog.csdn.net/qq_19283249/article/details/130839158?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170564710516800215......
  • ShardingSphere-JDBC学习
    springBoot 引入maven<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1<......
  • jmeter使用jdbc连接SQL server,执行SQL报错处理
    前置环境参数:jdk-8u391-windows-x64,驱动:sqljdbc4.jar备注:这是解决后的截图,将就用问题一:使用jmeter5.5,使用jdbc连接SQLserver,执行SQL报错处理,如下图 报错信息:java.lang.UnsupportedClassVersionError:com/microsoft/sqlserver/jdbc/SQLServerDriverhasbeencompiledby......
  • spring boot 3.2.1 dremio jdbc jprofiler 集成
    jprofiler可以直接与idea集成,对于分析一些实际需要debug但是不好复现的问题还是比较方便的,以下是一个简单的与dremio集成的,springboot使用了3.2(jdk需要17)同时也会包含一些启动说明安装idea插件直接plugins的市场中搜索安装就可以了,之后就是配置了idea启动配置因......
  • dremio jdbc 访问最好使用链接池工具
    昨天在碰到一个dremiojdbc比较奇怪的问题,按照了标准的jdbc操作(建立链接,创建Statement,处理数据,关闭Statement,关闭连接)当进行多次执行(多次建立连接操作)发现dremio有一个操作异常,造成数据表创建有问题(事务不完整)参考代码 privatestaticvoidv3(){tr......
  • Spring-jdbc
    1引入相关依赖<dependencies><!--springjdbcSpring持久化层支持jar包--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><versi......