jdbc与mybatis的区别_第1页
jdbc与mybatis的区别_第2页
jdbc与mybatis的区别_第3页
jdbc与mybatis的区别_第4页
jdbc与mybatis的区别_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MyBaTIsMyBaTIs 本是 apache 的一个开源项目 iBaTIs, 2010 年这个项目由 apache software foundaTIon 迁移到了 google code,并且改名为 MyBatis 。2013 年 11 月迁移到 Github。iBATIS 一词来源于 “internet”和“abatis”的组合,是一个基于 Java 的持久层框架。iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAOs)MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。jdbcJDBC( Java DataBase Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC 也是个商标名。有了 JDBC,向各种关系数据发送 SQL 语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问 Sybase 数据库专门写一个程序,为访问 Oracle 数据库又专门写一个程序,或为访问 Informix 数据库又编写另一个程序等等,程序员只需用 JDBC API写一个程序就够了,它可向相应数据库发送 SQL 调用。同时,将 Java 语言和 JDBC 结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是 Java 语言 “编写一次,处处运行” 的优势。Mybatis和 JDBC区别JDBC 是 Java 提供的一个操作数据库的 API;MyBatis 是一个支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。MyBatis 是对 JDBC 的封装。相对于 JDBC,MyBatis 有以下优点:1. 优化获取和释放我们一般在访问数据库时都是通过数据库连接池来操作数据库,数据库连接池有好几种,比如 C3P0、DBCP,也可能采用容器本身的 JNDI 数据库连接池。我们可以通过DataSource 进行隔离解耦,我们统一从 DataSource 里面获取数据库连接,DataSource具体由 DBCP 实现还是由容器的 JNDI 实现都可以,所以我们将 DataSource 的具体实现通过让用户配置来应对变化。C3P0 xml 配置:bean id=“dataSource” class=“com.mchange.v2.c3p0.ComboPooledDataSource”destroy-method=“close”property name=“driverClass” value=“ oracle.jdbc.driver.OracleDriver ”/property name=“jdbcUrl” value=“ jdbc:oracle:thin:localhost:1521:ora9i ”/property name=“user” value=“admin”/property name=“password” value=“1234”/beanDBCP xml 配置:bean id=“dataSource” class=“mons.dbcp.BasicDataSource”destroy-method=“close”property name=“driverClassName” value=“com.mysql.jdbc.Driver” /property name=“url” value=“jdbc:mysql:/localhost:3309/sampledb” /property name=“username” value=“root” /property name=“password” value=“1234” /beanDURID xml 配置:bean name=“dataSource” class=“com.alibaba.druid.pool.DruidDataSource”property name=“driverClassName”valuecom.mysql.jdbc.Driver/value/propertyproperty name=“url”value$jdbc_url_gx/value/propertyproperty name=“username”value$jdbc_username_gx/value/propertyproperty name=“password”value$jdbc_password_gx/value/property/bean2.SQL统一管理,对数据库进行存取操作我们使用 JDBC 对数据库进行操作时,SQL 查询语句分布在各个 Java 类中,这样可读性差,不利于维护,当我们修改 Java 类中的 SQL 语句时要重新进行编译。Mybatis 可以把 SQL 语句放在配置文件中统一进行管理,以后修改配置文件,也不需要重新就行编译部署。3.生成动态 SQL语句我们在查询中可能需要根据一些属性进行组合查询,比如我们进行商品查询,我们可以根据商品名称进行查询,也可以根据发货地进行查询,或者两者组合查询。如果使用JDBC 进行查询,这样就需要写多条 SQL 语句。Mybatis 可以在配置文件中通过使用if test=”/if标签进行 SQL 语句的拼接,生成动态 SQL 语句。比如下面这个例子:select id=“getCountByInfo” parameterType=“User” resultType=“int”select count(*) from userwhereif test=“nickname!=null”and nickname = #nickname/ifif test=“email!=null”and email = #email/if/where/select就是通过昵称或 email 或者二者的组合查找用户数。4.能够

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论