提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 MySQL 8.0.13,调试没有问题。
如果失败,建议使用相同的项目结构,包名,进行重试,博主也是多次调试,才成功。一些常见问题,看报错提示信息是可以看懂的,加油。
整个项目的源代码,最后,也会给出下载链接。
这是根据数据库,生成后的项目结构:
mybatis-geneator 是一款 mybatis 自动代码生成工具,可以通过配置,快速生成 mapper 和 xml 文件。
(1)在项目的 pom.xml 文件中添加插件配置
详细的 pom.xml 配置:
<plugin>
<groupId>org.mybatis.generatorgroupId>
<artifactId>mybatis-generator-maven-pluginartifactId>
<version>1.3.7version>
<dependencies>
<dependency>
<groupId>org.mybatis.generatorgroupId>
<artifactId>mybatis-generator-coreartifactId>
<version>1.3.7version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.13version>
dependency>
dependencies>
<executions>
<execution>
<id>mybatis generatorid>
<phase>packagephase>
<goals>
<goal>generategoal>
goals>
<configuration>
<verbose>trueverbose>
<overwrite>trueoverwrite>
<configurationFile>
src/main/resources/generatorConfig.xml
configurationFile>
configuration>
execution>
executions>
plugin>
(2)根据自己配置的文件路径及名称,创建相应 generatorConfig.xml 文件,位置如下图:
(3)先手动创建一些目录,在配置的时候回有提示,大大降低出错概率,整体目录结构:
之前介绍过多次命令行创建数据库表了,查看 MySQL - 最经典的 命令行操作数据库 + 表(增删改查实例)
这次使用 Navicat for MySQL,如果没有安装请参考:Navicat for MySQL 最新版安装与破解 + 报错解决办法
(1)建立连接,创建数据库:
(2)数据库名,选择编码:
(4)填写表信息:
主键:
表名为 user_info
(6)细心的你可能发现了没有 upwd 存密码的字段,我们这里放在另外一张表上,新建表 user_pwd:
(1)编辑 mybatis-generator.xml 文件:
(重要!)
(请详细看注释!自行修改自己的配置信息)
修改目录请自行对应,可放大查看:
generatorConfig.xml 文件源代码:
<generatorConfiguration>
<context id="default" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC"
userId="root"
password="xiaopengwei">
jdbcConnection>
<javaModelGenerator targetPackage="com.miaoshapro.dataobject"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
<property name="constructorBased" value="true" />
<property name="trimStrings" value="true" />
<property name="immutable" value="false" />
javaModelGenerator>
<sqlMapGenerator targetPackage="mapping"
targetProject=".\src\main\resources">
<property name="enableSubPackages" value="false" />
sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.miaoshapro.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
javaClientGenerator>
<table tableName="user_info" domainObjectName="UserDO">
table>
<table tableName="user_pwd" domainObjectName="UserPwdDO">
table>
context>
generatorConfiguration>
如果不想要那个 Example 一堆,编辑 mybatis-generator.xml 文件:
<generatorConfiguration>
<context id="default" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC"
userId="root"
password="xiaopengwei">
jdbcConnection>
<javaModelGenerator targetPackage="com.miaoshapro.dataobject"
targetProject=".\src\main\java">
<property name="enableSubPackages" value="false" />
<property name="constructorBased" value="true" />
<property name="trimStrings" value="true" />
<property name="immutable" value="false" />
javaModelGenerator>
<sqlMapGenerator targetPackage="mapping"
targetProject=".\src\main\resources">
<property name="enableSubPackages" value="false" />
sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.miaoshapro.dao" targetProject=".\src\main\java">
<property name="enableSubPackages" value="true" />
javaClientGenerator>
<table tableName="user_info" domainObjectName="UserDO"
enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false">
table>
<table tableName="user_pwd" domainObjectName="UserPwdDO"
enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false">
table>
context>
generatorConfiguration>
(2)配置 application.properties 文件
#自定义端口
server.port=8090
mybatis.mapper-locations=classpath:mapping/*.xml
spring.datasource.name=miaosha
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=xiaopengwei
# 使用 druid 数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
(1)编辑 main/java/com.包名。。 下面的 App.java 文件:
package com.miaoshapro;
import com.miaoshapro.dao.UserDOMapper;
import com.miaoshapro.dataobject.UserDO;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Hello world!
*
*/
//自动配置注解,自动扫描,加载到项目工程中
@SpringBootApplication(scanBasePackages = {"com.miaoshapro"})
@RestController
@MapperScan("com.miaoshapro.dao")
public class App {
@Autowired(required = false)
private UserDOMapper userDOMapper;
//请求映射,当请求 /home 时执行该方法
@RequestMapping("/home")
public String home(){
UserDO userDO = userDOMapper.selectByPrimaryKey(1);
if (userDO == null){
return "用户对象不存在";
}else
return userDO.getUname();
}
public static void main( String[] args ) {
System.out.println( "Hello World!" );
//启动 Web 容器
SpringApplication.run(App.class, args);
}
}
(2)打开浏览器访问,(默认端口是 8080 ,这里是配置文件中修改的):
http://localhost:8090/home
(3)查看结果:
因为在 App 中我们测试的,通过主键为 1 进行查询,并返回结果:
(4)成功!
我正在参加 CSDN 2018 年博客之星评选,希望大家能支持我,
我是【No. 001】号 肖朋伟 ,感谢大家宝贵的一票 ^_^/
投票地址:https://bss.csdn.net/m/topic/blog_star2018/index