纪念JDBC

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

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

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

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

为什么?

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

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


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

什么是 JDBC

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

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

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

image.png

我们也就应该知道,你光有接口是操作不了数据库的,所以你要用 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反射,看完就会用

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java异世界7

爹!

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

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

打赏作者

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

抵扣说明:

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

余额充值