首页 > 其他分享 >从 JDBC 到 Mybatis

从 JDBC 到 Mybatis

时间:2023-07-04 11:11:31浏览次数:33  
标签:语句 JDBC 数据库 SQL Mybatis con

JDBC 操作数据库流程

1、加载驱动
2、获取数据库连接
3、获取执行者对象
4、执行sql语句并返回结果
5、处理结果


  • 代码
public class JDBCTest {


    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");//MySQL5以后可直接省略
        //获取数据库连接
        Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","zcq200427");
        //获取执行者对象
        Statement stat=con.createStatement();
        //执行sql语句并返回结果
        String sql="select * from user";
        ResultSet re=stat.executeQuery(sql);
        //处理结果
        while (re.next()){
            System.out.println(re.getLong("id")+"\t"+re.getString("name")+"\t" );
        }
        //释放资源
        con.close();
    }
}
  • 数据库驱动
    数据库驱动是应用程序和数据库存储之间的一种接口,数据库厂商为了某一种开发语言环境(比如Java,C)能够实现数据库调用而开发的类似翻译员功能的程序,将复杂的数据库操作与通信抽象成为了当前开发语言的访问接口。
  • Connection 用于与数据库简历连接,Mysql 内部有对应的连接池以达到连接资源的复用
  • 通过 Statement 来简化数据库操作的流程
  • 通过 ResultSet 来获取 SQL 执行的结果集
  • 关闭连接

JDBC 的弊端

        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");//MySQL5以后可直接省略
        //获取数据库连接
        Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","zcq200427");
        //获取执行者对象
        Statement stat=con.createStatement();
  • 注意

1、前面三个步骤可以统一封装成 DBUtils (getConnection() , closeConnection() , getStatement() 等)
2、数据库连接在使用时就创建,不使用时就关闭,造成了极大的数据库资源浪费
3、SQL 语句在 JAVA 代码中不方便我们进行统一的管理
4、手动设置 PreparedStatement 造成硬编码
5、从 ResultSet 获取结果集存在硬编码

Mybatis

Mybatis 介绍

1、它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低
什么是ORM?
2、Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。Student类就对应student表,一个Student对象就对应student表中的一行数据
3、为什么mybatis是半自动的ORM框架?
用mybatis进行开发,需要手动编写SQL语句。而全自动的ORM框架,如hibernate,则不需要编写SQL语句。用hibernate开发,只需要定义好ORM映射关系,就可以直接进行CRUD操作了。由于mybatis需要手写SQL语句,所以它有较高的灵活性,可以根据需要,自由地对SQL进行定制,也因为要手写SQL,当要切换数据库时,SQL语句可能就要重写,因为不同的数据库有不同的方言(Dialect),所以mybatis的数据库无关性低。虽然mybatis需要手写SQL,但相比JDBC,它提供了输入映射和输出映射,可以很方便地进行SQL参数设置,以及结果集封装。并且还提供了关联查询和动态SQL等功能,极大地提升了开发的效率。并且它的学习成本也比hibernate低很多


Mybatis 架构设计

标签:语句,JDBC,数据库,SQL,Mybatis,con
From: https://www.cnblogs.com/ayizzz/p/17525214.html

相关文章

  • 03_MyBatis02
    1.深入Mybatis映射配置文件1.1.CRUD语句定义查询语句UserMapper.java接口中publicList<User>queryAllUser();publicUserqueryUserById(Integerid);UserMapper.xml配置文件中<selectid="queryAllUser"resultType="uSer"> select*fromuser;</......
  • SpringBoot教学补充资料2-MyBatis简单查询项目
    SQL:CREATETABLE`tb_user`(`id`int(11)NOTNULLAUTO_INCREMENT,`username`varchar(20)DEFAULTNULL,`password`varchar(20)DEFAULTNULL,`gender`char(1)DEFAULTNULL,`addr`varchar(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBA......
  • MyBatisPlus(MP) 使用总结
    mybatisplus(MP)使用总结mybatisplus(MP)是mybatis框架的增强工具,提高开发效率;https://mp.baomidou.com/springboot+mybatis=mapper接口+配置文件1.标准开发@MapperpublicinterfaceUserDaoextendsBaseMapper{}2.分页查询3.条件查询4.条件查询null判断5.查询......
  • ShardingJDBC 01_概念及主要功能
    1ShardingJDBC是什么Sharding-JDBC是ApacheShardingSphere生态圈中一款开源的分布式数据库第三方组件。ShardingSphere由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar3款相互独立的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,适用于Java......
  • 在spring 的jdbc sql中使用in 语句
    1.<propertyname="sqlSelectPricesForHoldAssetByDate"><value>selectA.ASSETPRICEID,A.ASSETID,A.SOURCE,A.ASOFDATE,A.CURRENCY,A.BID,A.ASKfromassetpriceAINNERJOINloanfacilitylfONA.assetid=lf.assetidwh......
  • 使用Spring的NamedParameterJdbcTemplate完成DAO操作
    NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干,NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。publicObjectqueryForObject(Stringsql,MapparamMap,RowMapperrowMapper)......
  • 02_MyBatis01
    1.JDBC操作的缺陷JDBC查询数据代码JDBC添加数据代码JDBC操作的问题数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。查询操作时,需要手动将结果集中的数据手动封......
  • Mybatis-------PageHelper
    PageHelper用来处理分页首先添加依赖:<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.4</version></dependency&......
  • IDEA MyBatis Log 插件,打印SQL语句
    打开Settings->plugins搜索插件MyBatisLog点击安装,完成后重启IDEA即可。点击Tools,选择MyBatisLogPlugin,会在下方打开一个窗口,这个窗口会输出mapper执行的SQL语句。......
  • 5、apache-kylin-3.1.3-bin-hadoop3 segment管理及JDBC操作
    apache-kylin-3.1.3-bin-hadoop3系列文章1、apache-kylin-3.1.3-bin-hadoop3介绍及部署、验证详解2、apache-kylin-3.1.3-bin-hadoop3集群部署3、apache-kylin-3.1.3-bin-hadoop3基本操作(创建model和cube、数据查詢)4、apache-kylin-3.1.3-bin-hadoop3增量构建、全量构建详细示例......