🧸安清h:个人主页
🎥个人专栏:【计算机网络】,【Mybatis篇】
🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。
文章目录
🎯 @Select注解
🚦 创建数据表worker
🚦创建持久化类Worker
🚦创建接口WorkerMapper
🚦核心配置文件
🚦测试类及测试方法
🎯@Insert注解
🚦示例
✨接口类编写
✨测试方法
🎯@Update注解
🚦示例
✨接口类编写
✨测试方法
🎯@Delete注解
🚦示例
✨接口类编写
✨测试方法
🎯@Param注解
🚦示例
✨接口类编写
✨测试方法
🎯 @Select注解
@Select
注解是 MyBatis 框架中用于执行查询语句的注解,通常用于映射 SQL 查询语句到 Java 方法上。在 MyBatis 中,注解是一种将 SQL 语句直接嵌入到 Java 代码中的便捷方式,而不需要使用 XML 配置文件。
下面通过一个例子来展示其用法。
🚦 创建数据表worker
create table worker(id int auto_increment primary key ,name varchar(100),age int,sex varchar(50),worker_id int UNIQUE
);
insert into worker(name,age,sex,worker_id) values ('丽丽',18,'女',1001);
insert into worker(name,age,sex,worker_id) values ('刚刚',24,'男',1002);
insert into worker(name,age,sex,worker_id) values ('甜甜',21,'女',1003);
🚦创建持久化类Worker
public class Worker {private Integer id;private String name;private Integer age;private String sex;private Integer worker_id;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Integer getWorker_id() {return worker_id;}public void setWorker_id(Integer worker_id) {this.worker_id = worker_id;}@Overridepublic String toString() {return "Worker{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +", worker_id=" + worker_id +'}';}
}
🚦创建接口WorkerMapper
public interface WorkerMapper {@Select("select * from worker where id=#{id}")public Worker findAllById(int id);
}
🚦核心配置文件
<mappers><mapper class="com.haust.dao.WorkerMapper"/></mappers>
🚦测试类及测试方法
@Testpublic void testFind(){SqlSession sqlSession=MyBatisUtil.getSession();WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class);Worker worker=workerMapper.findAllById(1);System.out.println(worker.toString());sqlSession.close();}
🎯@Insert注解
@Insert
注解用于映射 SQL 的插入语句。当需要向数据库表中插入一条新记录时,可以使用此注解。如果插入操作后需要返回生成的主键,可以使用@Options
注解配合useGeneratedKeys
和keyProperty
属性来实现。
🚦示例
✨接口类编写
向接口类WorkerMapper中添加以下代码:
@Insert("insert into worker(name,age,sex,worker_id) values(#{name},#{age},#{sex},#{worker_id})")int insertWorker(Worker worker);
✨测试方法
@Testpublic void testInsert(){SqlSession sqlSession=MyBatisUtil.getSession();Worker worker=new Worker();worker.setId(4);worker.setName("青青");worker.setAge(22);worker.setSex("男");worker.setWorker_id(1004);WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class);int result=workerMapper.insertWorker(worker);if(result>0){System.out.println("成功插入"+result+"条信息");}else{System.out.println("插入失败");}System.out.println(worker.toString());sqlSession.commit();sqlSession.close();}
🎯@Update注解
@Update
注解用于映射 SQL 的更新语句。当需要更新数据库表中的记录时,可以使用此注解。可以指定更新的条件,例如根据某个字段的值。
🚦示例
✨接口类编写
向接口类WorkerMapper中添加以下代码:
@Update("update worker set age=#{age} and sex=#{sex} where id=#{id}")int UpdateWorker(Worker worker);
✨测试方法
@Testpublic void testUpdate(){SqlSession sqlSession=MyBatisUtil.getSession();Worker worker=new Worker();worker.setId(4);worker.setAge(23);worker.setSex("女");WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class);int result=workerMapper.UpdateWorker(worker);if(result>0){System.out.println("成功修改"+result+"条数据");}else{System.out.println("修改数据失败");}System.out.println(worker.toString());sqlSession.commit();sqlSession.close();}
🎯@Delete注解
@Delete
注解用于映射 SQL 的删除语句。当需要从数据库表中删除记录时,可以使用此注解。可以指定删除的条件,例如根据某个字段的值。
🚦示例
✨接口类编写
@Delete("delete from worker where id=#{id}")int DeleteWorker(int id);
✨测试方法
@Testpublic void testDelete(){SqlSession sqlSession=MyBatisUtil.getSession();WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class);int result=workerMapper.DeleteWorker(4);if(result>0){System.out.println("成功删除"+result+"条数据");}else{System.out.println("删除数据失败");}sqlSession.commit();sqlSession.close();}
🎯@Param注解
@Param
注解用于为 MyBatis 方法参数提供命名参数的功能。在 SQL 语句中,可以使用这些命名参数来引用方法参数。这对于动态 SQL 特别有用,也使得代码更加清晰。当方法有多个参数时,使用@Param
注解可以避免参数索引的混乱。
🚦示例
✨接口类编写
@Select("select * from worker where id=#{param1} and name=#{param2}")Worker selectWorker(@Param("param1")int id,@Param("param2")String name);
✨测试方法
@Testpublic void testParam(){SqlSession sqlSession=MyBatisUtil.getSession();WorkerMapper workerMapper=sqlSession.getMapper(WorkerMapper.class);Worker worker=workerMapper.selectWorker(1,"丽丽");System.out.println(worker.toString());sqlSession.close();}
以上就是今天要讲的内容了,主要跟练了关于@Select,@Update,@Insert,@Delete,@Param的部分。到此为止,Mybatis部分已全部更完,后续会继续更新Spring相关内容,如果您感兴趣的话,可以订阅我的相关专栏。非常感谢您的阅读,如果这篇文章对您有帮助,那将是我的荣幸。我们下期再见啦🧸!