这里写主要的,须先将mybatis搭建好
第一步:mapper层
package com.mapper2;
import com.pojo.Student3;
import java.util.List;
import java.util.Map;
public interface PeopleMapper {
//动态SQL
List<Student3> queryByIf(Map<Object,Object> map);
List<Student3> queryByChose(Map<Object,Object> map);
int updateBySet(Map<Object,Object> map);
List<Student3> queryByForEach(Map<Object,Object> map);
}
<?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">
<!--namespace:命名空间 绑定接口的全路径-->
<mapper namespace="com.mapper2.PeopleMapper">
<sql id="sqlId">
select * from student
</sql>
<update id="updateBySet" parameterType="map">
update student
<set>
<if test="name != null">
name = #{name}
</if>
</set>
where id = #{id}
</update>
<select id="queryByIf" resultType="com.pojo.Student3" parameterType="map">
<include refid="sqlId"/>
<where>
<if test="tid != null">
tid = #{tid}
</if>
<if test="name != null">
name = #{name}
</if>
</where>
</select>
<select id="queryByChose" resultType="com.pojo.Student3">
<include refid="sqlId"/>
<where>
<choose>
<when test="tid != null">
tid = #{tid}
</when>
<otherwise>
and name = #{name}
</otherwise>
</choose>
</where>
</select>
<select id="queryByForEach" resultType="com.pojo.Student3">
<include refid="sqlId"/>
<where>
<foreach collection="ids" item="id" open="and (" close=")" separator="or">
id = #{id}
</foreach>
</where>
</select>
</mapper>
第二步:实体类
package com.pojo;
public class Student3 {
private int id;
private String name;
private int tid;
public Student3() {
}
public Student3(int id, String name, int tid) {
this.id = id;
this.name = name;
this.tid = tid;
}
/**
* 获取
* @return id
*/
public int getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(int id) {
this.id = id;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return tid
*/
public int getTid() {
return tid;
}
/**
* 设置
* @param tid
*/
public void setTid(int tid) {
this.tid = tid;
}
public String toString() {
return "Student3{id = " + id + ", name = " + name + ", tid = " + tid + "}";
}
}
测试
package com;
import com.mapper2.PeopleMapper;
import com.pojo.Student3;
import com.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Mybatis03 {
@Test
public void demo1(){
SqlSession sqlSession = MybatisUtils.sqlSession();
PeopleMapper mapper = sqlSession.getMapper(PeopleMapper.class);
Map<Object,Object> map = new HashMap<>();
map.put("name","路飞");
List<Student3> student3s = mapper.queryByIf(map);
student3s.forEach(System.out::println);
sqlSession.close();
}
@Test
public void demo2(){
SqlSession sqlSession = MybatisUtils.sqlSession();
PeopleMapper mapper = sqlSession.getMapper(PeopleMapper.class);
Map<Object,Object> map = new HashMap<>();
map.put("tid",1);
List<Student3> student3s = mapper.queryByChose(map);
student3s.forEach(System.out::println);
sqlSession.close();
}
@Test
public void demo3(){
SqlSession sqlSession = MybatisUtils.sqlSession();
PeopleMapper mapper = sqlSession.getMapper(PeopleMapper.class);
Map<Object,Object> map = new HashMap<>();
map.put("id",1);
map.put("name","龙");
int i = mapper.updateBySet(map);
System.out.println(i);
sqlSession.close();
}
@Test
public void demo4(){
SqlSession sqlSession = MybatisUtils.sqlSession();
PeopleMapper mapper = sqlSession.getMapper(PeopleMapper.class);
ArrayList<Integer> ids = new ArrayList<Integer>();
ids.add(1);
ids.add(2);
ids.add(3);
Map<Object,Object> map = new HashMap<>();
map.put("ids",ids);
mapper.queryByForEach(map).forEach(System.out::println);
sqlSession.close();
}
}