后端框架的学习----mybatis框架(7、使用注解开发)
2024-09-06 21:58:35
7、使用注解开发
1、注解在接口上实现
/**
* 查询用户
*/
@Select("select * from user")
public List<User> getUsers();
2、需要在核心配置文件中绑定接口
<mappers>
<package name="com.zheng.Dao"/>
</mappers>
本质:反射机制实现
底层:动态代理
使用注解实现增删改查
1、接口
public interface UserMapper {
/**
* 查询用户
*/
@Select("select * from user")
public List<User> getUsers();
/**
* 根据id查询用户
*/
@Select("select * from user where id=#{id}")
public User selectUserById(@Param("id") String id);
/**
* 增加
*/
@Insert("insert into user (id,name,pwd) values (#{id},#{name},#{pwd})")
public int addUser(User user);
/**
* 修改
*/
@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
public int update(User user);
/**
* 删除一个用户
*/
@Delete("delete from user where id=#{id}")
public int deleteUser(String id);
}
2、测试
public class UserDaoTest {
@Test //查询所有的用户
public void test() {
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.getUsers();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
@Test //根据id查询用户
public void selectUserById(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper user = sqlSession.getMapper(UserMapper.class);
User user1 = user.selectUserById("1");
if(user1!=null){
System.out.println(user1);
}else{
System.out.println("查询失败");
}
sqlSession.close();
}
@Test //增加用户
public void addUser(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res= mapper.addUser(new User("3","老刘","999"));
if(res>0){
System.out.println("增加成功!!!");
}else{
System.out.println("增加失败");
}
sqlSession.close();
}
@Test //修改用户
public void updateUser(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.update(new User("3", "范梦涵", "1234567"));
if(res>0){
System.out.println("修改成功");
}else {
System.out.println("修改失败!!!");
}
sqlSession.close();
}
@Test //删除用户
public void deleteUser(){
SqlSession sqlSession = MyBtaisUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int res = mapper.deleteUser("3");
if(res>0){
System.out.println("删除成功!!!");
}else{
System.out.println("提交失败");
}
sqlSession.close();
}
}
注意
我们可以在工具类创建的时候实现自动提交事务
测试类
【注意:我们必须要将接口注册绑定到我们的核心配置文件中】关于@Param()注解
基本类型的参数或者String类型,需要加上
引用类型不需要加
如果只有一个基本类型的话,可以忽略,但是建议大家都加上
我们在SQL中引用的就是我们这里的@Param()中设定的属性名
最新文章
- web api Route属性定义
- ThinkPHP实现支付宝接口功能
- HTML5 -入门 (---css样式-------------(css基础与css选择器)---------------------—)
- [转]透过 Linux 内核看无锁编程
- php中Content-type说明
- 2.Redis常用命令
- 2014-10-28——iframe多层嵌套时获取元素总结
- 熟悉熟悉常用的几个算法用JS的实现
- placeholder在ie浏览器里不显示的问题解决
- bootstrap-导航、选项卡
- myplan
- 30种IT技能让你年薪过10万美元!
- bindingredirect 没有效果
- code blocks 快捷键
- spring,hibernate配置事务 beans.xml
- NodeJs中process.cwd()与__dirname的区别
- DTCMS插件的制作实例电子资源管理(三)前台模板页编写
- 如何实现Selenium自动化读取H5手机缓存
- 高可用Redis(十二):Redis Cluster
- ReSharper反编译C#类库
热门文章
- you need to load the kernel first
- Redis-浅谈主从同步
- 参考MySQL Internals手册,使用Golang写一个简单解析binlog的程序
- Apache DolphinScheduler 1.3.8 发布
- Luogu P3273 [SCOI2011]棘手的操作(左偏树)
- 【c语言简单算法】1-阶乘
- KingbaseES R6 主备流复制集群创建级联复制案例
- [Python]-os模块-文件读取
- 【Spring】Spring bean中id和name的差异
- 阿里云OSS存储前端API上传(签名上传)