我对的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文件
    我对的mybatis的初步理解_第1张图片
    代码如下:




	
		
			
			
			
			
				
				
				
				
			
		
	
	
	
		
	

  1. 接下来编写mapper.xml与mapper接口
    我对的mybatis的初步理解_第2张图片
    Mapper接口开发规范:
    1、xml中的namespace与mapper接口的类路径相同。
    2、xml中的id要与mapper接口方法名相同
    3、xml中的parameterType的类型和mapper接口方法的输入参数类型相同
    4、xml中定义的resultType的类型和mapper接口方法的输出参数类型相同

你可能感兴趣的:(mybatis)