Mybatis动态SQL及关联查询实例

Mybatis动态SQL及关联查询实例,第1张

Mybatis动态SQL及关联查询实例

Mybatis动态SQL及关联查询实例
    • 动态SQL
    • 关联查询
        • 使用业务扩展类实现一对一:
        • 使用 resultMap 实现一对一:
        • 使用 resultMap 实现一对多:

动态SQL

实现:select stuno,stuname from student where stuname = #{stuName}and stuage = #{stuAge}

第一种写法:

	
		select stuno,stuname,stuage from student where 1=1
		
		 
			and stuname = #{stuName}
		
		 
			 and  stuage = #{stuAge}
		
	

第二种写法:会自动处理第一个标签中的 and,但不会处理之后中的and

	
	  	select * from student 
	  	
	  		 
	  		 	   
	  		 		#{stuNo}
	  		 	
	  		 
	  	
	
	
	
	  	select * from student 
	  	
	  		 
	  		 	   
	  		 		#{student.stuNo}
	  		 	
	  		 
	  	
	

提取相同相似SQL片段:


		
	  		 
	  		 	   
	  		 		#{student.stuNo}
	  		 	
	  		 
	  	
	
	
	
		select s.*,c.* from student s  inner join studentcard c
		on s.cardid=c.cardid
		where s.stuno = #{stuNo}
	
@Data
public class StudentBusiness  extends Student{//学生业务扩展类
	private int cardId;
	private String cardInfo ;
}
使用 resultMap 实现一对一:
	
		select  c.*,s.* from student s
		inner join studentclass c 
		on c.classid = s.classid
		where c.classid = #{classId}
	
	  
	
			
			
			
			
			
				
				
				
			
	
public class StudentClass {
	private int classId;//外键
	private String className;
	//增加学生属性 (通过该字段,让Student类和StudentClass类建立起关联)
	List students ;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5576546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存