本文共 5752 字,大约阅读时间需要 19 分钟。
--核心配置文件
--2映射文件
update t_emps where id=#{id} last_name=#{lastName}, email=#{email}, gender=#{gender}, dept_id=#{dept.id} INSERT INTO t_emps (last_name,email,gender,dept_id) VALUES (#{lastName},#{email},#{gender},#{dept.id}) INSERT INTO t_emps (last_name,email,gender,dept_id) VALUES (#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id}) INSERT INTO t_emps (last_name,email,gender,dept_id) VALUES (#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id}) INSERT INTO t_emp VALUES ( emp_seq.nextval,#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id}) INSERT INTO t_emp (id, last_name, email, gender,dept_id) select emp_seq.nextval, last_name, email, gender,dept_id from select #{emp.lastName} last_name,#{emp.email} email, #{emp.gender} gender,#{emp.dept.id} dept_id from dual
--接口类
public interface EmpMapper { //1.使用if动态sql【拼接查询条件】 ListfindByConditionIf(Employee emp); // 2.使用Choose动态sql【when otherwise】 List findByConditionChoose(Employee emp); //3.使用trim(字符串截取)动态sql【update表】 Integer updateByConditionTrim(Employee emp); //4.插入 Integer addByCondition(Employee emp); //5,批量插入 Integer bathByCondition(@Param("emps")List emp); Integer bathByCondition2(@Param("emps")List emp); Integer bathByCondition3(@Param("emps")List emp); //6.批量查询 List findByIds(List ids); //7.查看使用不同的数据库环境之下相同的方法 //接口就一个(可以动态选择不同数据库,根据databaseId选择数据库 ) List findAll();}
--测试类
public class EmpTest { SqlSession sqlSession; @Before public void init() { try { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); sqlSession = factory.openSession(); } catch (IOException e) { e.printStackTrace(); } } @Test public void demo() { // 1.使用if动态sql【拼接查询条件】 EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); Listemployee = mapper.findByConditionIf(new Employee(null, "五", "ww.com", "女")); for (Employee employee2 : employee) { System.out.println(employee2); } // 2.使用Choose动态sql【when otherwise】 Employee emp = new Employee(); emp.setId(1l); List list = mapper.findByConditionChoose(emp); for (Employee list1 : list) { System.out.println(list1); } } @Test public void demo2() { // 3.使用trim(字符串截取)动态sql【update表】 EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); Employee emp = new Employee(); Department dept = new Department(); emp.setId(1L); emp.setLastName("鹅鹅鹅"); emp.setEmail("110.com"); emp.setGender("女"); dept.setId(2l); emp.setDept(dept); Integer row = mapper.updateByConditionTrim(emp); sqlSession.commit(); System.out.println(row > 0 ? "成功" : "失败"); } @Test public void demo3() { //4.插入 EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); Employee emp = new Employee(); Department dept = new Department(); emp.setId(1L); emp.setLastName("凄凄切切"); emp.setEmail("123.com"); emp.setGender("女"); dept.setId(2l); emp.setDept(dept); Integer row = mapper.addByCondition(emp); sqlSession.commit(); System.out.println(row > 0 ? "成功" : "失败"); } @Test public void demo4() { //5,批量插入 EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); ArrayList list = new ArrayList<>(); list.add(new Employee("武松1","33.com","男",new Department(2l))); //list.add(new Employee("武松3","33.com","男",new Department(1l))); //方法一,insert into table values(),values(),values(); //Integer row = mapper.bathByCondition(list); //方法二;oracle和MySQL:insert into table values();insert into table values(); //Integer row = mapper.bathByCondition2(list); //方法三:Oracle批量查询 Integer row = mapper.bathByCondition3(list); sqlSession.commit(); System.out.println(row > 0 ? "成功" : "失败"); } @Test public void demo5() { //6.批量查询 EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); List list = mapper.findByIds(Arrays.asList(1,3,2)); for (Employee employee : list) { System.out.println(employee); } } @Test public void demo6() { EmpMapper mapper = sqlSession.getMapper(EmpMapper.class); List findAll = mapper.findAll(); for (Employee employee : findAll) { System.out.println(employee); } }}
转载地址:http://wrjxi.baihongyu.com/