iBATIS 怎么对sql 输入参数 的映射
iBATIS 如何对sql 输入参数 的映射
一、输入参数的映射:
1、parameterClass的使用
2、parameterMap的使用
3、如何用Map类型的对象作为传入参数
parameterClass
insertUser使用了parameterClass,所以必需传入User类型的对象
insertUser2没有使用parameterClass,所以可以传入任意具有相应属性值的对象
parameterMap的使用
parameterMap用于传入参数,以便匹配SQL语句中的?号
利用parameterMap,可以定义参数对象的属性如何映射到SQL查询语句的动态参数上,注意parameterMap中<parameter/>标签的先后顺序不能颠倒!
如何用Map类型的对象作为传入参数
一、输入参数的映射:
1、parameterClass的使用
2、parameterMap的使用
3、如何用Map类型的对象作为传入参数
parameterClass
<insert id="insertUser" parameterClass="User"> insert into t_user values ( null,#username#,#password# ) <selectKey resultClass="int" keyProperty="id"> SELECT @@IDENTITY AS ID </selectKey> </insert> <insert id="insertUser2"> insert into t_user values ( null,#username#,#password# ) <selectKey resultClass="int" keyProperty="id"> SELECT @@IDENTITY AS ID </selectKey> </insert>
insertUser使用了parameterClass,所以必需传入User类型的对象
User user = new User(); user.setUsername("张三"); user.setPassword("张三密码"); //传递进去的对象,必须是User类型 Object obj = sqlMapper.insert("insertUser", user);
insertUser2没有使用parameterClass,所以可以传入任意具有相应属性值的对象
JustAnObject anobj = new JustAnObject(); anobj.setUsername("用户名"); anobj.setPassword("用户密码"); //如果没有指定parameterClass属性,则任何一个具有相应属性值 //的对象都可以被传递进去 Object obj = sqlMapper.insert("insertUser2", anobj);
parameterMap的使用
<parameterMap class="User" id="insertUser-param"> <parameter property="username"/> <parameter property="password"/> </parameterMap> <insert id="insertUser" parameterMap="insertUser-param"> insert into t_user values ( null,?,? ) <selectKey resultClass="int" keyProperty="id"> SELECT @@IDENTITY AS ID </selectKey> </insert>
parameterMap用于传入参数,以便匹配SQL语句中的?号
User user = new User(); user.setUsername("张三dd"); user.setPassword("张三密码dd"); Object obj = sqlMapper.insert("insertUser", user);
利用parameterMap,可以定义参数对象的属性如何映射到SQL查询语句的动态参数上,注意parameterMap中<parameter/>标签的先后顺序不能颠倒!
如何用Map类型的对象作为传入参数
<!-- 这里,可以使用全路径类名,如: java.util.Map java.util.HashMap java.util.TreeMap 或 map --> <insert id="insertUser" parameterClass="map"> insert into t_user values ( null,#username#,#password# ) </insert> Map user = new TreeMap(); user.put("username", "Map用户"); user.put("password", "Map用户密码"); sqlMapper.insert("insertUser",user);