利用注解来增删改查
修改配置文件
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用mybatis获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (IOException e){
e.printStackTrace();
}
}
//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession(true); //自动提交事务
}
}
Dao的接口文件
使用注解来增删改查,在使用一下代码之前,需要UserMapper.xml里面的映射语句注释掉,否则会报错
package com.mango.dao;
import com.mango.pojo.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface UserMapper {
//根据ID查询用户
@Select("select * from user where id = #{id}")
User getUserById(@Param("id") int id);
@Insert("insert into user (id, name, pwd) value (#{id}, #{name}, #{pwd})")
int addUser(User user);
@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
int UpdateUser(User user);
@Delete("delete from user where id=#{id}")
int DeleteUser(@Param("id") int id);
List<User> getUserByLimit(Map<java.lang.String,Integer> map);
}
测试文件
package com.mango.dao;
import com.mango.pojo.User;
import com.mango.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.Test;
import java.lang.String;
import java.util.HashMap;
import java.util.List;
public class UserDaoTest {
static Logger logger = Logger.getLogger(UserDaoTest.class);
//根据ID查询一个用户
@Test
public void getUserById() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user01 = mapper.getUserById(5);
System.out.println(user01);
sqlSession.close();
}
//创建一个用户
@Test
public void addUser() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User(7, "abc", "123456");
int res = mapper.addUser(user);
logger.info(res);
sqlSession.close();
}
//修改一个用户
@Test
public void UpdataUser() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User(7, "王五", "123456");
int res = mapper.UpdateUser(user);
logger.info(res);
sqlSession.close();
}
//删除一个用户
@Test
public void DeleteUser() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
try {
mapper.DeleteUser(7);
} catch (Exception e) {
e.printStackTrace();
}
sqlSession.close();
}