Mybatis 总结常用的标签

核心配置文件
* properties:用来加载外部资源文件
* settings:延迟加载
* typeAliases(类型别名)
* typeHandlers(类型处理器)
* objectFactory(对象工厂)
* plugins(插件)
* environments(环境集合属性对象)
*     environment(环境子属性对象)
*         transactionManager(事务管理)
*         dataSource(数据源)
* mappers:加载映射配置文件和注解接口的全限定名
映射配置文件
* mapper  namespace: 命名空间,作用 分类管理sql语句,确定唯一的sql语句:namespace + "." + id,mapper代理开发dao时,namespace必须是接口的全限定名称
* 
	* cache标签:二级缓存
	* sql标签:抽取成公共的sql 语句,可以重复使用
	* 
		* include属性:引用抽取公共的sql语句
		* 
			* refid属性:根据指向抽取公共的sql语句的id完成引用


	* select标签 :编辑查询数据库的sql语句
	* update标签 :编辑修改数据库的sql语句
	* insert标签 :编辑添加数据库的sql语句
	* delete标签 :编辑删除数据库的sql语句
	* 
		* id属性:唯一的标识,要跟接口中的方法名一致
		* parameterType属性:传递的参数类型,要跟接口中的方法传递的参数类型一致
		* resultType属性:返回的结果参数类型,要跟接口中的方法返回的结果类型一致
		* 
			* 如果返回的结果是一个list,resultType中的类型是集合中的泛型  List<T> 

		* resultMap属性:实现多条查询返回结果的类型,可以完成数据库字段与封装类字段不一致的映射关系,可以完成复杂的映射关系:一对一、一对多、多对多
		* 
			* uresultMap标签:id属性:唯一标识,给上面指向的位置。type属性:返回的结果类型
			* 
				* id标签:完成主键的映射关系,数据库和封装类的映射
				* result标签:数据库的普遍字段和封装类的映射
				* 
					* column属性:数据库的字段
					* property属性:封装类的字段

				* association标签:完成一对一映射关系
				* 
					* property属性:将结果映射到封装类的那个字段名字
					* javaType属性:指定该封装类的字段类型
					* id标签:完成主键的映射关系,数据库和封装类的映射
					* result标签:数据库的普遍字段和封装类的映射

				* collection标签:完成一对多映射关系
				* 
					* property属性:将结果映射到封装类的那个字段名字
					* ofType属性:指定关联查询的结果集中的对象类型即list中的对象类型
					* id标签:完成主键的映射关系,数据库和封装类的映射
					* result标签:数据库的普遍字段和封装类的映射



		* useGeneratedKeys标签:开启返回的自增主键
		* 
			* keyColumn属性:查询数据中的那个字段
			* keyProperty属性:赋值给封装类的那个字段

		* selectKey标签:返回自增主键
		* 
			* order属性:指定sql的执行顺序
			* 
				* AFTER属性:先执行插入sql语句
				* BEFORE属性:首先选择主键

#{}:代表占位符(?),防止sql注入

{}内的名称:

  1. 如果传递的基本类型:{}内名称任意
  2. 如果传递的pojo:{}内名称pojo的属性名

${}:代表连接符(将条件直接拼接到sql语句中,存在sql注入) 例如:select * from user where name = ? and pwd = ? or 1=1

{}内的名称:

  1. 如果传递的基本类型:{}内名称必须是value
  2. 如果传递的pojo:{}内名称pojo的属性名
动态sql
* where标签:在sql语句后面添加where语句
* 
	* if标签:判断是否执行sql语句,
	* 
		* test属性:判断语句:如果是map根据map的key进行判断,如果是包装类型是根据包装类型的字段的字段进行判断,

	* foreach标签:循环
	* 
		* collection属性:需要执行遍历的数据,如果是包装类型是根据包装类型的字段,如果是list类型,就是list的变量名
注解开发
* @Insert:实现新增
* @Update:实现更新
* @Delete:实现删除
* @Select:实现查询
* @Result:实现结果集封装
* @Results:可以与@Result一起使用,封装多个结果集 代替xml中的ResultMap标签 
* 
	* @Result注解:代替xml中的id、result标签。
	* 
		* column:查询的列名
		* property:映射的pojo属性
		* one:完成一对一映射关系
		* 
			* select:关联查询的sql语句(同一个接口中,只需要指定方法名即可;如果在其他的接口中,格式:xxx.xxx.XxxMapper.method)
			* fetchType:
			* 
				* ENGER:立即加载
				* LAZY:延迟加载


		* many:完成一对多映射
		* 
			* select:关联查询的sql语句(同一个接口中,只需要指定方法名即可;如果在其他的接口中,格式:xxx.xxx.XxxMapper.method)
			* fetchType:
			* 
				* ENGER:立即加载
				* LAZY:延迟加载




* @SelectProvider: 实现动态SQL映射
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值