初入MyBatis,简介

一.MyBatic的作用

  O:Object  ,Java POJO 简单普通的java对象,由有一些private的参数作为对象的属性,然后针对每一个参数定义get和set方法      

 1 public class Category {
 2     private int id;
 3     private int catNum;
 4     private String catName;
 5     private String catStatus;
 6 
 7     public int getId() {
 8         return id;
 9     }
10 
11 
12     public void setId(int id) {
13         this.id = id;
14     }
15 
16     public int getCatNum() {
17         return catNum;
18     }
19 
20     public void setCatNum(int catNum) {
21         this.catNum = catNum;
22     }
23 
24     public String getCatname() {
25         return catName;
26     }
27 
28     public void setCatname(String catname) {
29         this.catName = catname;
30     }
31 
32     public String getCatStatus() {
33         return catStatus;
34     }
35 
36     public void setCatStatus(String catStatus) {
37         this.catStatus = catStatus;
38     }
39 }

       Java POJO与Java Bean比较:       

        1.POJO其实是比javabean更纯净的简单类或接口。POJO严格地遵守简单对象的概念,而一些JavaBean中往往会封装一些简单逻辑。

        2.POJO主要用于数据的临时传递,它只能装载数据, 作为数据存储的载体,而不具有业务逻辑处理的能力。

        3.Javabean虽然数据的获取与POJO一样,但是javabean当中可以有其它的方法。

  R:Relationship,在关系数据库中,一条数据由多个列组成

  抛出问题:关系数据库中,无法直接存储一个完整的POJO,造成O/R不匹配的问题,此时需要将POJO中的属性映射到关系数据库中

  解决方案: 

      MyBatis的持久化解决方案是将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以以面向对象的方式来进行持久化层操作.底层数据库                               连接的获取,数据访问的实现,事务控制等都无须用户关心,从而将应用层从底层的JDBC/JTA API抽取出来.通过配置文件管理JDBC连接,让MyBatis解决持久化的实现.

  MyBatic优点

    MyBatis是对JDBC的封装

    1. 优化获取和释放

    一般在访问数据库时都是通过数据库连接池来操作数据库,数据库连接池有好几种,比如C3P0、DBCP,也可能采用容器本身的JNDI数据库连接池。可以通过DataSource进行隔离解耦,统一从DataSource里面获取数据库连接,DataSource具体由DBCP实现还是由容器的JNDI实现都可以,所以将DataSource的具体实现通过让用户配置来应对变化。

    2.SQL统一管理,对数据库进行存取操作

    使用JDBC对数据库进行操作时,SQL查询语句分布在各个Java类中,这样可读性差,不利于维护,当修改Java类中的SQL语句时要重新进行编译。Mybatis可以把SQL语句放在配置文件中统一进行管理,以后修改配置文件,也不需要重新就行编译部署。

    3.生成动态SQL语句

    在查询中可能需要根据一些属性进行组合查询,比如我们进行商品查询,我们可以根据商品名称进行查询,也可以根据发货地进行查询,或者两者组合查询。如果使用JDBC进行查询,这样就需要写多条SQL语句。

    4.能够对结果集进行映射

    在使用JDBC进行查询时,返回一个结果集ResultSet,我们要从结果集中取出结果封装为需要的类型在Mybatis中可以设置将结果直接映射为需要的类型,比如:JavaBean对象、一个Map、一个List等等。

    

posted @ 2020-06-14 15:50  木子李和三点水  阅读(164)  评论(0编辑  收藏  举报