zoukankan      html  css  js  c++  java
  • springboot 结合mybatis

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    注意:

    mysql-connector-java 5.X版本与6.X包类的路径有很大区别,驱动类5.X(com.mysql.jdbc.Driver) 6.X(com.mysql.cj.jdbc.Driver),结合使用时,注意显式依赖。

    springboot版本1.5.6.RELEASE是内含mysql-connector-java 5.1.34的版本

    可以下载此简易封装的jar(增加些常用类型的转换,旧的时间calendar转换,统一处理枚举类型转换数值型)

    源代码下载路径:https://gitee.com/zss_376987715/mybatis-dao

    如何使用:

    1、pom.xml导入依赖

      <dependency>
                <groupId>com.mybatis.dao</groupId>
                <artifactId>mybatis-dao</artifactId>
                <version>2.0.0-SNAPSHOT</version>
                <exclusions>
                    <exclusion>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.6</version><!--$NO-MVN-MAN-VER$-->
            </dependency>

    2、需要枚举转成int存储的枚举 必需实现接口implements DescriptionID

    3、添加mybatisConfig配置类

    @Configuration
    @PropertySource(value={"classpath:/config/jdbc_mysql.properties"},encoding="UTF-8",ignoreResourceNotFound=true) //数据库相关配置信息
    @MapperScan("com.song.boot.mapper")//mybatis mapper接口包路径
    public class MybatisConfig {

        @Autowired
        private Environment env;
        
        @Bean
        public FactoryConfig initDBConfig(){
            FactoryConfig config = new FactoryConfig();
            config.setJdbcDriverClass(env.getProperty("jdbc.driverClass"));
            config.setJdbcUrl(env.getProperty("jdbc.url"));
            config.setJdbcUsername(env.getProperty("jdbc.username"));
            config.setJdbcPassword(env.getProperty("jdbc.password"));
            
            config.setTypeAliasPackage("com.song.boot.domain");//需要映射的实体包路径
            config.setScanEnumPackage("com.song.boot.enumerated");//需要转换的枚举包路径
            return config;
        }
        
        @Bean
        public SessionFactoryConfig initSession(){
            return new SessionFactoryConfig();
        }
        
        @Bean
        public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException{
            return initSession().createSqlSessionFactoryBean();
        }   
    }

    相关代码:

    public interface MemberMapper {

        @Select("select * from sale_member where account = #{account}")
        public Member queryMemberByAccount(String account);
        
        @Insert("insert into member(account,sex,lastLoginTime,birthday) "
                + " values(#{account},#{sex},#{lastLoginTime},#{birthday})")
        public int add(Member member);
    }

    @RestController
    @RequestMapping("member")
    public class MemberController {   
        @Autowired
        private MemberMapper memberMapper;

    }

    public class Member {
        private long id;
        private String account;
        private Sex sex;
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime lastLoginTime;
        @JsonFormat(pattern = "yyyy-MM-dd")
        private LocalDate birthday ;
    }

  • 相关阅读:
    mysql密码忘记如何恢复(windows/liunx版本:mysql8.0.27)
    Visual Studio Code如何校验yaml格式文件
    python测试小工具
    Lunx vimgo 开发环境搭建
    小白学正则表达式之 regexp
    kubernetes scc 故障排查小记
    Go image registry
    OpenShift image registry 概述
    Go 疑难杂症汇总
    小白学标准库之 http
  • 原文地址:https://www.cnblogs.com/song27/p/7591004.html
Copyright © 2011-2022 走看看