公司网站制作商,做外围网站犯法吗,做网站运营需要注意哪些问题,-邵阳网络公司-邵阳网站建设|邵阳网站制作1 parameterType
parameterType#xff1a;接口中方法参数的类型#xff0c;类型必须是完全限定名或别名#xff08;稍后讲别名#xff09;。该属性非必须#xff0c;因为Mybatis框架能自行判断具体传入语句的参数#xff0c;默认值为未设置#xff08;unset)。sel…1 parameterType
parameterType接口中方法参数的类型类型必须是完全限定名或别名稍后讲别名。该属性非必须因为Mybatis框架能自行判断具体传入语句的参数默认值为未设置unset)。select,insert,update,delete都可以使用 parameterType 指定参数类型。
2 传递单个参数
当接口中的方法只有一个参数的时候直接使用#{任意名称}传参即可#{}中的名称与方法中的参数名称无关。 3 传递多个参数
当接口中方法有多个参数的时候有以下方式传参
3.1 通过参数下标索引
接口正常书写映射文件中SQL语句的占位符必须用 arg0 agr1…,或param1 param2… 注意mybatis-3.3 之前的版本使用#{0},#{1}方式 从 mybatis3.4 开始使用#{arg0}方式。 TeamMapper接口添加如下内容 ListTeam queryByRange1(Integer min, Integer max); TeamMapper.xml配置文件中添加如下 !--多个参数标签中不需要parameterType属性方式1通过下标索引的方式,还有两种方式太难记了可以忽略看看演示就好啦select * from team where teamId gt;#{arg0} and teamId lt;#{arg1}; 也可以注意下表索引细节1mybatis3.3版本之前可以直接写#{0} #{1}从mybatis3.4开始#{arg0} #{arg1}... 或者是 #{param1} #{param2}...细节2sql语句中不能使用小于号使用转移符号替换;大于号没有限制也可以使用转义符号替换gt;--select idqueryByRange1 resultTypecom.lina.pojo.Teamselect * from team where teamId #{param1} and teamId lt;#{param2};/select 测试类添加方法 /*** ClassName: TestTeamMapperArg* 测试输入映射:多个参数* author wanglina* version 1.0*/
public class TestTeamMapperArg {private TeamMapper teamMapper MybatisUtil.getSqlSession().getMapper(TeamMapper.class);Testpublic void test01(){ListTeam teams teamMapper.queryByRange1(1004, 1010);teams.forEach(team - System.out.println(team));}
} 3.2 通过Param注解
在方法的形参前面加入Param(自定义参数名称)mapper文件中使用#{自定义参数名称}的方式传参。
TeamMapper接口添加如下内容 ListTeam queryByRange2(Param(min) Integer min, Param(max) Integer max); TeamMapper.xml配置文件中添加如下 !--方式2通过注解的方式#{}中的名称必须与接口的方法中的参数注解Param()保持一致select * from team where teamId #{param1} and teamId lt; #{param2}; 不推荐但是语法也是正确的但是不能使用arg0arg1......--select idqueryByRange2 resultTypecom.lina.pojo.Teamselect * from team where teamId #{min} and teamId lt; #{max};/select 测试类添加方法 Testpublic void test02(){ListTeam teams teamMapper.queryByRange2(1005, 1011);teams.forEach(team - System.out.println(team));} 3.3 通过map来传递多个参数
Map 集合可以存储多个值使用Map向 mapper 文件一次传入多个参数。Map 集合使用 String的 keyObject 类型的值存储参数。 mapper 文件使用 # { key } 引用参数值
TeamMapper接口添加如下内容 ListTeam queryByRange3(MapString,Object map); TeamMapper.xml配置文件中添加如下 !--方式3通过map来传递多个参数:映射文件中的参数占位符必须和map中的String类型的字段名称一样--select idqueryByRange3 resultTypecom.lina.pojo.Teamselect * from team where teamId #{min} and teamId lt; #{max};/select 测试类添加方法 Testpublic void test03(){TeamMapper teamDao sqlSession.getMapper(TeamMapper.class); MapString, Object mapnew HashMap();map.put(min,1001);map.put(max,2000);ListTeam teamList3 teamDao.queryByRange3(map);for (Team team : teamList3) {System.out.println(team);}} 3.4 通过pojo类传递多个参数
与map传递多个参数类似要求映射文件中的参数占位符必须和pojo类中的属性完全一致。
实体类 /*** ClassName: QueryVO* 自己封装的查询条件* author wanglina* version 1.0*/
public class QueryVO {private String name;private Integer min;private Integer max;private String location;//省略set get
}
TeamMapper接口添加如下内容 ListTeam queryByCondition(QueryVO vo); TeamMapper.xml配置文件中添加如下 !--方式4通过pojo类传递多个参数:映射文件中的参数占位符必须和pojo类中的字段完全一致--
select idqueryByCondition resultTypecom.lina.pojo.Teamselect * from teamwhere teamId#{min} and teamIdlt;#{max}and teamName like #{name} and location#{location}/select 测试类添加方法 Testpublic void test04(){QueryVO vonew QueryVO();vo.setLocation(洛杉矶);vo.setName(%球队%);vo.setMin(1001);vo.setMax(1111);ListTeam teams teamMapper.queryByCondition(vo);teams.forEach(team - System.out.println(team));}