@RequestMapping("/select")
@ResponseBody
public void select() {
System.out.println(userMapper.findByName("Michael").toString());
}
@RequestMapping("/select2")
@ResponseBody
public void select2() {
System.out.println(userMapper.findByName2("Michael").toString());
}
@RequestMapping("/select3")
@ResponseBody
public void select3() {
System.out.println(userMapper.findByName3("Michael").toString());
}
@RequestMapping("/insert")
@ResponseBody
public void insert() {
System.out.println(userMapper.insert("sasa"));
}
@RequestMapping("/insert2")
@ResponseBody
public void insert2() {
Map<String, Object> map=new HashMap<>();
map.put("name","zhangsan");
System.out.println(userMapper.insert2(map));
}
@RequestMapping("/insert3")
@ResponseBody
public void insert3() {
User user=new User();
user.setName("lisi");
System.out.println(userMapper.insert3(user));
}
@Select("SELECT * FROM USER WHERE NAME = #{name}")
User findByName(@Param("name") String name);
@Insert("INSERT INTO USER(NAME) VALUES(#{name})")
int insert(@Param("name") String name);
@Update("update user set name =#{name} where id=#{id}")
int update(@Param("id") int id,@Param("name") String name);
@Delete("delete from user where name =#{name}")
int delete(@Param("name") String name);
//注解中动态拼接sql
@Select("<script>" +
"SELECT * FROM USER WHERE NAME = #{name}" +
"</script>")
User findByName2(@Param("name") String name);
//拼装返回结果在该配置中故意没有查出id属性,只对User对应中的name做了映射配置,
// 这样可以通过下面的单元测试来验证查出的id为空,而其他属性不为null
@Select("<script>" +
"SELECT name FROM USER WHERE NAME = #{name}" +
"</script>")
@Results(
@Result(property ="name" ,column ="name" )
)
User findByName3(@Param("name") String name);
//Map参数传递
@Insert("INSERT INTO USER(NAME) VALUES(#{name})")
int insert2(Map<String, Object> map);
//对象参数传递
@Insert("INSERT INTO USER(NAME) VALUES(#{name})")
int insert3(User user);
如果再插入数据库的时候想要返回主键最大值可用@Options注解,在插入成功后,即可获取主键字段的值。
@Insert("<script>" +
"INSERT INTO USER(NAME) VALUES(#{name})" +
"</script>")
@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
int insert3(User user);
这里的int返回值是操作数据库成功的次数,user.getId()可得到主键int的值。