<?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 type="tb_person" id="resultListPerson"> <!-- 主键 ,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>
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(); }
/** * 一次查询全部数据 * @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(); }
//接口,定义操作 public interface IOperationBean { //添加条目 public void addPerson(BeanPerson person); }
<?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>
/** * 插入一条记录 * @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(); }
//接口,定义操作 public interface IOperationBean { //根据id更新条目 public void updatePerson(BeanPerson person); }
<?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="接口中的对应的方法名" 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>
/** * 更新一条记录 * @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", "New York"); //2.执行更新 operationBean.updatePerson(person); //3.提交事务 session.commit(); session.close(); }
package cn.cvu.service; import java.util.List; import cn.cvu.domain.BeanPerson; //接口,定义操作 public interface IOperationBean { //根据id更新条目 public void deletePerson(int id); }
<?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 from tb_person where id=#{id} </delete> </mapper>
/** * 删除一条记录 * @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