• 集成MyBatis 框架


    <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.tszr</groupId>
        <artifactId>mango-admin2</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.3.RELEASE</version>
        </parent>
        
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.hibernate.validator</groupId>
                        <artifactId>hibernate-validator</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            
            <!-- swagger -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.9.2</version>
            </dependency>
            
            <!-- mybatis -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            
            <!-- mysql -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.28</version><!--$NO-MVN-MAN-VER$ -->
            </dependency>
        </dependencies>
        
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
            
            <!-- 打包时拷贝MyBatis的映射文件 -->
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/sqlmap/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
                <resource>  
                    <directory>src/main/resources</directory>  
                        <includes> 
                            <include>**/*.*</include>  
                        </includes> 
                        <filtering>true</filtering>  
                </resource> 
            </resources>
        </build>
    </project>
    server:
      port: 8320
      
    spring:
      application:
        name: mango-admin2
      datasource:
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/mango?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8
        username: root
        password: admin
    package com.tszr.config;
    
    import javax.sql.DataSource;
    
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
    
    @Configuration
    @MapperScan("com.tszr.**.dao") // 扫描DAO
    public class MyBatisConfig {
        @Autowired
        private DataSource dataSource;
    
        @Bean
        public SqlSessionFactory sqlSessionFactory() throws Exception {
            SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
            sessionFactory.setDataSource(dataSource);
            sessionFactory.setTypeAliasesPackage("com.tszr.**.model"); // 扫描Model
    
            PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
            sessionFactory.setMapperLocations(resolver.getResources("classpath*:**/sqlmap/*.xml")); // 扫描映射文件
    
            return sessionFactory.getObject();
        }
    }
    package com.tszr.dao;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Param;
    
    import com.tszr.model.SysUser;
    
    public interface SysUserMapper {
        int deleteByPrimaryKey(Long id);
    
        int insert(SysUser record);
    
        int insertSelective(SysUser record);
    
        SysUser selectByPrimaryKey(Long id);
    
        int updateByPrimaryKeySelective(SysUser record);
    
        int updateByPrimaryKey(SysUser record);
        
        List<SysUser> findPage();
        
        List<SysUser> findAll();
        
        SysUser findByName(@Param(value="name") String name);
        
        List<SysUser> findPageByName(@Param(value="name") String name);
        
        List<SysUser> findPageByNameAndEmail(@Param(value="name") String name, @Param(value="email") String email);
    }
    package com.tszr.model;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.tszr.model.BaseModel;
    import com.tszr.model.SysUserRole;
    
    public class SysUser extends BaseModel{
        private String name;
    
        private String nickName;
    
        private String avatar;
    
        private String password;
    
        private String salt;
    
        private String email;
    
        private String mobile;
    
        private Byte status;
    
        private Long deptId;
    
        private Byte delFlag;
    
        // 非数据库字段
        private String deptName;
        // 非数据库字段
        private String roleNames;
        // 非数据库字段
        private List<SysUserRole> userRoles = new ArrayList<>();
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getNickName() {
            return nickName;
        }
    
        public void setNickName(String nickName) {
            this.nickName = nickName;
        }
    
        public String getAvatar() {
            return avatar;
        }
    
        public void setAvatar(String avatar) {
            this.avatar = avatar;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getSalt() {
            return salt;
        }
    
        public void setSalt(String salt) {
            this.salt = salt;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getMobile() {
            return mobile;
        }
    
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        public Byte getStatus() {
            return status;
        }
    
        public void setStatus(Byte status) {
            this.status = status;
        }
    
        public Long getDeptId() {
            return deptId;
        }
    
        public void setDeptId(Long deptId) {
            this.deptId = deptId;
        }
    
        public Byte getDelFlag() {
            return delFlag;
        }
    
        public void setDelFlag(Byte delFlag) {
            this.delFlag = delFlag;
        }
    
        public String getDeptName() {
            return deptName;
        }
    
        public void setDeptName(String deptName) {
            this.deptName = deptName;
        }
    
        public String getRoleNames() {
            return roleNames;
        }
    
        public void setRoleNames(String roleNames) {
            this.roleNames = roleNames;
        }
    
        public List<SysUserRole> getUserRoles() {
            return userRoles;
        }
    
        public void setUserRoles(List<SysUserRole> userRoles) {
            this.userRoles = userRoles;
        }
    }
    package com.tszr.model;
    
    import com.tszr.model.BaseModel;
    
    public class SysUserRole extends BaseModel{
        private Long userId;
    
        private Long roleId;
    
        public Long getUserId() {
            return userId;
        }
    
        public void setUserId(Long userId) {
            this.userId = userId;
        }
    
        public Long getRoleId() {
            return roleId;
        }
    
        public void setRoleId(Long roleId) {
            this.roleId = roleId;
        }
    }
    package com.tszr.model;
    
    import java.util.Date;
    
    public class BaseModel {
    private Long id;
        
        private String createBy;
    
        private Date createTime;
    
        private String lastUpdateBy;
    
        private Date lastUpdateTime;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getCreateBy() {
            return createBy;
        }
    
        public void setCreateBy(String createBy) {
            this.createBy = createBy;
        }
    
        public Date getCreateTime() {
            return createTime;
        }
    
        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
    
        public String getLastUpdateBy() {
            return lastUpdateBy;
        }
    
        public void setLastUpdateBy(String lastUpdateBy) {
            this.lastUpdateBy = lastUpdateBy;
        }
    
        public Date getLastUpdateTime() {
            return lastUpdateTime;
        }
    
        public void setLastUpdateTime(Date lastUpdateTime) {
            this.lastUpdateTime = lastUpdateTime;
        }
    }
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.tszr.dao.SysUserMapper">
        <resultMap id="BaseResultMap" type="com.tszr.model.SysUser">
            <id column="id" jdbcType="BIGINT" property="id" />
            <result column="name" jdbcType="VARCHAR" property="name" />
            <result column="nick_name" jdbcType="VARCHAR" property="nickName" />
            <result column="avatar" jdbcType="VARCHAR" property="avatar" />
            <result column="password" jdbcType="VARCHAR" property="password" />
            <result column="salt" jdbcType="VARCHAR" property="salt" />
            <result column="email" jdbcType="VARCHAR" property="email" />
            <result column="mobile" jdbcType="VARCHAR" property="mobile" />
            <result column="status" jdbcType="TINYINT" property="status" />
            <result column="dept_id" jdbcType="BIGINT" property="deptId" />
            <result column="create_by" jdbcType="VARCHAR" property="createBy" />
            <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
            <result column="last_update_by" jdbcType="VARCHAR" property="lastUpdateBy" />
            <result column="last_update_time" jdbcType="TIMESTAMP" property="lastUpdateTime" />
            <result column="del_flag" jdbcType="TINYINT" property="delFlag" />
      </resultMap>
      
      <sql id="Base_Column_List">
            id, name, nick_name, avatar, password, salt, email, mobile, status, dept_id, create_by, 
            create_time, last_update_by, last_update_time, del_flag
      </sql>
      
      <select id="findAll" resultMap="BaseResultMap">
          select 
              <include refid="Base_Column_List" />
          from sys_user
      </select>
      
    </mapper>
    package com.tszr.service;
    
    import java.util.List;
    
    import com.tszr.model.SysUser;
    
    public interface SysUserService{
        List<SysUser> findAll();
    }
    package com.tszr.service.impl;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.tszr.dao.SysUserMapper;
    import com.tszr.model.SysUser;
    import com.tszr.service.SysUserService;
    
    @Service
    public class SysUserServiceImpl implements SysUserService {
        @Autowired
        private SysUserMapper sysUserMapper;
        @Override
        public List<SysUser> findAll() {
            return sysUserMapper.findAll();
        }
    
    }
    package com.tszr.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.tszr.service.SysUserService;
    
    @RestController
    @RequestMapping("user")
    public class SysUserController {
        @Autowired
        private SysUserService sysUserService;
        
        @GetMapping(value="/findAll")
        public Object findAll() {
            return sysUserService.findAll();
        }
    }
    package com.tszr;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class MangoAdminApplication {
        public static void main(String[] args) {
            SpringApplication.run(MangoAdminApplication.class, args);
        }
    }

  • 相关阅读:
    康威定律和系统设计——《微服务设计》读书笔记
    安全——《微服务设计》读书笔记
    监控——《微服务设计》读书笔记
    测试——《微服务设计》读书笔记
    [转]Linux 系统挂载数据盘
    部署:持续集成(CI)与持续交付(CD)——《微服务设计》读书笔记
    拆分:分解单块系统——《微服务设计》读书笔记
    Unused Method(不再使用的方法)——Dead Code(死亡代码)
    使用Fortify进行代码静态分析(系列文章)
    NEUACM1132: Renew MST Quickly 增量最小生成树
  • 原文地址:https://www.cnblogs.com/tszr/p/15889548.html
Copyright © 2020-2023  润新知