jdbc与mybatis的区别

上传人:文*** 文档编号:450904 上传时间:2018-10-28 格式:DOC 页数:7 大小:128KB
返回 下载 相关 举报
jdbc与mybatis的区别_第1页
第1页 / 共7页
jdbc与mybatis的区别_第2页
第2页 / 共7页
jdbc与mybatis的区别_第3页
第3页 / 共7页
点击查看更多>>
资源描述
.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 对象)映射成数据库中的记录。jdbc.JDBC( 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=“org.apache.commons.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.能够对结果集进行映射我们在使用 JDBC 进行查询时,返回一个结果集 ResultSet,我们要从结果集中取出结果封装为需要的类型在 Mybatis 中我们可以设置将结果直接映射为自己需要的类型,比如:JavaBean 对象、一个 Map、一个 List 等等。像上个例子中就是将结果映射为 int 类型。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!