我对的mybatis的初步理解

我对的mybatis的初步理解

	mybatis本身是一个持久层的ORM框架,它封装了jdbc中注册驱动(Class.forName()),连接数据库(Connection)、建立操作指令(Statement)、执行查询指令(executeQuery)、获得查询结果(ResultSet)等操作数据库的过程。但仍然需要开发人员编写SQL语句。mybatis框架,只需要考虑sql语句编写,与mapper文件映射。

mybatis框架的优点:

  1. mybatis通过数据库连接池,解决了jdbc频繁创建、释放数据库连接造成的系统资源浪费问题。
  2. mybatis提供映射标签,支持对像与数据库的关系映射。
  3. mybatis提供xml标签,支持编写动态sql语句,解决了jdbc因为sql语句写在java代码中,导致sql维护麻烦的一系列问题。

mybatis的缺点:
(mybatis缺点主要是在sql语句上。)

  1. 当sql语句关联的表过多时、字段多时,sql语句的编写会显得异常麻烦。
  2. 由于mysql与oracle的sql语句不同,导致mybatis内编写的sql语句依赖于数据库,如果更换数据库,就需要改写大量的sql语句

mybatis与hibernate的比较:

· hibernate不需要开发人员编写sql语句,因为基本的sql语句已经被hibernate封装好了,所以在应对一般的项目时,hibernate的开发效率是比需要编写sql语句的mybatis要快的。并且hibernate有良好的映射机制,mybatis开发人员需要手动设置结果集映射,而hibernate不需要,hibernate开发人员只需要关注业务流程即可。
· 在一些大的项目中,需要复杂的sql语句,这种情况下mybatis手写sql反而成为了优势。hibernate的的查询会将表中所有的字段都查询出来,但在实际应用中,我们或一般不需要查询所有字段,这就造成了一些性能浪费。而mybatis需要什么字段,就指定什么字段。当然hibernate也可以由开发人员编写sql语句,但这样就破坏了hibernate开发的简洁性。

个人认为mybatis与hibernate并没有谁优谁劣的说法,只是适合的项目不同。

mybatis的实际应用

  1. 首先要配置SqlMapConfig.xml文件
    在这里插入图片描述
    代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
	<environments default="development">
		<environment id="development">
			<!-- 使用jdbc事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url"
					value="jdbc:mysql://localhost:3306/scott?characterEncoding=utf-8" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	<!-- 加载映射文件 -->
	<mappers>
		<mapper resource="com/dao/DeptMapper.xml" />
	</mappers>
</configuration>
  1. 接下来编写mapper.xml与mapper接口
    在这里插入图片描述
    Mapper接口开发规范:
    1、xml中的namespace与mapper接口的类路径相同。
    2、xml中的id要与mapper接口方法名相同
    3、xml中的parameterType的类型和mapper接口方法的输入参数类型相同
    4、xml中定义的resultType的类型和mapper接口方法的输出参数类型相同
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值