您当前的位置: 首页 >  mybatis

水的精神

暂无认证

  • 3浏览

    0关注

    711博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MyBatis-学习笔记-day02

水的精神 发布时间:2019-01-16 17:09:18 ,浏览量:3

parameterType(输入类型)
  •   传递简单的类型
  •   传递pojo对象

   Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。

  •   传递包装类

   包装类的应用场景,比方说是商品类,那么商品可能或包括一些其它的,颜色,形状,等

  比方说是这样的一个类QueryVo,里边包含了一个User类。这样的就叫做包装类

这样去传递

输出参数resulType
  •  基础数据类型
  • list
  • pojo
  • resultMap

   如果数据库中的字段名和实体类中的字段名不一致时,解决方案有,改数据库或者实体类,但是这是不可取的方案。 还有一种方案是取别名,在sql语句后边加上别名,能够结局问题。最后就是使用ResultMap了。

  关于resultMap,用起来的感觉就好像是hibernate的持久化类的映射文件,非常相似,这大概就是框架思想想通的地方

关于mybatis的sql灵活性体现
  •    动态sql-if标签的使用

Demo

  • sql-where标签的使用

  从上边的demo中,我们看到的是,where后边需要有一个 1=1 ,才能保证后边的 and 有效。那么使用where标签以后,就可以直接来了。

 where标签自动补上where关键字,同时处理多余的and

  需要注意一点,如果使用where标签,就不能手动的添加where关键字了,不然拼接出来,就会多一个where。

  使用方法很简单,只需要将if标签包起来就可以了。

  • sql-sql片段

先定义一个sql片段

使用也很简单:

  • foreach标签的使用

   重点是红框里边的

关联查询
  •  一对一关联查询 

   第一种方案使用resultType: 可以使用的方案是,实现原理很简单,就是表连接,这样需要有一个和连接表相对应的pojo(字段名相同)然后配合 resultType来使用。 但是这样做的方法的弊端是,面向对象的思想不够好。 (有公司在用,但是不推荐)

   第二种方案使用ResultMap: resultMap 就是先写一个resultMap 然后再引入。对于这个resultMap 我的感觉就是可以类比hibernate的映射文件,与hibernate不同的是,这里换了一个关联的标签 (这种更符合面向对象的思想)

  • 一对多关联查询

一对多与一对一不同的地方有两点,一个是标签 collection,一个是属性 ofType。

mybatis和spring的整合

 先回顾一下之前学过的spring框架,spring框架的两个重要的内容就是 IOC 和AOP 的思想。

 首先IOC是控制反转,又叫依赖注入,它是用在容器管理上,每层对象之间的传递,是由spring来管理的。spring可以拿到对象的创建权。

  AOP面向切面编程思想,比方说最常用的事务的管理,比方说监控某一块代码性能的时候,比方日志管理。

  • 整合思路
  1. SqlSessionFactory对象应该放到spring容器中作为单例存在。
  2. 传统dao的开发方式中,应该从spring容器中获得sqlsession对象。
  3. Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。
  4. 数据库的连接以及数据库连接池事务管理都交给spring容器来完成。
  • 整合步骤
  1. 创建一个java工程。
  2. 导入jar包。(课前资料中mybatis与spring整合所有包)
  3. mybatis的配置文件sqlmapConfig.xml
  4. 编写Spring的配置文件
  5.  数据库连接及连接池
  6. sqlsessionFactory对象,
  7. 配置到spring容器中
  8. 编写Spring的配置文件
  9. 复制jdbc.properties配置文件到新工程
  10. 复制log4j.properties配置文件到新工程

mybatis推荐的是使用动态代理的方式进行开发,只需要有一个接口,有个映射文件,然后在applicationContexr.xml文件里边开启包扫描,就可以使用了。当有多个包需要开启扫描的时候,只需要逗号分隔开就行了

applicationContexr.xml 文件 里边的相关配置




   
   

	
	
		
		
		
		
		
		
			
		
	
	
	
	
		
		
		
		
		
	
	
	
	
	
    
    
    
    	
    
    
逆向工程:替我们生成接口,生成pojo   这里先不做介绍。

 

关注
打赏
1664074814
查看更多评论
立即登录/注册

微信扫码登录

0.0394s