Mybatis 代码注解方式实现mapper

Mybatis 简单应用

创建数据库

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(45) NOT NULL,
  `password` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `rolename` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `permission` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `permissionname` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `user_role` (
  `role_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `role_permission` (
  `role_id` int(11) NOT NULL,
  `permission_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

新增依赖

  • MySql Driver Mybatis Framework lombok

部分yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db_laowu?useUnicode=true&characterEncoding=UTF-8
    username: it_laowu
    password: "!Aa123456"

mybatis:
   mapper-locations: classpath:mapper/*.xml
   type-aliases-package: com.it_laowu.springcloud.microservice.entity
   configuration:
     map-underscore-to-camel-case: true

部分代码

entity

package com.it_laowu.springcloud.microservice.entity;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class User implements Serializable {
    
    
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String username;
    private String password;
}

mapper

package com.it_laowu.springcloud.microservice.mapper;
import java.util.List;
import com.it_laowu.springcloud.microservice.entity.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

@Mapper
public interface UserMapper {
    
    

    @Select("SELECT * FROM `user` WHERE username = #{username} limit 1")
    User findByName(@Param("username") String name);

    @Select("SELECT * FROM `user` WHERE username = #{username} ")
    List<User> query(@Param("username") String name);

    @Insert("insert into `user`(username,password) values(#{username},#{password})")
    @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
    int add_fillid(User user);

    @Delete("delete from `user` where id = #{id}")
    int delete(User user);

    @Update("update `user` set username = #{username},password=#{password} where id = #{id}")
    int update(User user);
}

单元测试

package com.it_laowu.springcloud.microservice;
import com.it_laowu.springcloud.microservice.entity.*;
import com.it_laowu.springcloud.microservice.mapper.*;
import com.it_laowu.springcloud.microservice.DemoApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes=DemoApplication.class)
public class MapperTest {
    
    

    @Autowired(required=true)
    UserMapper userMapper;

    @Test
    public void crud(){
    
    
        User user = new User();
        user.setUsername("username1");
        user.setPassword("password1");

        int id = userMapper.insert(user);
        System.out.println("insert result ="+id);
        System.out.println("insert user.id="+user.getId());

        User finduser = userMapper.findByName("username1");
        System.out.println("findByName return="+finduser.toString());

        System.out.println("after insert*********************");
        userMapper.query("username1").forEach(u->{
    
    
            System.out.println("query return="+u.toString());
            u.setPassword("xxxxxxx");
            userMapper.update(u);
        });

        System.out.println("after update*********************");
        userMapper.query("username1").forEach(u->{
    
    
            System.out.println("query return="+u.toString());
            userMapper.delete(u);
        });

        System.out.println("after delete*********************");
        userMapper.query("username1").forEach(u->{
    
    
            System.out.println("query return="+u.toString());
        });
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_36572983/article/details/99618042