package com.kuang.dao;
import com.kuang.pojo.User;
import org.apache.ibatis.annotations.*;
import org.junit.Test;
import java.util.List;
import java.util.Map;
public interface UserMapper {
@Select("select * from mybatis.user")
List<User> getUsers();
@Select("select * from user where id=#{id}")
User getUserById(@Param("id") int id);
@Insert("insert into user (id,name,pwd) values(#{id},#{name},#{password})")
int add(User user);
@Update("update user set name=#{name},pwd=#{pwd} where id =#{id}")
int update(Map<String,Object> map);
@Delete("delete from user where id =#{id}")
int Delete(@Param("id") int id);
}
import com.kuang.dao.UserMapper;
import com.kuang.pojo.User;
import com.kuang.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
public class UserMapperTest {
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> users = mapper.getUsers();
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(2);
System.out.println(user);
sqlSession.close();
}
@Test
public void add(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i = mapper.add(new User(5, "机身", "200103012"));
if (i>0){
System.out.println("插入成功");
}
sqlSession.commit();
sqlSession.close();
}
@Test
public void update(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id",5);
map.put("name","牛");
map.put("pwd","20013");
mapper.update(map);
sqlSession.commit();
sqlSession.close();
}
@Test
public void Delete(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.Delete(5);
sqlSession.commit();
sqlSession.close();
}
}
sql复杂要么维护老系统,要么就是小系统吧,微服务架构好,之前我们那个贼大的项目最长的sql才两行
<mappers>
<!--绑定接口-->
<mapper class="com.kuang.dao.UserMapper"/>
</mappers>
通配
三种方式
@Param注意事项
#{} 与 ${}的区别
#{}是PrepareStatement有预编译,防止SQL注入问题
${}是普通的Statement没有预编译,可能会SQL注入