パラメータのマッピング
11388 ワード
1、パラメータa、パラメータが1つしかない場合、xmlマッピングファイルでパラメータ変更データを取得する際にbは要求されず、複数のパラメータがある場合、デフォルトではこれらのパラメータをMapセットに配置し、keyはarg 0...argnまたはparam 1...paramnである.パラメータ値を取得するときにxmlマッピングファイルのkeyに意味があるように、@Param注記でkeyの値cを指定し、パラメータがカスタムリファレンスタイプの場合は#{メンバー変数名}d、{}と#{}を直接使用して区別する:{}データとsqlを直接接続し、SQL注入を防止できない.それで?方式はプレースホルダとしてSQL注入を防止
データの追加、変更または削除時のメソッドの戻り値は、ブール、int、long、およびそのパッケージクラス、Booleanまたはそのパッケージクラスであれば修正に成功したかどうかを示し、intまたはlongタイプ、およびそのパッケージクラスであれば影響を受ける行数を返します.
1、2つのパラメータが実質的にmapで実現され、mybatis自動変換(以下の2を回転)
2、
3、パラメータがカスタムタイプ
データの追加、変更または削除時のメソッドの戻り値は、ブール、int、long、およびそのパッケージクラス、Booleanまたはそのパッケージクラスであれば修正に成功したかどうかを示し、intまたはlongタイプ、およびそのパッケージクラスであれば影響を受ける行数を返します.
1、2つのパラメータが実質的にmapで実現され、mybatis自動変換(以下の2を回転)
package com.lq.userinfo;
import org.apache.ibatis.annotations.Param;
import com.lq.vo.UserInfo;
public interface IUserInfoDao{
UserInfo selectById(@Param("id")String id,@Param("name")String name);
}
package com.lq.userinfo;
import com.lq.vo.UserInfo;
public interface IUserInfoService {
UserInfo selectById(String id,String name);
}
<mapper namespace="com.lq.userinfo.IUserInfoDao">
<select id="selectById" resultType="com.lq.vo.UserInfo">
select * from employee where id=#{id} and user_name=#{name}
select>
mapper>
package com.lq.userinfo.imp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.lq.userinfo.IUserInfoDao;
import com.lq.userinfo.IUserInfoService;
import com.lq.vo.UserInfo;
@Service
public class UserInfoService implements IUserInfoService{
@Autowired
IUserInfoDao userInfoDao;
@Override
public UserInfo selectById(String id,String name) {
return userInfoDao.selectById(id,name);
}
}
2、
package com.lq.test;
import java.util.HashMap;
import java.util.Map;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lq.userinfo.IUserInfoDao;
import com.lq.vo.UserInfo;
public class Test {
public static void main(String[] args){
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
IUserInfoDao userInfoDao = applicationContext.getBean(IUserInfoDao.class);
Map map = new HashMap<>();
map.put("param1", "9c702712-cc24-4573-accf-c3c9bcd9daf7");
map.put("param2", " ");
UserInfo userInfo= userInfoDao.selectById(map);
System.out.println(userInfo);
applicationContext.close();
}
}
package com.lq.userinfo;
import java.util.Map;
import com.lq.vo.UserInfo;
public interface IUserInfoDao{
UserInfo selectById(Map map);
}
<mapper namespace="com.lq.userinfo.IUserInfoDao">
<select id="selectById" resultType="com.lq.vo.UserInfo">
select * from employee where id=#{param1} and user_name=#{param2}
select>
mapper>
3、パラメータがカスタムタイプ
package com.lq.userinfo;
import com.lq.vo.UserInfo;
public interface IUserInfoDao{
UserInfo selectById(UserInfo userInfo);
}
<mapper namespace="com.lq.userinfo.IUserInfoDao">
<select id="selectById" resultType="com.lq.vo.UserInfo">
select * from employee where id=#{id} and user_name=#{userName}
select>
mapper>
package com.lq.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lq.userinfo.IUserInfoDao;
import com.lq.vo.UserInfo;
public class Test {
public static void main(String[] args){
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
IUserInfoDao userInfoDao = applicationContext.getBean(IUserInfoDao.class);
UserInfo userInfo = new UserInfo();
userInfo.setId("9c702712-cc24-4573-accf-c3c9bcd9daf7");
userInfo.setUserName(" ");
userInfo = userInfoDao.selectById(userInfo);
System.out.println(userInfo);
applicationContext.close();
}
}