JDBC与MyBatis(一)

1、JDBC是什么

JDBC(Java Database Connectivity)是Java语言中用于连接和操作关系型数据库的API(应用程序编程接口)。通过JDBC,Java应用程序可以与各种数据库进行通信,通过执行SQL语句操作数据库。如执行查询、更新、插入和删除操作,以及处理结果集和执行事务等。

1)使用了面向接口编程的思想

  • JDBC定义了一套操作所有关系型数据库的规则(即接口),各个数据库厂商实现这套接口、提供数据库驱动jar包。
  • Java程序员使用JDBC的接口编程,真正执行的代码是驱动jar包中的实现类。
  • 各数据库厂商使用相同的接口,因此,Java代码不需要针对不同数据库分别开发,操作哪个关系型数据库,就导入这个数据库的驱动包即可。

2)JDBC有哪些API

Driver接口:这是所有JDBC驱动程序必须实现的接口,专门提供给数据库厂商使用。在编写JDBC程序时,必须要把所使用的数据库驱动程序或类库加载到项目的classpath中。

DriverManager接口:加载JDBC驱动程序,创建与数据库的连接。

Connection接口:处理与特定数据库的连接,Connection对象是表示数据库连接的对象,只有获得该连接对象,才能访问并操作数据库。

Statement接口:执行静态的SQL语句,并返回一个结果对象。

PreparedStatement接口:封装了JDBC执行SQL语句的方法,可以完成Java程序执行SQL语句的操作。

ResultSet接口:保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。

CallableStatement接口:执行SQL存储过程。

2、怎样使用JDBC

步骤及举例:

public class JDBCDemo {

    public static void main(String[] args) throws Exception {
        //1. 注册驱动
        Class.forName("com.mysql.jdbc.Driver"); //MySQL5之后可以省略,
        // 会自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类。
        //2. 获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/db1";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, username, password);
        //3. 定义sql
        String sql = "update account set money = 200 where id = 1";
        //4. 获取执行sql的对象 Statement
        Statement stmt = conn.createStatement(); 
                            //使用PreparedStatement可以防止sql注入
        //5. 执行sql
        int count = stmt.executeUpdate(sql);//受影响的行数
        //6. 处理结果
        System.out.println(count);
        //7. 释放资源
        stmt.close();
        conn.close();
    }
}

3、加载驱动程序时使用了反射

Class.forName()方法使用Java的反射机制动态地加载类:

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

这行代码会动态地加载 com.mysql.cj.jdbc.Driver 类,并初始化它。

反射允许程序在运行时动态地加载、查询和操作类、接口、字段和方法的信息,而不需要在编译时知道这些类的具体细节。

此处,反射被用来加载和初始化数据库驱动程序类,这种动态加载机制使得JDBC驱动可以在不修改和重新编译使用JDBC的Java代码的情况下进行更换,使得数据库和应用程序之间的耦合度降低。

4、MyBatis是实现了JDBC原理的高级框架

MyBatis 底层封装了JDBC,使得在开发时只需要关注SQL语句本身,不需要花费精力去处理如加载驱动、创建连接、创建statement等繁杂的过程。

此外,MyBatis可以使用简单的 XML 文件或注解方式来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

MyBatis还通过XML文件或注解的方式将要执行的各种statement进行配置,并通过java对象和statement中SQL的动态参数进行映射生成最终执行的SQL语句,最后由MyBatis框架执行SQL并将结果映射为Java对象并返回。

你可能感兴趣的:(mybatis,数据库,java,mvc,mysql,oracle)