MyBatis框架(4.0)
利用Mybatis实现查(Read)操作:
查询处理方法:
public <E> List <E> selectList(String statement) 查询全部数据
public <E> List <E> selectList(String statement , Object parameter) 查询全部数据,同时设置查询参数
public <E> E selectone(String statement) 查询一个对象
public <E> E selectone(String statement, Object parameter) 查询一个对象,同时设置查询参数
查询单个对象:
范例:修改New.xml文件
<select id="findById" parameterType="int" resultType="News">
SELECT nid,title,pub_date FROM news WHERE nid=#{pnid} ;
</select>
·编写具体的查询处理操作:
package cn.mldn.test;
import cn.mldn.util.MyBatisSessionFactory;
import cn.mldn.vo.News;
public class TestNewsFindById {
public static void main(String[] args) throws Exception {
News vo = MyBatisSessionFactory.getSession().selectOne(
"cn.mldn.mapping.NewsNS.findById", 2); // 没有强制转换
System.out.println(vo);
MyBatisSessionFactory.close();
}
}
发现pubdate 为空;
范例:修改New.xml文件增加VO类与字段的映射
<!-- 结果转换映射,一般都会在查询的时候使用 -->
<resultMap type="News" id="NewsResultMap">
<id property="nid" column="nid"/>
<result property="title" column="title"/>
<result property="pubdate" column="pub_date"/>
</resultMap>
<select id="findById" parameterType="int" resultMap="NewsResultMap">
SELECT nid,title,pub_date FROM news WHERE nid=#{pnid} ;
</select>
范例:查询全部对象
·查询统计个数:
1,修改New.xml文件
<select id="getAllCount" resultType="int">
SELECT COUNT(*) FROM news ;
</select>
2,测试:
package cn.mldn.test;
import cn.mldn.util.MyBatisSessionFactory;
public class TestNewsCountAll {
public static void main(String[] args) throws Exception {
int count = MyBatisSessionFactory.getSession().selectOne(
"cn.mldn.mapping.NewsNS.getAllCount"); // 没有强制转换
System.out.println(count);
MyBatisSessionFactory.close();
}
}
1
整个查询之中没有强制转换;
查询全部数据:
1,修改New.xml文件
<select id="findAll" resultMap="NewsResultMap">
SELECT nid,title,pub_date FROM news ;
</select>
2,测试:
package cn.mldn.test;
import java.util.List;
import cn.mldn.util.MyBatisSessionFactory;
import cn.mldn.vo.News;
public class TestNewsFindAll {
public static void main(String[] args) throws Exception {
List<News> all = MyBatisSessionFactory.getSession().selectList(
"cn.mldn.mapping.NewsNS.findAll"); // 没有强制转换
System.out.println(all);
MyBatisSessionFactory.close();
}
}