14. 使用MyBatis注解配置SQL

14. 使用MyBatis注解配置SQL

1.MyBatis常用注解

  • @Insert:实现新增,代替了

  • @Delete:实现删除,代替了

  • @Update:实现更新,代替了

  • @Select:实现查询,代替了

  • @Result:实现结果集封装,代替了

  • @Results:可以与@Result 一起使用,封装多个结果集,代替了

  • @One:实现一对一结果集封装,代替了

  • @Many:实现一对多结果集封装,代替了

2.项目结构和核心配置

  • 使用注解开发摒弃了传统的xml映射文件,而是在接口了直接通过注解将数据映射到数据库中。

image-20220224210726740

  • SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--    读取配置文件-->
    <properties resource="jdbc.properties"/>
    <!--    设置延迟加载策略-->
<!--    <settings>
        &lt;!&ndash;        所有方法都会延迟加载&ndash;&gt;
        <setting name="lazyLoadTriggerMethods" value="toString()"/>
        &lt;!&ndash;开启全局延迟加载功能&ndash;&gt;
        <setting name="lazyLoadingEnabled" value="true"/>
    </settings>-->
<!--    给实体类起别名-->
    <typeAliases>
        <package name="com.weihong.domain"/>
    </typeAliases>

<!--    加载数据源-->
    <environments default="default_mysql">
        <environment id="default_mysql">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="url" value="${jdbc.url}"/>
                <property name="driver" value="${jdbc.driver}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--或者指定扫描包含映射关系的接口所在的包也可以-->
    <mappers>
        <package name="com.weihong.mapper"/>
    </mappers>

</configuration>

3.通过注解实现增删改查功能—单表操作

  • 创建UserMapper接口

    public interface UserMapper {
     
      @Select("SELECT * FROM `user`")
      public List<User> findAll();
        
      @Insert("INSERT INTO `user`(username,birthday,sex,address) VALUES(#
    {username},#{birthday},#{sex},#{address})")
      public void save(User user);
        
      @Update("UPDATE `user` SET username = #{username},birthday = #{birthday},sex
    = #{sex},address = #{address} WHERE id = #{id}")
      public void update(User user);
              
      @Delete("DELETE FROM `user` where id = #{id}")
      public void delete(Integer id);
    }
    
  • 测试类

    / 查询
      @Test
      public void testFindAll() throws Exception {
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> list = userMapper.findAll();
        for (User user : list) {
          System.out.println(user);
       }
     }
      // 添加
      @Test
      public void testSave() throws Exception {
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = new User();
        user.setUsername("于谦");
        user.setBirthday(new Date());
        user.setSex("男");
        user.setAddress("北京德云社");
        userMapper.save(user);
     }
      // 更新
      @Test
      public void testUpdate() throws Exception {
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = new User();
        user.setId(49);
        user.setUsername("郭德纲");
        user.setBirthday(new Date());
        user.setSex("男");
        user.setAddress("北京德云社");
        userMapper.update(user);
     }
      // 删除
      @Test
      public void testDelete() throws Exception {
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        userMapper.delete(49);
     }
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿红

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值