<!-- 配置我们的添加方法,获取到新增加了一个monster对象的id
useGeneratedKeys="true" 意思是需要获取新加对象的主键值
keyProperty="monster_id" 表示将获取到的id值赋值给Monster对象的monster_id属性
-->
<insert id="addMonster" parameterType="Monster"
useGeneratedKeys="true" keyProperty="monster_id">
INSERT INTO mybatis_monster_ (monster_id,age,birthday,email,gender,name,salary)
VALUES (#{monster_id},#{age},#{birthday},#{email},#{gender},#{name},#{salary})
</insert>
@Test
public void testAdd() {
Monster monster = new Monster();
for(int i=10;i<20;i++) {
monster.setAge(100+i);
monster.setBirthday(new Date());
monster.setEmail("123@qq.com");
monster.setGender(1);
monster.setSalary(8928.00);
monster.setName("银角"+i);
monsterMapper.addMonster(monster);
System.out.println("获取添加的对象id" + monster.getMonster_id());
}
}
(1)传入简单类型,比如按照id查Person? ?(单条件查询)
(2)传入POJQ类型,查询时需要有多个筛选条件(将多个条件封装到pojo中,将pojo作为参数传入)
比如?请查询monster_id =1或者 name='白骨精'的妖怪.
注意:当有多个条件时,传入的参数就是Pojo类型的Java对象,比如这里的Monster对象,
? ? ? ? 当我们传入的是String时,可以使用 ${}接收参数
首先,在MonsterMapper中,写这个方法,?查询名字当中含有“狐狸精”的妖怪
public Monster findByName(String name);
然后,映射文件中写这个语句,注意${name}
<select id="findByName" resultType="com.bin.mybatis.entity.Monster" parameterType="String">
SELECT * FROM mybatis_monster_
WHERE name like '%${name}%'
</select>
? ? ? ? 我们可以使用HashMap来实现多条件的查询
// 查询id>10而且salary大于40的所有妖怪
public List<Monster> findMonsterByIdAndSalary(Map<String,Object> map);
<select id="findMonsterByIdAndSalary" resultType="com.bin.mybatis.entity.Monster" parameterType="Map">
SELECT * FROM mybatis_monster_
WHERE monster_id>#{monster_id} AND salary>#{salary}
</select>
@Test
public void findMonsterByIdAndSalary(){
Map<String, Object> map = new HashMap<String,Object>();
map.put("monster_id", 6);
map.put("salary", 1234);
List<Monster> monsterList = monsterMapper.findMonsterByIdAndSalary(map);
for (Monster monster : monsterList) {
System.out.println(monster);
}
}
// 查询id>10而且salary大于40的所有妖怪
// 第二种写法:参数和返回类型都是Map
public Map<String,Object> findMonsterByIdAndSalary2(Map<String,Object> map);
<select id="findMonsterByIdAndSalary2" resultType="Map" parameterType="Map">
SELECT * FROM mybatis_monster_
WHERE monster_id>#{monster_id} AND salary>#{salary}
</select>
@Test
public void findMonsterByIdAndSalary(){
Map<String, Object> map = new HashMap<String,Object>();
map.put("monster_id", 6);
map.put("salary", 1234);
List<Monster> monsterList = monsterMapper.findMonsterByIdAndSalary(map);
for (Monster monster : monsterList) {
System.out.println(monster);
}
}