企业网站定制开发手把手教你springboot集成mybatis

企业网站定制开发手把手教你springboot集成

企业网站定制开发很多小伙伴工作多年,企业网站定制开发但是在每次开始一个新企业网站定制开发项目的时候都要重新开企业网站定制开发始搭建项目。企业网站定制开发另一个就是新手小伙伴企业网站定制开发对于项目如何从零开始企业网站定制开发搭建的还存在疑问。企业网站定制开发在这片文章中,企业网站定制开发正好一次性解决这两个问题。

企业网站定制开发这是该项目的,企业网站定制开发大家可以点击下载使用,企业网站定制开发也欢迎大家start,谢谢。

首先,企业网站定制开发我们需要创建一个springboot项目。创建方式分为两种:

1. 创建springboot项目

  • 使用企业版idea创建

 

直接选择【Finish】完成。此时创建了一个空的springboot项目。

  • springboot官网创建

    点击进入

 

最终下载到一个zip文件,解压缩后通过idea导入

2. 添加Maven依赖

打开新生成的springboot项目,可以看到pom.xml里面只有少数几个依赖:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.7.2</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.example</groupId>
  12. <artifactId>demo1</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>demo1</name>
  15. <description>demo1</description>
  16. <properties>
  17. <java.version>11</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter-test</artifactId>
  27. <scope>test</scope>
  28. </dependency>
  29. </dependencies>
  30. <build>
  31. <plugins>
  32. <plugin>
  33. <groupId>org.springframework.boot</groupId>
  34. <artifactId>spring-boot-maven-plugin</artifactId>
  35. </plugin>
  36. </plugins>
  37. </build>
  38. </project>
  39. 复制代码

为了让项目功能相对完善,我们需要补充以下依赖:

  • 基本的Spring和Spring MVC功能

    1. <!-- spring + spring mvc一套 -->
    2. <dependency>
    3. <groupId>org.springframework.boot</groupId>
    4. <artifactId>spring-boot-starter-web</artifactId>
    5. </dependency>
    6. 复制代码

    加上这个依赖后,可以使用spring和spring mvc的功能,比如@RestController,@Service,@Autowired,@RequestMapping等等,IOC和AOP的功能都可以使用。

  • 数据库引擎 mysql driver

    1. <!-- 【数据库】mysql driver -->
    2. <dependency>
    3. <groupId>mysql</groupId>
    4. <artifactId>mysql-connector-java</artifactId>
    5. <version>8.0.29</version>
    6. </dependency>
    7. 复制代码

    目前基本上使用的mysql都是8版本的,所以这里引入8版本的mysql driver;如果有需要引入其他数据库引擎的,可以到中找合适的依赖。

  • 数据库链接池

    1. <!--【数据库】数据库连接池-->
    2. <dependency>
    3. <groupId>com.alibaba</groupId>
    4. <artifactId>druid</artifactId>
    5. <version>1.2.11</version>
    6. </dependency>
    7. 复制代码

    一般像数据库链接这样的资源都是比较重的,也就是说,数据库链接创建和销毁需要消耗很多资源,并且数据库链接是经常使用的。那么对于这种情况,一般我们会将数据库链接进行池化,这也就是我们使用druid的原因。如果小伙伴想使用其他的池化工具,比如dbcp,c3p0,HikariCP等等,也是可以替换的。

  • mybatis依赖

    1. <!--【数据库】持久层框架 mybatis-->
    2. <dependency>
    3. <groupId>org.mybatis.spring.boot</groupId>
    4. <artifactId>mybatis-spring-boot-starter</artifactId>
    5. <version>2.2.2</version>
    6. </dependency>
    7. 复制代码

    mybatis其实就是一个基于数据库driver实现数据增删查改功能,并且将操作结果更加友好传递给java应用层的工具。如果没有mybatis的话,我们也可以自己基于driver去操作数据库,但是使用体验确实不好,或者我们自己重新创造一个类似的mybatis框架。

  • 分页依赖

    1. <!--【数据库】分页插件-->
    2. <dependency>
    3. <groupId>com.github.pagehelper</groupId>
    4. <artifactId>pagehelper-spring-boot-starter</artifactId>
    5. <version>1.4.3</version>
    6. </dependency>
    7. 复制代码

    在业务需求上,我们的某些列表功能往往需要对数据进行分页查询。所以我们提前把这个工具引入进来,它可以在我们执行查询操作的时候,对查询功能实现自动分页,无需开发者过多干预。

  • lombok工具

    1. <!--【工具】lombok -->
    2. <dependency>
    3. <groupId>org.projectlombok</groupId>
    4. <artifactId>lombok</artifactId>
    5. <optional>true</optional>
    6. </dependency>
    7. 复制代码

    这个工具很有用,它让我们避免了写过多的get,set方法,可以自动生成构造函数,hashcode方法,equals方法等等,这就是典型的效率工具,所以强烈推荐使用。

3. 添加插件

  • mybatis-generator插件

    1. <!-- mybatis-generator maven插件,用于生成DAO代码 -->
    2. <plugin>
    3. <groupId>org.mybatis.generator</groupId>
    4. <artifactId>mybatis-generator-maven-plugin</artifactId>
    5. <version>1.4.1</version>
    6. <configuration>
    7. <verbose>true</verbose>
    8. <overwrite>true</overwrite>
    9. <!-- mybatis-generator配置文件路径 --><configurationFile>${basedir}/src/main/resources/mybatis/generator/generatorConfig.xml
    10. </configuration>
    11. </plugin>
    12. 复制代码

    这是一个代码生成工具,它可以帮我们生成大多数的mybatis代码,比如生成单表的增删查改功能,还有就是单表的复杂条件查询功能。所以这也是一个效率功能,可以少写很多代码。

    插件添加完成后,可以在maven视图中可以看到mybatis-generator插件:

 

但是这个插件还不能正常运行,需要后面我们配置好后才行。

4. 配置项目

我们配置了依赖和插件后,需要把一些对应的项目配置也写好,这样才能让这个项目正常运行起来。

配置文件的话,我目前选择比较好用的yml格式的application.yml,小伙伴们也可以把项目中的application.properties重命名一下,改成application.yml。

  • 数据库配置

    1. spring:
    2. # 数据库链接配置
    3. datasource:
    4. url: jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
    5. driver-class-name: com.mysql.cj.jdbc.Driver
    6. username: 数据库用户名
    7. password: 数据库密码
    8. # 链接池
    9. type: com.alibaba.druid.pool.DruidDataSource
    10. druid:
    11. # 链接池初始化大小
    12. initial-size: 8
    13. # 最大活跃数
    14. max-active: 16
    15. # 最小空闲数
    16. min-idle: 1
    17. # 最大等待时间
    18. max-wait: 60000
    19. 复制代码

    博客中不方便对外透露我自己的数据库相关ip、端口等数据,所以就用中文替代,小伙伴可以根据自己的数据库的配置作出对应的修改。

    配置完毕后,我们的项目就可以正确链接数据库,并且也已经使用了链接池化的功能了。

  • mybatis配置

    1. # mybatis配置
    2. mybatis:
    3. check-config-location: true
    4. # mybatis框架配置文件,对mybatis的生命周期起作用
    5. config-location: "classpath:mybatis/mybatis-config.xml"
    6. # 配置xml路径
    7. mapper-locations: "classpath:mybatis/mapper/*Mapper.xml"
    8. # 配置model包路径
    9. type-aliases-package: "com.example.awesomespring.dao.entity.*"
    10. 复制代码

    此外,根据以上配置,我们还需要在resources创建mybatis文件夹,以便我们存放对应的mybatis-config.xml文件以及Mapper.xml文件;

    mybatis-config.xml文件是用来配置mybatis框架如何运行的配置;

    Mapper.xml文件是后续通过mybatis-generator插件自动生成的操作数据库的配置文件;

mybatis-config.xml:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration PUBLIC
  3. "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <settings>
  7. <!-- 全局的映射器启用或禁用缓存。 -->
  8. <setting name="cacheEnabled" value="true"/>
  9. <!-- 全局启用或禁用延迟加载 -->
  10. <setting name="lazyLoadingEnabled" value="true"/>
  11. <!-- 允许或不允许多种结果集从一个单独的语句中返回 -->
  12. <setting name="multipleResultSetsEnabled" value="true"/>
  13. <!-- 使用列标签代替列名 -->
  14. <setting name="useColumnLabel" value="true"/>
  15. <!-- 允许JDBC支持生成的键 -->
  16. <setting name="useGeneratedKeys" value="false"/>
  17. <!-- 配置默认的执行器 -->
  18. <setting name="defaultExecutorType" value="SIMPLE"/>
  19. <!-- 设置超时时间 -->
  20. <setting name="defaultStatementTimeout" value="60"/>
  21. <!-- 设置驼峰标识 -->
  22. <setting name="mapUnderscoreToCamelCase" value="true"/>
  23. </settings>
  24. <plugins>
  25. <!-- 分页插件 -->
  26. <plugin interceptor="com.github.pagehelper.PageInterceptor" />
  27. </plugins>
  28. </configuration>
  29. 复制代码
  • mybatis-generator配置

    前面我们在添加mybatis-generator插件的时候就已经指定了相关配置文件的位置,那么我们就把generatorConfig.xml创建出来

generatorConfig.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!--参数配置-->
  7. <properties resource="mybatis/generator/generator.properties"/>
  8. <!-- 配置mysql 驱动jar包路径.用了绝对路径 -->
  9. <classPathEntry location="${classPathEntry}" />
  10. <context id="mysql_tables" targetRuntime="MyBatis3">
  11. <!-- 防止生成的代码中有很多注释,加入下面的配置控制 -->
  12. <commentGenerator>
  13. <property name="suppressAllComments" value="true" />
  14. <property name="suppressDate" value="true" />
  15. </commentGenerator>
  16. <!-- 数据库连接 -->
  17. <jdbcConnection driverClass="${driverClass}"
  18. connectionURL="${connectionURL}"
  19. userId="${userId}"
  20. password="${password}">
  21. </jdbcConnection>
  22. <javaTypeResolver >
  23. <property name="forceBigDecimals" value="false" />
  24. </javaTypeResolver>
  25. <!-- 数据表对应的model层 -->
  26. <javaModelGenerator targetPackage="${modelTargetPackage}" targetProject="src/main/java">
  27. <property name="enableSubPackages" value="true" />
  28. <property name="trimStrings" value="true" />
  29. </javaModelGenerator>
  30. <!-- sql mapper 映射配置文件 -->
  31. <sqlMapGenerator targetPackage="${sqlMapTargetPackage}" targetProject="src/main/resources">
  32. <property name="enableSubPackages" value="true" />
  33. </sqlMapGenerator>
  34. <!-- mybatis3中的mapper接口 -->
  35. <javaClientGenerator type="XMLMAPPER" targetPackage="${javaClientTargetPackage}" targetProject="src/main/java">
  36. <property name="enableSubPackages" value="true" />
  37. </javaClientGenerator>
  38. <!-- 数据表进行生成操作 schema:相当于库名; tableName:表名; domainObjectName:对应的DO -->
  39. <table schema="${schema}" tableName="${tableName}" domainObjectName="${domainObjectName}">
  40. </table>
  41. </context>
  42. </generatorConfiguration>
  43. 复制代码

这个文件头如果有报红,没有关系,不用管,不影响功能。

通过引入generator.properties的方式,我们把里面一些需要修改的位置全部变量化了,所以我们还需要补充一个generator.properties文件:

  1. # 我们需要提供一个driver包所在的路径,一般在.m2文件夹里面,因为所有maven下载的依赖包都会放在这里;
  2. # 不知道.m2文件夹位置的可以找一下相关资料
  3. classPathEntry=~/.m2/repository/mysql/mysql-connector-java/8.0.29/mysql-connector-java-8.0.29.jar
  4. driverClass=com.mysql.cj.jdbc.Driver
  5. # 一定要改成自己的数据库ip、端口和名称
  6. connectionURL=jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
  7. # 一定要修改成自己的数据库用户名
  8. userId=数据库用户名
  9. # 一定要修改成自己的数据库密码
  10. password=数据库密码
  11. # 实体类所放的包名,根据自己的项目包名修改,记住要提前把包名创建好
  12. modelTargetPackage=com.example.awesomespring.dao.entity
  13. # Mapper.xml存放的路径,在resources里面,记住要提前创建好;要和application.yml里面的mapper-locations路径对上,两个配置的表达方式不同,这个里面不需要加classpath。
  14. sqlMapTargetPackage=mybatis/mapper
  15. # mapper类所放的包名,根据自己的项目包名修改,记住要提前把包名创建好
  16. javaClientTargetPackage=com.example.awesomespring.dao.mapper
  17. # 哪个数据库
  18. schema=awesome_spring
  19. # 哪个表
  20. tableName=account
  21. # 生成的实体类名称
  22. domainObjectName=Account
  23. 复制代码

至此,我们就可以正常运行mybatis-generator插件了,现在我们打开maven视图,双击mybatis-generator插件:

 

完成后,我们会发现项目中已经自动生成了对应的数据表实体类,Mapper接口,Mapper.xml等文件。

另外还需要注意的是,因为我们生成的Mapper.xml是在resources里面,这些文件是需要在项目打包的时候一起打进去的,所以我们还需要配置一下pom.xml中的build操作,把自动生成的Mapper.xml打包进去:

  1. <!--需要打包的资源-->
  2. <resources>
  3. <resource>
  4. <directory>src/main/resources</directory>
  5. <includes>
  6. <include>**/*.properties</include>
  7. <include>**/*.yml</include>
  8. <include>**/*.xml</include>
  9. </includes>
  10. <filtering>true</filtering>
  11. </resource>
  12. </resources>
  13. 复制代码

最终,我们的项目基本配置完毕,最后一步,让springboot扫描所有的mybatis接口,我们需要在springboot启动类加上@MapperScan(basePackages = "mapper类所放的包名")注解;这样springboot就会把所有的Mapper接口全部扫描进去,达到我们在springboot中集成mybatis的目的了。

全部配置完毕后,我们就可以写代码开始一天的crud了,哈哈!

最后,把application.yml和pom.xml展示出来:

application.yml:

  1. spring:
  2. # 数据库链接配置
  3. datasource:
  4. url: jdbc:mysql://数据库ip:数据库端口/数据库名称?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=UTC
  5. driver-class-name: com.mysql.cj.jdbc.Driver
  6. username: 数据库用户名
  7. password: 数据库密码
  8. # 链接池
  9. type: com.alibaba.druid.pool.DruidDataSource
  10. druid:
  11. # 链接池初始化大小
  12. initial-size: 8
  13. # 最大活跃数
  14. max-active: 16
  15. # 最小空闲数
  16. min-idle: 1
  17. # 最大等待时间
  18. max-wait: 60000
  19. # mybatis配置
  20. mybatis:
  21. check-config-location: true
  22. # mybatis框架配置文件,对mybatis的生命周期起作用
  23. config-location: "classpath:mybatis/mybatis-config.xml"
  24. # 配置xml路径
  25. mapper-locations: "classpath:mybatis/mapper/*Mapper.xml"
  26. # 配置model包路径
  27. type-aliases-package: "com.example.awesomespring.dao.entity.*"
  28. # 日志配置
  29. logging:
  30. pattern:
  31. # 日志输出格式
  32. console: "%d{yyyy-MM-dd HH:mm:ss} %clr(%5p) [%thread] %clr(%logger){cyan} : %msg%n"
  33. level:
  34. # trace < debug < info < warn < error < fatal
  35. # 全局日志级别
  36. root: info
  37. # 指定包日志级别
  38. com.example.awesomespring: warn
  39. 复制代码

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.7.2</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.example</groupId>
  12. <artifactId>awesome-spring</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>awesome-spring</name>
  15. <description>awesome-spring</description>
  16. <properties>
  17. <java.version>11</java.version>
  18. </properties>
  19. <dependencies>
  20. <!-- spring + spring mvc一套 -->
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-web</artifactId>
  24. </dependency>
  25. <!--【工具】lombok -->
  26. <dependency>
  27. <groupId>org.projectlombok</groupId>
  28. <artifactId>lombok</artifactId>
  29. <optional>true</optional>
  30. </dependency>
  31. <!--【数据库】DAO框架 mybatis-->
  32. <dependency>
  33. <groupId>org.mybatis.spring.boot</groupId>
  34. <artifactId>mybatis-spring-boot-starter</artifactId>
  35. <version>2.2.2</version>
  36. </dependency>
  37. <!--【数据库】DAO框架分页插件-->
  38. <dependency>
  39. <groupId>com.github.pagehelper</groupId>
  40. <artifactId>pagehelper-spring-boot-starter</artifactId>
  41. <version>1.4.3</version>
  42. </dependency>
  43. <!-- 【数据库】mysql driver -->
  44. <dependency>
  45. <groupId>mysql</groupId>
  46. <artifactId>mysql-connector-java</artifactId>
  47. <version>8.0.29</version>
  48. </dependency>
  49. <!--【数据库】数据库连接池-->
  50. <dependency>
  51. <groupId>com.alibaba</groupId>
  52. <artifactId>druid</artifactId>
  53. <version>1.2.11</version>
  54. </dependency>
  55. <!--测试-->
  56. <dependency>
  57. <groupId>org.springframework.boot</groupId>
  58. <artifactId>spring-boot-starter-test</artifactId>
  59. <scope>test</scope>
  60. </dependency>
  61. </dependencies>
  62. <build>
  63. <!--需要打包的资源-->
  64. <resources>
  65. <resource>
  66. <directory>src/main/resources</directory>
  67. <includes>
  68. <include>**/*.properties</include>
  69. <include>**/*.yml</include>
  70. <include>**/*.xml</include>
  71. </includes>
  72. <filtering>true</filtering>
  73. </resource>
  74. </resources>
  75. <plugins>
  76. <!-- mybatis-generator maven插件,用于生成DAO代码 -->
  77. <plugin>
  78. <groupId>org.mybatis.generator</groupId>
  79. <artifactId>mybatis-generator-maven-plugin</artifactId>
  80. <version>1.4.1</version>
  81. <configuration>
  82. <verbose>true</verbose>
  83. <overwrite>true</overwrite>
  84. <configurationFile>${basedir}/src/main/resources/mybatis/generator/generatorConfig.xml
  85. </configurationFile>
  86. </configuration>
  87. </plugin>
  88. <!-- maven编译插件 -->
  89. <plugin>
  90. <groupId>org.springframework.boot</groupId>
  91. <artifactId>spring-boot-maven-plugin</artifactId>
  92. <configuration>
  93. <excludes>
  94. <exclude>
  95. <groupId>org.projectlombok</groupId>
  96. <artifactId>lombok</artifactId>
  97. </exclude>
  98. </excludes>
  99. </configuration>
  100. </plugin>
  101. </plugins>
  102. </build>
  103. </project>

最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、
Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、
Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、
Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】领取方式【999】就可以领取资料了
 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发