zoukankan      html  css  js  c++  java
  • spring-boot-mybatis

    1. 功能

    连接数据库,进行增删改查操作

    2. 类结构图

    3. 实现

    #实体UserEntity

    package com.jihite.entity;
    
    import com.jihite.enums.SexEnum;
    
    public class UserEntity {
        private Long id;
        private String name;
        private String passwd;
        private SexEnum sex;
    
        public UserEntity() {
    
        }
    
        public UserEntity(String name, String passwd, SexEnum sex) {
            this.id = id;
            this.name = name;
            this.passwd = passwd;
            this.sex = sex;
        }
    
        public long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPasswd() {
            return passwd;
        }
    
        public void setPasswd(String passwd) {
            this.passwd = passwd;
        }
    
        public SexEnum getSex() {
            return sex;
        }
    
        public void setSex(SexEnum sex) {
            this.sex = sex;
        }
    
        @Override
        public String toString() {
            return String.format("+++++ id:%s, name:%s, passwd:%s, sex:%s
    ", id, name, passwd, sex);
        }
    }

    #枚举 SexEnum

    package com.jihite.enums;
    
    public enum SexEnum {
        MAN, WOMAN
    }

    #接口UserMapper

    package com.jihite.mapper;
    
    import com.jihite.entity.UserEntity;
    import com.jihite.enums.SexEnum;
    import org.apache.ibatis.annotations.*;
    import org.springframework.stereotype.Component;
    
    import java.util.List;
    
    @Component
    public interface UserMapper {
        @Select("select * from users")
        @Results({
                @Result(property = "name", column = "userName"),
                @Result(property = "passwd", column = "passWord"),
                @Result(property = "sex", column = "user_sex", javaType = SexEnum.class),
        })
        List<UserEntity> getAll();
    
        @Select("SELECT * FROM users WHERE id=#{id}")
        @Results({
                @Result(property = "name", column = "userName"),
                @Result(property = "passwd", column = "passWord"),
                @Result(property = "sex", column = "user_sex", javaType = SexEnum.class),
        })
        UserEntity getOne(Long id);
    
        @Insert("INSERT INTO users(userName, passWord, user_sex) VALUES(#{name}, #{passwd}, #{sex})")
        void insert(UserEntity user);
    
        @Update("UPDATE users SET userName=#{name}, passWord=#{passwd} where id=#{id}")
        void update(UserEntity user);
    
        @Delete("DELETE from users where id=#{id}")
        void delete(Long id);
    }

    #Application

    package com.jihite;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.jihite.mapper")
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }

    #datasource

    mybatis.type-aliases-package=com.jihite
    
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.url = jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username = username
    spring.datasource.password = passwd

    4. 注释

    4.1 加载datasource

    springboot会自动加载spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper

    我们一切都不用管,直接拿起来使用就行 

    4.2 对mapper包进行扫描

    方法一:在启动类中添加对mapper包扫描@MapperScan

    方法二:直接在Mapper类(UserMapper)上面添加注解@Mapper

    建议使用方法一,不然每个mapper加个注解也挺麻烦的

     

    4.3 @Result

    @Result(property = "name", column = "userName")

    写明了实体字段名(name)和数据库字段(userName)的对应关系

    5. 代码

    链接

  • 相关阅读:
    cocos2dx android java调用C++
    cocos2dx android c++调用java
    cocos2dx android collection
    cocos2dx学习之windows android环境搭建
    windows phone 8.0 与 windows phone7.1区别
    C#文件同步工具教程
    Web2.0时代,RSS你会用了吗?(技术实现总结)
    介绍一篇关于session的好文章,写的很详细(jspservlet 技术)
    利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆
    css
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/9256109.html
Copyright © 2011-2022 走看看