08.注解开发
简单的 sql 语句使用注解,复杂的 sql 语句和结果集映射使用 xml 配置文件
1.save
接口方法
java
@Insert("insert into user(name, pwd) values(#{name}, #{pwd})")
int save(User user);
测试用例
java
@Test
public void save(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
User user = new User();
user.setName("SAVE ID");
user.setPwd("123");
int save = mapper.save(user);
System.out.println(save);
System.out.println(user);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
控制台打印
shell
[main] [org.hong.mapper.UserMapper.save]-[DEBUG] ==> Preparing: insert into user(name, pwd) values(?, ?)
[main] [org.hong.mapper.UserMapper.save]-[DEBUG] ==> Parameters: SAVE ID(String), 123(String)
[main] [org.hong.mapper.UserMapper.save]-[DEBUG] <== Updates: 1
1
User(id=null, name=SAVE ID, pwd=123)
2.select
接口方法
java
@Select("select * from user where id = #{id}")
User get(int id);
测试用例
java
@Test
public void get(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
User user = mapper.get(1);
System.out.println(user);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
控制台打印
shell
[main] [org.hong.mapper.UserMapper.get]-[DEBUG] ==> Preparing: select * from user where id = ?
[main] [org.hong.mapper.UserMapper.get]-[DEBUG] ==> Parameters: 1(Integer)
[main] [org.hong.mapper.UserMapper.get]-[DEBUG] <== Total: 1
User(id=1, name=谢禹宏, pwd=654321)
3.update
接口方法
java
@Update("update user set name = #{name}, pwd = #{pwd} where id = #{id}")
int update(User user);
测试用例
java
@Test
public void update(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
User user = mapper.get(1);
user.setPwd("987654");
int update = mapper.update(user);
System.out.println(user);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
控制台打印
shell
[main] [org.hong.mapper.UserMapper.get]-[DEBUG] ==> Preparing: select * from user where id = ?
[main] [org.hong.mapper.UserMapper.get]-[DEBUG] ==> Parameters: 1(Integer)
[main] [org.hong.mapper.UserMapper.get]-[DEBUG] <== Total: 1
[main] [org.hong.mapper.UserMapper.update]-[DEBUG] ==> Preparing: update user set name = ?, pwd = ? where id = ?
[main] [org.hong.mapper.UserMapper.update]-[DEBUG] ==> Parameters: 谢禹宏(String), 987654(String), 1(Integer)
[main] [org.hong.mapper.UserMapper.update]-[DEBUG] <== Updates: 1
User(id=1, name=谢禹宏, pwd=987654)
4.delete
接口方法
java
@Delete("delete from user where id = #{id}")
int delete(int id);
测试用例
java
@Test
public void delete(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
int delete = mapper.delete(10);
System.out.println(delete);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
控制台打印
shell
[main] [org.hong.mapper.UserMapper.delete]-[DEBUG] ==> Preparing: delete from user where id = ?
[main] [org.hong.mapper.UserMapper.delete]-[DEBUG] ==> Parameters: 10(Integer)
[main] [org.hong.mapper.UserMapper.delete]-[DEBUG] <== Updates:
0
5.最终版
5.1 Mapper 接口
java
package org.hong.mapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.hong.pojo.User;
import java.util.List;
public interface UserMapper {
@Insert("insert into user(name, pwd) values(#{name}, #{pwd})")
int save(User user);
@Select("select * from user where id = #{id}")
User get(int id);
@Update("update user set name = #{name}, pwd = #{pwd} where id = #{id}")
int update(User user);
@Delete("delete from user where id = #{id}")
int delete(int id);
}
5.2 测试用例
java
package org.hong.test;
import org.apache.ibatis.session.SqlSession;
import org.hong.mapper.UserMapper;
import org.hong.pojo.User;
import org.hong.util.MyBatisUtil;
import org.junit.Test;
public class AnnotationTest {
@Test
public void save(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
User user = new User();
user.setName("SAVE ID");
user.setPwd("123");
int save = mapper.save(user);
System.out.println(save);
System.out.println(user);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
@Test
public void get(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
User user = mapper.get(1);
System.out.println(user);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
@Test
public void update(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
User user = mapper.get(1);
user.setPwd("987654");
int update = mapper.update(user);
System.out.println(user);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
@Test
public void delete(){
// 1.获取sqlSession对象
SqlSession sqlSession = MyBatisUtil.getSqlSession();
// 2.获取需要的mapper接口的代理对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 3.调用对应的方法执行操作
int delete = mapper.delete(10);
System.out.println(delete);
// 4.提交事务
sqlSession.commit();
// 5.关闭sqlSession
sqlSession.close();
}
}