01.MyBatis简介
MyBatis 本是的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBatis是半ORM映射框架,它需要在数据库里手动建表,CURD操作时要自己写SQL语句,而Hibernate是全ORM映射框架,它只需要配置好文件,表会自动生成,CURD的SQL语句也是自动生成的,这是他们的主要区别。
搭建MyBatis 首先需要引入jar包
搭建小配置文件
其次是搭建大配置文件,并与小配置相关联
创建实体类,并封装
package cn.happy.entity;public class Dept { private Integer deptno;//部门编号 private String deptname;//部门名称 public Integer getDeptno() { return deptno; } public void setDeptno(Integer deptno) { this.deptno = deptno; } public String getDeptname() { return deptname; } public void setDeptname(String deptname) { this.deptname = deptname; }}
最后书写测试类
小配置:
测试类:
static SqlSession session; @Before public void initData() throws Exception{ SqlSessionFactoryBuilder sb=new SqlSessionFactoryBuilder(); Reader reader=new FileReader("src/mybatis-config.xml"); SqlSessionFactory factory = sb.build(reader); session = factory.openSession(); } @Test //检索所有部门名称 public void testSelectDept() throws Exception{ Listlist = session.selectList("selectDept"); for (Dept dept : list) { System.out.println(dept.getDeptname()); } session.close(); }
运行结果:
小配置:
//添加数据 insert into Y2162Dept values(#{deptno},#{deptname}) //按部门编号修改部门名称 update Y2162Dept set deptname=#{deptname} where deptno=#{deptno} //按部门编号删除部门 delete from Y2162Dept where deptno=#{deptno}
测试类:
//增加 @Test public void testInsertDept() throws Exception{ Dept dt=new Dept(); dt.setDeptno(22); dt.setDeptname("月饼部"); int count = session.insert("insertDept", dt); session.commit(); System.out.println(count); session.close(); } //修改 @Test public void testupdateDeptById() throws Exception{ Dept dt=new Dept(); dt.setDeptno(101); dt.setDeptname("月饼不"); int count = session.update("updateDeptById",dt); session.commit(); System.out.println(count); session.close(); } //删除 @Test public void testdeleteDeptById() throws Exception{ Dept dt=new Dept(); dt.setDeptno(101); int count = session.delete("deleteDeptById",dt); session.commit(); System.out.println(count); session.close(); }
还可以通过getMapper()方法查询数据
创建一个接口IDeptDao
package cn.happy.dao;import java.util.List;import cn.happy.entity.Dept;public interface IDeptDao { public ListgetAllDepts();}
创建getMapper.xml配置文件
测试类代码:
//使用getMapper()检索所有数据 @Test public void testgetAllDepts(){ IDeptDao mapper = session.getMapper(IDeptDao.class); Listlist=mapper.getAllDepts(); for (Dept dept : list) { System.out.println(dept.getDeptname()); } }
运行结果: