简便演示下Mbatis的增删查改的便利性
**先重新新建一个接口类,命名为GoodsDao2
接着插入:
package com.chen.dao;
import java.util.List;
import com.chen.GoodsInfo;
public interface GoodsDao2 {
//查询所有 (查询所有不需要参数)
public List<GoodsInfo> selAll();
//查询单一 (返回的一定是个对象,而不是集合;需要参数)
public GoodsInfo selOne(String id);
//新增
public void insertGoods(GoodsInfo a);
//修改
public void updateGoods(GoodsInfo a);
//删除
//根据id多少来删哪个,所以设置个参数
public void deleteGoods(String id);
}
因为一个对象的成员就像一个数据库表里的属性 ,所以,参数传对象进去是最合适的。
然后补充mapper表映射XML文件,还记得吗,这个XML就相当于充当了 接口实现类。 负责具体操作;
下面是我的表映射XML文件的改动
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chen.dao.GoodsDao">
<select id="selAll" resultType="com.chen.GoodsInfo">
select * from goods
</select>
<select id="selOne" resultType="com.chen.GoodsInfo">
select * from goods where id = #{id}
</select>
<!-- 新增 -->
<!-- #{} 里填的是 对象的属性值,不能随便写-->
<insert id ="insertGoods">
insert into goods(id,name) values(#{id},#{name});
</insert>
<!-- 修改 -->
<update id="updateGoods">
update goods set name =#{name} where id =#{id};
</update>
<!-- 删除 -->
<delete id= "deleteGoods">
delete from goods where id =#{id}
</delete>
</mapper>
现在重新建一个主入口类Start2
public class Start2 {
public static void main(String[] args) {
String resource = "mybatis-conf.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//true表示自动提交。否则需要使用commit方法才会提交。默认是false
SqlSession session = sqlSessionFactory.openSession(true);
}
}
然后点运行时,就有报错出现了
根据提示上说,是接口没有被mapper表映射XML文件所指明
然后运行一次
没有报错,控制台输出空白,然后我去看了看数据库表