自学内容网 自学内容网

【Mybatis篇】Mybatis的注解开发

 

      🧸安清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;
    }

    @Override
    public 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>

🚦测试类及测试方法

 @Test
    public 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 注解配合 useGeneratedKeyskeyProperty 属性来实现。

🚦示例

 ✨接口类编写

向接口类WorkerMapper中添加以下代码:

 @Insert("insert into worker(name,age,sex,worker_id) values(#{name},#{age},#{sex},#{worker_id})")
    int insertWorker(Worker worker);

✨测试方法

 @Test
    public 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);

✨测试方法

 @Test
    public 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);

✨测试方法

@Test
    public 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);

✨测试方法

    @Test
    public 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相关内容,如果您感兴趣的话,可以订阅我的相关专栏。非常感谢您的阅读,如果这篇文章对您有帮助,那将是我的荣幸。我们下期再见啦🧸!


原文地址:https://blog.csdn.net/m0_74202856/article/details/142729982

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!