一、基于XML的增删改查
1、数据库操作的映射文件
<?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.weixuan.testcrud.personcrud"> <!-- 用户的增删改查操作 --> <insert id="addPerson" parameterType="com.weixuan.mybatis.Person"> <!-- 字段必须是类的属性 --> insert into person(personname,age) values(#{personname},#{age}) </insert> <delete id="deletePerson" parameterType="int"> delete from person where id= #{id} </delete> <update id="updatePerson" parameterType="com.weixuan.mybatis.Person"> update person set personname= #{personname},age=#{age} where id=#{id} </update> <select id="getAll" resultType="com.weixuan.mybatis.Person"> select * from person </select> <select id="getPerson" parameterType="int" resultType="com.weixuan.mybatis.Person"> select * from person where id=#{id} </select> </mapper>
2、测试类package com.weixuan.testcrud; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.junit.Test; import com.weixuan.mybatis.Person; public class TestOfCrud { SqlSessionFactory sqlsessionfactory = MyBatisUtils.getFactory(); SqlSession sqlsession = sqlsessionfactory.openSession(true); @Test public void testAddperson() { // SqlSessionFactory sqlsessionfactory = MyBatisUtils.getFactory(); // 也可以调用重载的方法 。。设为自动提交 // SqlSession sqlsession = sqlsessionfactory.openSession(); String sql = "com.weixuan.testcrud.personcrud.addPerson"; int line = sqlsession.insert(sql, new Person(-1, "lisi", 23)); sqlsession.close(); System.out.println(line); } @Test public void testDeleteperson() { String sql = "com.weixuan.testcrud.personcrud.deletePerson"; sqlsession.delete(sql, 5); sqlsession.close(); } @Test public void testUpdateperson() { String sql = "com.weixuan.testcrud.personcrud.updatePerson"; sqlsession.update(sql, new Person(4, "zhangsan333", 23)); sqlsession.close(); } @Test public void testSelectAllperson() { String sql = "com.weixuan.testcrud.personcrud.getAll"; List<Person> lp = sqlsession.selectList(sql); sqlsession.close(); System.out.println(lp); } @Test public void testSelectperson() { String sql = "com.weixuan.testcrud.personcrud.getPerson"; Person p = sqlsession.selectOne(sql, 1); sqlsession.close(); System.out.println(p); } }
3、工具类
package com.weixuan.testcrud; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MyBatisUtils { public static SqlSessionFactory getFactory() { String resourse = "conf.xml"; SqlSessionFactory sqlsessionfactory = null; // 1、加载mybatis的配置文件 Reader reader; try { reader = Resources.getResourceAsReader(resourse); // 2、构建sqlsession的工厂 sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } return sqlsessionfactory; } }
二、基于注解的增删改查
1、定义sql映射的接口,实现注解
package com.weixuan.testcrud2; import java.util.List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.weixuan.mybatis.Person; public interface UserMapper { @Insert("insert into person(personname,age) values(#{personname},#{age})") public void addPerson(Person person); @Delete("delete from person where id= #{id}") public void deletePersonById(int id); @Update("update person set personname= #{personname},age=#{age} where id=#{id}") public void updatePerson(Person person); @Select("select * from person where id=#{id}") public Person selectPerson(int id); @Select("select * from person") public List<Person> selectAll(); }
2、在dao类中调用
package com.weixuan.testcrud; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.junit.Test; import com.weixuan.mybatis.Person; import com.weixuan.testcrud2.UserMapper; public class OfTestOfCrud2 { SqlSessionFactory sqlsessionfactory = MyBatisUtils.getFactory(); SqlSession sqlsession = sqlsessionfactory.openSession(true); @Test public void testAddperson() { UserMapper mapper = sqlsession.getMapper(UserMapper.class); mapper.addPerson(new Person(-1, "nicholas", 23)); sqlsession.close(); } @Test public void testDeleteperson() { UserMapper mapper = sqlsession.getMapper(UserMapper.class); mapper.deletePersonById(2); sqlsession.close(); } @Test public void testUpdateperson() { UserMapper mapper = sqlsession.getMapper(UserMapper.class); mapper.updatePerson(new Person(8, "nicholas", 22)); sqlsession.close(); } @Test public void testSelectperson() { UserMapper mapper = sqlsession.getMapper(UserMapper.class); mapper.selectPerson(6); sqlsession.close(); } @Test public void testGetAllPerson() { UserMapper mapper = sqlsession.getMapper(UserMapper.class); List<Person> lp = mapper.selectAll(); System.out.println(lp); sqlsession.close(); } }
3、不要忘了在conf.xml中注册<mappers> <mapper resource="com/weixuan/mybatis/PersonMapper.xml" /> <mapper resource="com/weixuan/testcrud/PersonMapper.xml" /> <mapper class="com.weixuan.testcrud2.UserMapper"/> </mappers>