Mapper接口的方法有多个情况的参数需要传入SQL语句
参数值会直接传给Mapper中SQL语句的#{}占位符,#{}中的占位符名可以随意定义。
此时:由于只有单个标量类型的参数,因此Mapper中定义的SQL语句业只能有单个#{}占位符。
此时Mapper中SQL语句的#{}中的占位符名必须是复合对象的属性名或Map的key。
因为在这种情况下,MyBatis将对象的属性值或将Map的value传给对应的#{}占位符
此处的属性名支持属性路径写法的,比如#{name.first} , 表明为该占位符传入唯一参数的name属性的first属性
此时Mapper中SQL语句的#{}中的占位符名必须先引用指定的参数。
主类
package lee;
import java.io.IOException;
import java.io.InputStream;
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 org.itcheng.app.dao.NewsMapper;
import org.itcheng.app.domain.News;
public class NewsManager
{
// SqlSessionFactory应该是应用级别
private static SqlSessionFactory sqlSessionFactory;
public static void main(String[] args) throws IOException
{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream</