使用注解开发
1.注解在接口上实现
@Select("select * from user")
List<User> getUsers();
2.需要在核心配置文件中绑定接口!
<mappers>
<mapper class="com.zhao.dao.UserMapper"></mapper>
</mappers>
3.测试
@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();
}
本质:反射机制实现
底层:动态代理
CRUD
我们可以在工具类创建的时候实现自动提交事务
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
编写接口,添加注解
package com.zhao.dao;
import com.zhao.pojo.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
public interface UserMapper {
@Select("select * from 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},#{pwd})")
int addUser(User user);
@Update("update user set name = #{name} where id = #{id}")
int updateUser(User user);
@Delete("delete from user where id = #{id}")
int deleteUser(@Param("id") int id);
}
测试
import com.zhao.dao.UserMapper;
import com.zhao.pojo.User;
import com.zhao.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
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);
}*/
/* User user = mapper.getUserById(1);
System.out.println(user);
sqlSession.close();*/
/*mapper.addUser(new User(4,"小乐","777777"));*/
/*mapper.updateUser(new User(4,"小开","777777"));*/
mapper.deleteUser(4);
}
}
注意:【必须将接口注册绑定到我们的核心配置文件中】
关于@Param()注解
基本类型的参数或者String类型,需要加上
引用类型不需要加
如果只有一个基本类型的话,可以忽略,但是建议都加上
我们在SQL中引用的就是我们这里的@Param()中设置的属性名