当前位置 : 主页 > 编程语言 > c++ >

Mybatis中的Mapper映射文件

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt Mybatis的执行都是依靠映射文件中的语句进行数据库操作,通常一个持久类的配置文件对应一个接口,接口中的方法来自配置文件的元素的id值,传入的值来自元素的parameterT
gistfile1.txt
Mybatis的执行都是依靠映射文件中的语句进行数据库操作,通常一个持久类的配置文件对应一个接口,接口中的方法来自
配置文件的元素的id值,传入的值来自元素的parameterType,返回的值来自元素的resultType。常用的元素如下:
1.select,映射查询语句
2.update,映射更新语句
3.insert,映射插入语句
4.delete,映射删除语句
5.sql,可被其他语句引用的可重用语句块
6.cache,给定命名空间的缓存配置
7.resultMap,最强大的功能,可以根据自己的需要返回数据,而不必返回全部,用来描述如何从数据库结果集中加载对象。

1.select元素介绍

其中#{id}表示的是预处理语句,等同于prepareStatement.setInt(1,id),paramterType表示传如的参数,resultType
表示返回的类型,如何返回是集合,那么则是集合中的类型。对于查询语句,如果涉及到多个条件,可以在POJI中定义构造函数
在构造函数中加入要传入的参数,之后在select语句中直接传入这个类即可。之后查询条件会自动去寻找传入对象中的各个属性值
,然后进行匹配。

2.insert元素介绍

 
  
		insert into tb_user(name,sex,age) values(#{name},#{sex},#{age})

 
其中useGeneratedKeys为true表示采用主键自动生成,这跟数据库创建表的时候有关,要数据库表的支持。

3.update元素介绍

 
  
		update  tb_user set name=#{name},sex=#{sex},age=#{age} where id=#{id}
	
 
上述中传用了一个User对象,而查询语句通过id进行更新,那么语句会匹配User对象中的各个属性值,从而进行修改。

4.delete元素介绍

 
  
		delete from tb_user where name=#{name}
	
 
上述中传入一个String类型的参数,根据参数进行删除。

ResultMap的使用
ResultMap主要是运用在数据库表的列名和POJO对象的属性不一样时使用,比如数据库列名为tb_name,而对应的POJO属性为
name,那么在返回的时候因为匹配不到所以返回为空,那么有2种解决方法。
1.在sql语句中进行匹配,如:

上述语句中将数据库的列名为user_id附给User对象的id属性,列名为user_name附给User对象的userName属性。
2.通过ResultMap进行返回对象的设置。如:

 
	 
  
	 
  
	 
  
	  
  
	
 
上述代码自己定义了一个resultMap,id为userResultMap,将数据库中的列名为tb_id匹配到com.vo.User对象的id属性。
其他以此类推,其中元素id表示主键,元素result表示正常列。
之后在查询语句中通过resultMap进行引用。

这样就算数据库列名与POHO对象的属性不一样也可以进行返回。
网友评论