Java程序都是通过JDBC(Java Data Base Connectivity)来访问数据库的。JDBC定义了一系列的接口规范,具体的实现是由各数据库厂商去实现,是一种典型的桥接模式。
JDBC的工作量大:需要先注册驱动和数据库信息、操作Connection、通过statement对象执行SQL,将结果返回给resultSet,然后从resultSet中读取数据并转换为pojo对象,最后需要关闭数据库相关资源。
而且还需要自己对JDBC过程的异常进行捕捉和处理。
因为JDBC实在不好用,于是出现了ORM(对象关系映射Object relational Mapping)对Jdbc进行封装。
MyBatis对JDBC的封装很好,几乎可以取代Jdbc。
MyBatis使用SqlSessionFactoryBuilder来连接完成JDBC需要代码完成的数据库获取和连接,减少了代码的重复。JDBC将SQL语句写到代码里,属于硬编码,非常不易维护,MyBatis可以将SQL代码写入xml中,易于修改和维护。JDBC的resultSet需要用户自己去读取并生成对应的POJO,MyBatis的mapper会自动将执行后的结果映射到对应的Java对象中。
使用MyBatis的编码风格统一优雅、性能高,灵活性好。