mybatis总结

  以前使用数据库的时候:

//1.导入驱动Java包,右键libs  as...
        //2,注册驱动
        Class.forName("com.mysql.jdbc.Driver");
       
//3,获取数据库连接对象
  Connection    conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/db2","root","root");
       
//4,定义sql语句
        String sql="update  account  set salary=500  where  id=1";
       
//5获取执行SQL的对象,statement
        Statement stme=conn.createStatement();
       
//6.执行sql
        int count=stme.executeUpdate(sql);
       
//7,处理结果
        System.out.println(count);
       
//8,释放资源
        stme.close();
       
conn.close();

mybatis

是一个开源的,轻量级的数据持久化框架,内部封装了jdbc,简化了加载驱动,创建连接,创建statement等繁杂的过程,开发者只需要关注SQL本身的语句。

为什么要面向接口编程:方便维护和扩展

JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作。

api是别人写好的程序,比如各种类,封装在一起,你调用、使用它,提高开发效率的

数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转化为内存中数据模型的统称。,例如:文件的存储,数据的读取以及对数据表的增删改查等都是数据持久化操作。

mybatis支持定制化SQL,存储过程以及高级映射,可以在实体类和SQL语句之间建立映射关系是一种半自动化的ORM实现。

ORM:(对象关系映射)是一种数据持久化技术,在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据。

高级映射:提供映射标签,支持对象与数据库的ORM字段关系映射。

存储过程:是一个预编译的SQL语句,比如一些场景的sql比较复杂,并且需要经常使用或者多次使用的。存储过程的优点是说只需创建一次编译一次,以后在该程序中就可以多次直接调用。

定制化SQL:SQL写在xml文件中,和逻辑代码分离,降低耦合度,便于统一管理和优化,提高代码的可重用性。

映射器是 MyBatis 中最重要、最复杂的组件,它由一个接口和对应的 XML 文件(或注解)组成。它可以配置以下内容:

  • 描述映射规则。
  • 提供 SQL 语句,并可以配置 SQL 参数类型、返回类型、缓存刷新等信息。
  • 配置缓存。
  • 提供动态 SQL。

映射器(mappers)是MyBatis中最核心的组件之一,他的作用是告诉MyBatis 到哪里去找SQL语句

MyBatis 就可以把 SQL 执行的结果通过自动映射的功能映射成为一个 POJO。映射器的主要作用就是将 SQL 查询到的结果映射为一个 POJO,或者将 POJO 的数据插入到数据库中,程序员写这条SQL的目的就是想查询出来的user_id,dept_id,doc_id分别赋值给实体类中的userId,deptId,docId这就是简单的结果映射

每个 MyBatis 应用程序都以一个 SqlSessionFactory 对象的实例为核心。mappers 标签就是用来配置需要加载的 sql 映射配置文件路径的。

首先获取 SqlSessionFactoryBuilder 对象,可以根据 XML 配置文件或者 Configuration 类的实例构建该对象。

然后获取 SqlSessionFactory 对象,该对象实例可以通过 SqlSessionFactoryBuilder 对象来获取。

有了 SqlSessionFactory 对象之后,就可以进而获取 SqlSession 实例。SqlSession 对象中完全包含以数据库为背景的所有执行 SQL 操作的方法,用该实例可以直接执行已映射的 SQL 语句。

MyBatis中,首先通过SqlSessionFactory获取SqlSession,由SqlSession来执行sql语句,SqlSession中由Excutor实现sql语句执行,Excutor中聚合Transaction,Transaction聚合了Connection和DataSource,能够获取到连接,所有的语句最终交给Connection实现,Connection的具体实现就是jdbc驱动完成的了,其实底层所有工作还是jdbc驱动做的,要理解这个,必须要有jdbc编程经验,否则无法真正快速理解,MyBatis中封装的Connection只是jdbc Connection的一个引用而已。

maven由于他的约定大于配置,我们之后可能遇到我们的配置文件无法被导出或者生效的问题,解决方案:

<build>
    <
resources>
        <
resource>
            <
directory>src/main/resources</directory>
            <
includes>

                <
include>**/*.properties</include>
                <
include>**/*.xml</include>
            </
includes>

        </
resource>
        <
resource>
            <
directory>src/main/java</directory>
            <
includes>

                <
include>**/*.properties</include>
                <
include>**/*.xml</include>
            </
includes>

        </
resource>
    </
resources>
</
build>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值