注解可以拿来写简单的sql语句,但是复杂的sql语句建议还是使用xml的方式来实现
数据库:
DAO层
package com.kuang.dao;
import com.kuang.pojo.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface UserMapper {
@Select(" select * from mybatis.user")
public List getUserList();
@Select("select * from user where id=#{id}")
public User getUserById(@Param("id") int id,@Param("name") String name);
@Insert("insert into user(name,pwd) value(#{name},#{pwd})")
int addUser(User user);
@Update("update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id}")
int updateUser(User user);
@Delete("delete from mybatis.user where id=#{id}")
int deleteUser(User user);
}
方法getUserById上面那个SQL语句是取的参数取的是前面那个@Param里的参数,建议多个基本类型的参数都在前面加一个@Param
测试方法代码
package dao;
import com.alibaba.fastjson.JSON;
import com.kuang.dao.UserMapper;
import com.kuang.pojo.User;
import com.kuang.util.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserDaoTest {
@Test
public void addUser(){
SqlSession sqlSession=null;
try {
sqlSession= MybatisUtils.getSqlSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setId(13);
userMapper.deleteUser(user);
List list=userMapper.getUserList();
for (User user1:list){
System.out.println(JSON.toJSONString(user1));
}
}catch (Exception e){
}finally {
}
}
@Test
public void deleteUser(){
SqlSession sqlSession=null;
try {
sqlSession= MybatisUtils.getSqlSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setName("ohaode");
user.setPwd("2222");
user.setId(13);
userMapper.deleteUser(user);
List list=userMapper.getUserList();
for (User user1:list){
System.out.println(JSON.toJSONString(user1));
}
}catch (Exception e){
}finally {
}
}
@Test
public void updateUser(){
SqlSession sqlSession=null;
try {
sqlSession= MybatisUtils.getSqlSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=new User();
user.setName("测试");
user.setPwd("2860");
userMapper.addUser(user);
List list=userMapper.getUserList();
for (User user1:list){
System.out.println(JSON.toJSONString(user1));
}
}catch (Exception e){
}finally {
}
}
@Test
public void getUserList(){
SqlSession sqlSession=null;
try {
sqlSession= MybatisUtils.getSqlSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
ListuserList= userMapper.getUserList();
for (User user:userList){
System.out.println(JSON.toJSONString(user));
}
}catch (Exception e){
}finally {
}
}
}
使用注解时就不用在xml里写方法了,然后再核心配置文件里需要把mapper写到自己要面向的dao接口那了,而不是之前的xml文件
现在
之前



