Mybatis Vs jdbc 的对比

Mybatis是一款开源的数据持久层框架,其内部封装了通过JDBC访问数据库的操作。它极大地简化了数据库操作,支持普通的SQL查询、存储过程和高级映射。

Mybatis具有以下主要特点:
  1. 定制化SQL:Mybatis允许用户直接编写SQL语句,这提供了极大的灵活性和控制能力。
  2. 存储过程和高级映射:除了基本的SQL查询,Mybatis也支持存储过程和高级映射。
  3. 半自动化ORM框架:Mybatis是一个半ORM(对象关系映射)框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。
  4. 简化配置和映射:Mybatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO (Plain Old Java Object,普通老式Java对象)为数据库中的记录。

JDBC,全称Java Database Connectivity,是一套基于Java语言的关系数据库编程接口规范。它由Sun公司于1996年推出,用于为Java程序提供访问数据库的标准接口。

JDBC的主要作用是作为Java程序与数据库之间的桥梁,允许Java程序通过发送SQL语句来操作远端数据库。基于JDBC,开发人员可以在Java应用中执行SQL语句,完成对数据库的查询、更新等操作。

使用jdbc操作数据库: 
    @Test
    public void testJdbc() throws ClassNotFoundException, SQLException {
//        1.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //2. 获取连接对象
        String username = "root";
        String password = "chen";
        String url = "jdbc:mysql://localhost:3306/mybatis";
        Connection connection = DriverManager.getConnection(url, username, password);
        //3.获取执行SQL的对象Statement,执行SQL,返回结果
        String sql = "select * from user";
        Statement Statement = connection.createStatement();
        ResultSet resultSet = Statement.executeQuery(sql);

        //4.封装结果数据
        List<User> userList = new ArrayList<>();
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int age = resultSet.getInt("age");
            int gender = resultSet.getInt("gender");
            String phone = resultSet.getString("phone");
            System.out.println(id + "\t" + name + "\t" + age + "\t" + (gender == 1 ? "男":"女") + "\t" + phone);
        }
    }
使用Mybatis操作数据库:

 配置文件:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/mybatis

spring.datasource.username=root

spring.datasource.password=chen

    @Test
    public void testListUser() {
        List<User> userList = userMapper.list();
        userList.stream().forEach(user -> {
            System.out.println(user);
        });
    }

Mybatis和JDBC都是用于操作数据库的技术,但它们在实现和使用方式上存在一些显著的区别。

以下是它们之间的主要对比:
  1. 层次关系:JDBC是较底层的持久层操作方式,而MyBatis则是在JDBC的基础上进行了封装,使其更加方便程序员对持久层的操作。

  2. 代码量:与JDBC相比,使用MyBatis可以减少50%以上的代码量,因为它消除了JDBC中大量冗余的代码,并且不需要手动开关连接。

  3. 数据库兼容性:由于MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库,MyBatis也都支持。

  4. 缓存机制:MyBatis提供了一级和二级缓存,这有助于提高程序的性能。

  5. 动态SQL:MyBatis使用动态SQL语句,这使得SQL维护变得更加简单,特别是当使用XML进行配置时。

  6. 学习曲线:对于初学者来说,MyBatis可能比JDBC更容易上手,因为它提供了更多的功能并且相对简化了数据库操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值