多个输入参数
<select id="twoParams" resultType="User">
select * from user where birthday = #{date} and address = #{address}
</select>
public List<User> twoParams(@Param("date")Date date, @Param("address")String address);
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.pojo.User;
public class Test {
public static void main(String[] args) throws Exception {
//1、加载核心配置文件
String coreXml = "sqlMapConfig.xml";
InputStream in = Resources.getResourceAsStream(coreXml);
//2、创建工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//3、获得sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//4、获取sqlSession对象
UserDao userDao = sqlSession.getMapper(UserDao.class);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<User> users = userDao.twoParams(sdf.parse("2018-09-17"), "aaaaaa");
System.out.println(users);
}
}
输出映射
当数据库的字段和pojo
类的属性名称一致时,可以使用自动映射,即:resultType=""
,不一致时有两种做法:
sql
语句:我把数据库字段由id
改为user_id
,sql
语句改成:select user_id as id, username, birthday, sex, address from user where birthday = #{date} and address = #{address}
,就可以了。使用as
关键字。resuleMap=""
:resultMap
可以手动映射。
<resultMap type="User" id="test">
<!-- 如果是主键,使用id标签,如果是属性,使用result -->
<id column="user_id" property="id"/>
</resultMap>
<select id="twoParams" resultMap="test">
select user_id, username, birthday, sex, address from user where birthday = #{date} and address = #{address}
</select>