①查询出所有的记录
List<Player> selectAll();
<select id="selectAll" resultType="Player">
select * from Player
</select>
②根据主键查询
Player selectById(Integer id);
<select id="selectById" parameterType="Integer" resultType="Player">
select * from Player where id=#{id}
</select>
③修改
int update(Player player);
<update id="update" parameterType="Player">
update Player set name=#{name},city=#{city} where id=#{id}
</update>
④根据主键删除
int deleteById(Integer id);
<delete id="deleteById">
delete from Player where id=#{id}
</delete>
⑤增加
int insert(Player player);
<insert id="insert" parameterType="Player">
<selectKey keyProperty="id" order="BEFORE" resultType="integer">
select seq_play.nextval from dual
</selectKey>
insert into Player(id,name,city) values(#{id},#{name},#{city})
</insert>
⑥查询出所有字段(orderColumn:指定排序列)
List<Player> selectAlls(String orderColumn);
<select id="selectAlls" resultType="Player">
select * from Player order by ${value}
</select>
⑦根据id或name查找数据,演示多个参数的取值方式,通过@param取别名
List<Player> selectByIdOrName(@Param("id") Integer id,@Param("name") String name,@Param("city") String city);
<select id="selectByIdOrName" resultType="Player">
select * from Player
<where>
<choose>
<when test="id!=null">
id=#{id}
</when>
<when test="name!=null">
name=#{name}
</when>
<otherwise>
city=#{city}
</otherwise>
</choose>
</where>
</select>
⑧参数传递的是map时,#{key}取value
List<Player> selectMap(Map<String,Object> map);
<select id="selectMap" parameterType="java.util.Map" resultType="Player">
select * from Player
<where>
<if test="id!=null">
id=#{id}
</if>
<if test="name!=null and name!=''">
or name=#{name}
</if>
<if test="city!=null">
or city=#{city}
</if>
</where>
</select>
⑨批量删除 传递数组/集合
int deleteByIds(Integer[] ids);
<delete id="deleteByIds">
delete from Player where id in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
⑩批量插入
int batchInsert(List<Player>playerList);
<insert id="batchInsert" parameterType="java.util.List">
begin
<foreach collection="list" item="player">
insert into Player(id,name,city) values (seq_play.nextval,#{player.name},#{player.city});
</foreach>
commit ;
end;
</insert>
11、选择性更新
int updateSelective(Player player);
<update id="updateSelective" parameterType="Player">
update Player
<set>
<if test="name!=null">
name=#{name},
</if>
<if test="city!=null">
city=#{city}
</if>
</set>
where id=#{id}
</update>
12、选择性插入数据
int insertSelective(Player player);
<insert id="insertSelective" parameterType="Player">
<selectKey keyProperty="id" resultType="integer" order="BEFORE">
select seq_play.nextval from dual
</selectKey>
insert into Player
<trim prefix="(" suffix=")" suffixOverrides=",">
id,
<if test="name!=null">name,</if>
<if test="city!=null">city</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{id},
<if test="name!=null">#{name},</if>
<if test="city!=null">#{city}</if>
</trim>
</insert>
13、根据名称进行模糊查询
List<Player> selectByName(@Param("name") String name);
<select id="selectByName" resultType="Player">
<bind name="nameLike" value="'%'+name+'%'"/>
select * from Player where name like #{nameLike}
</select>
以下为上面方法的测试,仅供参考
@Test
public void test() throws IOException {
InputStream is= Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession=sqlSessionFactory.openSession();
PlayerMapper mapper=sqlSession.getMapper(PlayerMapper.class);
System.out.println("==========查询所有的记录===========");
List<Player> playerList=mapper.selectAll();
for (Player player:playerList){
System.out.println(player);
}
System.out.println("==========根据主键查询记录=============");
Player player = mapper.selectById(2);
System.out.println(player);
System.out.println("=============修改记录=============");
player.setName("汤普森");
player.setCity("金州勇士");
int update = mapper.update(player);
System.out.println(update);
System.out.println("============根据主键删除============");
int i = mapper.deleteById(4);
System.out.println(i);
System.out.println("============插入数据===========");
//Player player1=new Player("一哥","金州勇士");
//int i1 = mapper.insert(player1);
//System.out.println(i1);
System.out.println("===========根据指定序列查找所有字段================");
List<Player> playerList1 = mapper.selectAlls("id");
for (Player player2:playerList1){
System.out.println(player2);
}
System.out.println("==========根据id或name查找数据===============");
List<Player> playerList2 = mapper.selectByIdOrName(1, "乔丹", "芝加哥");
for (Player player2:playerList2){
System.out.println(playerList2);
}
List<Player> playerList3 = mapper.selectByIdOrName(null, null, "金州勇士");
for (Player player2:playerList3){
System.out.println(playerList3);
}
System.out.println("============测试传递map============");
HashMap<String,Object> map=new HashMap<>();
map.put("id",3);
map.put("name","科比");
map.put("city","洛杉矶");
List<Player> playerList4 = mapper.selectMap(map);
for (Player player2:playerList4){
System.out.println(player2);
}
System.out.println("=========批量删除===========");
int i1 = mapper.deleteByIds(new Integer[]{13,15});
System.out.println(i1);
System.out.println("==========批量增加===========");
//List<Player> playerList5= Arrays.asList(
//new Player("字母哥","快船"),
//new Player("麦迪","火箭"),
//new Player("哈登","火箭")
//);
//int i2 = mapper.batchInsert(playerList5);
//System.out.println(i2);
System.out.println("=========选择性更新===========");
Player player1=mapper.selectById(2);
player1.setName("库里");
player1.setCity("金州幼儿园");
int i2 = mapper.updateSelective(player1);
System.out.println(i2);
Player player2=mapper.selectById(18);
player2.setName("库里");
player2.setCity(null);
int i3 = mapper.updateSelective(player2);
System.out.println(i3);
System.out.println("==========选择性增加数据==========");
Player player3=new Player();
player3.setName(null);
player3.setCity("猛龙");
int i4 = mapper.insertSelective(player3);
System.out.println(i4);
Player player4=new Player();
player4.setName("奥尼尔");
player4.setCity(null);
int i5 = mapper.insertSelective(player4);
System.out.println(i5);
System.out.println("=========根据名字模糊查询==========");
String name="母";
List<Player> playerList5 = mapper.selectByName(name);
for (Player player5:playerList5){
System.out.println(player5);
}
sqlSession.commit();
sqlSession.close();
is.close();
}