首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

iBATIS 怎么对sql 输入参数 的映射

2012-10-11 
iBATIS 如何对sql 输入参数 的映射一、输入参数的映射:1、parameterClass的使用2、parameterMap的使用3、如何

iBATIS 如何对sql 输入参数 的映射
一、输入参数的映射:
1、parameterClass的使用
2、parameterMap的使用
3、如何用Map类型的对象作为传入参数

parameterClass

  <insert id="insertUser" parameterkeyProperty="id">  SELECT @@IDENTITY AS ID  </selectKey>    </insert>    <insert id="insertUser2">  insert into t_user values (  null,#username#,#password#  )  <selectKey resultkeyProperty="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 id="insertUser-param">  <parameter property="username"/>  <parameter property="password"/>  </parameterMap>  <insert id="insertUser" parameterMap="insertUser-param">  insert into t_user values (  null,?,?  )  <selectKey resultkeyProperty="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);


热点排行