目录

  • 一、创建一个springboot工程
  • 1、在pom中添加数据库依赖:
  • 2、创建包(如果用逆向工程,这步可以省略,会自动生成):
  • 二、配置application.properties
  • 配置mapper.xml
  • 方法一
  • 方法二
  • 用Mybatis提供的逆向工程生成实体bean,映射文件,DAO接口
  • 测试Mybatis


一、创建一个springboot工程

1、在pom中添加数据库依赖:

<!--MYSQL驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--Mybatis整合springboot的起步依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

注:在之后的实践中,这一步会报错,需要在pom中添加:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>


2、创建包(如果用逆向工程,这步可以省略,会自动生成):

hibernate逆向工程Java spring逆向工程_spring

二、配置application.properties

注:如果添加了mysql依赖直接运行的话会报错,需要配置下面的内容

#设置连接数据库的配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/learn_springboot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456

配置mapper.xml

方法一

配置pom.xml
原因:如果没有这段代码,会发现编译文件target文件中没有xml文件,运行会报错,找不到sql!!!!!(两个resource必须都有,如果只有第一个,则resources中的配置文件就扫描不到,会报错)

<!--手动指定文件夹为resources-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
             <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

方法二

在resources中创建一个dictionary

并把mapper中的xml(逆向工程自动生成)移动到这里

hibernate逆向工程Java spring逆向工程_spring boot_02


配置application.properties

#指定MyBatis映射文件的路径
mybatis.mapper-locations=classpath:mapper/*.xml

用Mybatis提供的逆向工程生成实体bean,映射文件,DAO接口

项目根目录创建 GeneratorMapper.xml

hibernate逆向工程Java spring逆向工程_spring boot_03

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

    <!-- 指定连接数据库的JDBC驱动包所在位置,指定到你本机的完整路径 -->
    <classPathEntry location="D:/course/repository/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.jar"/>

    <!-- 配置table表信息内容体,targetRuntime指定采用MyBatis3的版本 -->
    <context id="tables" targetRuntime="MyBatis3">

        <!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <!-- 配置数据库连接信息 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/learn_springboot"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        
        <!-- 生成model类,targetPackage指定model类的包名, targetProject指定生成的model放在eclipse的哪个工程下面-->
        <javaModelGenerator targetPackage="com.zhw.springboot.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="false" />
        </javaModelGenerator>

        <!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 -->
        <sqlMapGenerator targetPackage="com.zhw.springboot.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名, targetProject指定生成的Mapper接口放在eclipse的哪个工程下面 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.zhw.springboot.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 数据库表名及对应的Java模型类名 -->
        <table tableName="t_student"  domainObjectName="Student"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
    </context>

</generatorConfiguration>

是需要稍作修改的

pom中添加代码自动生成插件

<!--mybatis代码自动生成插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <!--配置文件的位置-->
                    <configurationFile>GeneratorMapper.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

点击生成:

hibernate逆向工程Java spring逆向工程_spring_04


hibernate逆向工程Java spring逆向工程_spring boot_05


原因:

hibernate逆向工程Java spring逆向工程_hibernate逆向工程Java_06


这个包必须在这个路径下,所以找到我们电脑上这个的路径,或者下载,

改成可以找到的路径:

hibernate逆向工程Java spring逆向工程_xml_07


再次点击生成:

hibernate逆向工程Java spring逆向工程_hibernate逆向工程Java_08

hibernate逆向工程Java spring逆向工程_xml_09


这样的话代码分3层,1层已经写完了!!!!

测试Mybatis

创建Controller类

@Controller
public class StudentController {

    @Autowired
    private StudentService studentService;

    @RequestMapping("/student")
    @ResponseBody
    public Object student(Integer id){
        Student student=studentService.queryStudentById(id);
        return  student;
    }
}

会发现Service报错
创建接口和实现类

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;

    @Override
    public Student queryStudentById(Integer id) {
        Student student= studentMapper.selectByPrimaryKey(id);
        return student;
    }
}
public interface StudentService {

    Student queryStudentById(Integer id);
}

修改Mapper

@Mapper
public interface StudentMapper {

运行结果:

hibernate逆向工程Java spring逆向工程_spring boot_10