1.配置文件下的数据库语句
<mapper namespace="com.mybatis.dao.EmployeeDao"> <select id="selAll" parameterType="String" resultType="com.mybatis.entity.Employee"> select * from emp </select> <select id="selOne" parameterType="String" resultType="com.mybatis.entity.Employee"> select * from emp where id = #{id} </select> <insert id="insertEmp"> insert into emp values (#{id},#{name},#{gender},#{address}) </insert> <update id="updateEmp"> update emp set name=#{name},address=#{address} where id=#{id} </update> <delete id="deleteEmp"> delete from emp where id = #{id} </delete> </mapper>
2.接口下的方法
public interface EmployeeDao{ //查询所有 返回是集合 不需要传递参数 public List<Employee> selAll(); //查询单一 返回是对象 需要传递参数 public Employee selOne(String id); //新增 不需要返回值,所以用void public void insertEmp(Employee emp); //修改 public void updateEmp(Employee emp); //删除,根据id删除 public void deleteEmp(String id); }
3.实现代码
public class TestImp { public void wan(){ try { String resource = "recourse.xml"; //创建一个sqlSession Reader reader; reader = Resources.getResourceAsReader(resource); //创建SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); //通过数据库会话工厂开启跟数据库的一次会话 //true表示自动提交,否则需要使用commit方法才会提交,默认false方法 SqlSession sqlSession = sqlSessionFactory.openSession(); //创建接口对象,是sqlsession对象通过动态代理自动创建 //通过sqlSession的getMapper拿到接口对象 EmployeeDao employeeDao = sqlSession.getMapper(EmployeeDao.class); System.out.println(employeeDao); //使用创建好的接口对象调用好的接口方法 Employee emp = employeeDao.selOne("2"); System.out.println(emp.getName()); sqlSession.commit(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { TestImp testImp = new TestImp(); testImp.wan(); } }
//List嵌套返回类型 List<Employee> list =employeeDao.selAll(); System.out.println(list.size());
Employee emp1 = new Employee(); emp1.setId("4"); emp1.setName("hello"); emp1.setGender('1');//char类型用单引号 emp1.setAddress("印度2"); employeeDao.insertEmp(emp1);
Employee emp1 = new Employee(); emp1.setId("4"); emp1.setName("hello1"); emp1.setGender('1');//char类型用单引号 emp1.setAddress("印度"); employeeDao.updateEmp(emp1);
employeeDao.deleteEmp("4");