文章目录
1.查询:
1)修改BeanPerson.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"> <!-- 命名空间 namespace=“接口的全路径” --> <mapper namespace="cn.cvu.service.IOperationBean"> <!-- 为了返回list类型而定义的returnMap。 type="对应的表单" id="自定义的操作,对应接口中的方法" --> <resultMap id="resultListPerson" type="tb_person"> <!--主键,column=“表单列名” property=“JavaBean字段” --> <id column="id" property="id"/> <result column="name" property="name"/> <result column="country" property="country"/> <result column="address" property="address"/> </resultMap> <!-- 返回list的select 语句 id=”接口中对应的方法名” resultMap=”前面定义好的结果集” --> <select id="selectPersons" resultMap="resultListPerson"> <!--查询表单tb_person的全部条目 --> select * from tb_person </select> </mapper>
2)修改接口:
package cn.cvu.service; import java.util.List; import cn.cvu.domain.BeanPerson; //接口,定义操作 public interface IOperationBean { //查询全部的Person,方法名对应BeanPerson.xml中配置的select节点的id public List<BeanPerson> selectPersons(); }
3)测试:
/** * 一次查询全部数据 * @throws Exception */ @Test public void testQueryAll() throws Exception { Reader reader = Resources.getResourceAsReader("Configuration.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); IOperationBean operationBean =session.getMapper(IOperationBean.class); //查询全部数据。返回JavaBean=接口.使用ID查询(Integer) List<BeanPerson> persons =operationBean.selectPersons(); for (BeanPerson person:persons){ System.out.println("ID:" + person.getId()); System.out.println("姓名:" +person.getName()); System.out.println("国家:" +person.getCountry()); System.out.println("地址:" +person.getAddress()); } session.close(); }
2.添加:
1)修改接口:
//接口,定义操作 public interface IOperationBean { //添加条目 public void addPerson(BeanPerson person); }
2)修改BeanPerson.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"> <!-- 命名空间 namespace=“接口的全路径” --> <mapper namespace="cn.cvu.service.IOperationBean"> <!-- 增加 ***public void addPerson(BeanPerson person);*** id ="IOperationPerson接口中的addPerson方法" parameterType ="addPerson方法的参数类型,全路径" useGeneratedKeys="true,表明要MyBatis获取由数据库自动生成的主键" keyProperty ="id,指定把获取到的主键值注入到BeanPerson的id属性" --> <!-- <insert id="addPerson" parameterType="BeanPerson" useGeneratedKeys="true" keyProperty="id"> --> <insert id="addPerson" parameterType="cn.cvu.domain.BeanPerson"> <!-- insert into 表单(表单中的列名) --> insert into tb_person(id, name, country, address) <!-- #{id}引用BeanPerson参数的id属性,MyBatis将使用反射读取BeanPerson参数的此属性 #{name}引用BeanPerson参数的name属性 --> values(#{id}, #{name}, #{country}, #{address} ) </insert> </mapper>
3)测试:
/** * 插入一条记录 * @throws Exception */ @Test public void testInsert() throws Exception { Reader reader = Resources.getResourceAsReader("Configuration.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); IOperationBean operationBean = session.getMapper(IOperationBean.class); //1.准备数据 BeanPerson person=new BeanPerson(3,"Eminem", "America","Ditroit"); //2.执行插入 operationBean.addPerson(person); //3.提交事务 session.commit(); session.close(); }
3.更新:
1)修改IOperationPerson接口:
//接口,定义操作 public interface IOperationBean { //根据id更新条目 public void updatePerson(BeanPerson person); }
2)修改BeanPerson.xml文件:
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEmapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 命名空间 namespace=“接口的全路径” --> <mapper namespace="cn.cvu.service.IOperationBean"> <!-- 更新条目 id="接口中的对应的方法名" parameterTyper="作为参数的JavaBean全路径" --> <update id="updatePerson" parameterType="cn.cvu.domain.BeanPerson"> update tb_person <!-- 表单列name=#{JavaBean字段name},这些是被更新的数据 --> set name=#{name}, country=#{country}, address=#{address} <!-- 表单列id=#{JavaBean字段id},这个是更新条件 --> where id=#{id} </update> </mapper>
3)测试:
/** * 更新一条记录 * @throws Exception */ @Test public void testUpdateOne() throws Exception { Reader reader = Resources.getResourceAsReader("Configuration.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); IOperationBean operationBean = session.getMapper(IOperationBean.class); //1.准备数据(原ID,新name,新country,新address) BeanPerson person=new BeanPerson(2,"NewMichael", "America","NewYork"); //2.执行更新 operationBean.updatePerson(person); //3.提交事务 session.commit(); session.close(); }
4.删除:
1)修改接口:
package cn.cvu.service; import java.util.List; import cn.cvu.domain.BeanPerson; //接口,定义操作 public interface IOperationBean { //根据id更新条目 public void deletePerson(int id); }
2)修改BeanPerson.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"> <!-- 命名空间 namespace=“接口的全路径” --> <mapper namespace="cn.cvu.service.IOperationBean"> <!-- 删除条目 id="自定义方法名,与接口中方法对应" parameterType="SQL语句中的#{id}参数的数据类型" --> <delete id="deletePerson" parameterType="int"> delete fromtb_person where id=#{id} </delete> </mapper>
3)测试:
/** * 删除一条记录 * @throws Exception */ @Test public void testDeleteOne() throws Exception { Reader reader = Resources.getResourceAsReader("Configuration.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); IOperationBean operationBean = session.getMapper(IOperationBean.class); //1.准备数据 Integer id =2 ; //2.执行更新 operationBean.deletePerson(id); //3.提交事务 session.commit(); session.close(); }
- end