博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis--动态语句查询
阅读量:4159 次
发布时间:2019-05-26

本文共 5752 字,大约阅读时间需要 19 分钟。

--核心配置文件

--2映射文件

update t_emps
last_name=#{lastName},
email=#{email},
gender=#{gender},
dept_id=#{dept.id}
where id=#{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【拼接查询条件】	List
findByConditionIf(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);		List
employee = 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/

你可能感兴趣的文章
写给我们这些浮躁的系统工程师
查看>>
和平分手?你根本不知道吴恩达在百度经历了什么
查看>>
业余研究:关于腾讯与他的QQ帝国
查看>>
马云校长湖畔大学第三期讲义完整版
查看>>
iPhone为什么比Android好
查看>>
小程序的今天就是微信指数的明天
查看>>
从互联网到人工智能,BAT这七年来到底做了什么
查看>>
2012年十大科技趋势:Siri将震惊世界
查看>>
2017(第十届)中国绿公司年会马云演讲
查看>>
李彦宏:睡不着觉不是因对手
查看>>
从手Q与微信之争,看腾讯内在的真实矛盾与战略
查看>>
移动互联网的七宗败案
查看>>
互联网十大失败案
查看>>
小米颓势已现,生死劫命悬手机
查看>>
三大隐忧 三星未来路在何方?
查看>>
linux下各种进制转化最简单的的命令行
查看>>
结构体和联合体
查看>>
ACM(Association for Computing Machinery )组织的详细介绍
查看>>
unix高级编程之-命令行参数(实践一)
查看>>
无线网络加密方式对比 .
查看>>