Mybatis之逆向工程

这篇具有很好参考价值的文章主要介绍了Mybatis之逆向工程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、逆向工程概述

二、逆向工程的实现

1、创建一个java工程

2、 第一步:mapper生成配置文件:

3、第二步:使用java类生成mapper文件: 

 4、第三步:拷贝生成的mapper文件到工程中指定的目录中

5、第四步Mapper接口测试


一、逆向工程概述

mybatis是一个ORM框架,ORM对象映射数据库,通过使用对象来操作数据库。逆向工程是指反过来使用数据库反向创建实体类,接口,映射文件。

逆向工程特点:方便开发,简化操作。单表的增删改查都会包括,但是需要注意的是一旦涉及到多表,就需要手动创建。

二、逆向工程的实现

1、创建一个java工程

导入的jar包有:

Mybatis之逆向工程,mybatis,数据库,java,开发语言,tomcat 

2、 第一步:mapper生成配置文件:

在根目录(不是src下)下创建 generatorConfig.xml中配置mapper生成的详细信息,注意改下几点:(修改红色的地方)

(1、 添加要生成的数据库表

(2、 po文件所在包路径

(3、 mapper文件所在包路径

<?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>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/db_school" userId="root"
                        password="123456">

        </jdbcConnection>
        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
            userId="yycg"
            password="yycg">
        </jdbcConnection> -->

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="com.java.domain"
                            targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="com.java.mapper"
                         targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.java.mapper"
                             targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table tableName="user"></table>
        <table tableName="teacher"></table>

        <!-- <table schema="" tableName="sys_user"></table>
        <table schema="" tableName="sys_role"></table>
        <table schema="" tableName="sys_permission"></table>
        <table schema="" tableName="sys_user_role"></table>
        <table schema="" tableName="sys_role_permission"></table> -->

        <!-- 有些表的字段需要指定java类型
         <table schema="" tableName="">
            <columnOverride column="" javaType="" />
        </table> -->
    </context>
</generatorConfiguration>

3、第二步:使用java类生成mapper文件: 

创建类MainDemo(注意,要刷新工程才能看见,千万不要重复生成,重复生成看不到,但是没法用

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class MainDemo {
    public void generator() throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                callback, warnings);
        myBatisGenerator.generate(null);
    }
    public static void main(String[] args) throws Exception {
        try {
            MainDemo generatorSqlmap = new MainDemo();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Mybatis之逆向工程,mybatis,数据库,java,开发语言,tomcat 

 4、第三步:拷贝生成的mapper文件到工程中指定的目录中

Mybatis之逆向工程,mybatis,数据库,java,开发语言,tomcat

5、第四步Mapper接口测试

建一个测试类TsetDeo(记得删除原来的MainDemo类不然会起冲突)

import com.java.domain.User;
import com.java.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class TestDeo {
    private SqlSessionFactory sqlSessionFactory;
    //创建数据库的会话工厂
    @Before
    public void before(){
        InputStream in = null;
        try {
            in = Resources.getResourceAsStream("SqlMapConfig.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
    }
    @Test
    public void test(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.selectByPrimaryKey("1");
        System.out.println(user.getuId()+","+user.getUsername());
    }
}

Mybatis之逆向工程,mybatis,数据库,java,开发语言,tomcat 文章来源地址https://www.toymoban.com/news/detail-782115.html

到了这里,关于Mybatis之逆向工程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NO.08 MyBatis创建逆向工程

    目录 1、前言 2、添加依赖和插件  3、创建MyBatis的核心配置文件  4、创建逆向工程的配置文件  5、执行MBG插件的generate目标 工程的创建有正向工程和逆向工程之分。正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表,如Hibernate是支持正向工程的。 逆向工程:

    2024年02月11日
    浏览(28)
  • MyBatis --- 缓存、逆向工程、分页插件

    一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问 使一级缓存失效的四种情况: 1、不同的SqlSession对应不同的一级缓存 2、同一个SqlSession但是查询条件不同 3、同一个SqlSession两次查询期

    2023年04月09日
    浏览(28)
  • SpringBoot项目中使用mybatis逆向工程

    mybatis逆向工程,即利用现有的数据表结构,生成对应的model实体类、dao层接口,以及对应的mapper.xml映射文件。借助mybatis逆向工程,我们无需手动去创建这些文件。 下面是使用Java代码的方式来实现逆向工程,生成文件(也可以使用插件来生成): 首先,导入需要的依赖包:

    2024年02月08日
    浏览(36)
  • 基于Spring包扫描工具和MybatisPlus逆向工程组件的数据表自动同步机制

    公司产品产出的项目较多。同步数据库表结构工作很麻烦。一个alter语句要跑到N个客户机上执行脚本。超级费时麻烦。介于此,原有方案是把增量脚本放到一resource包下,项目启动时执行逐行执行一次。但由于模块开发人员较多,总有那么一两个机灵鬼漏写脚本。加上项目分

    2024年02月15日
    浏览(34)
  • 认识 MyBatis + MyBatis如何使用 (MyBatis操作数据库)

    本篇介绍了什么是MyBatis,MyBatis的前期配置,MyBatis操作数据库的两种方式:.xml文件 / 注释,使用MyBatis的一些注意,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 MyBatis(ORM: 对象关系映射框架): 一个持久层框架,也是一个工具实现程序与数据库交互,

    2024年02月14日
    浏览(40)
  • MyBatis操作数据库

    MyBatis 是⼀款优秀的 持久层框架 ,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接⼝和 Java POJO(Plain Old Java Objects,普通⽼式 Java 对象)为数据库中的

    2024年02月16日
    浏览(35)
  • MyBatis查询数据库

    1.定义 :         MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。         MyBatis去除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。         MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO (Plain Old Java

    2024年02月04日
    浏览(28)
  • 【Spring Boot】数据库持久层框架MyBatis — MyBatis简介

    本节首先会介绍什么是ORM、什么是MyBatis、MyBatis的特点以及核心概念,最后介绍MyBatis是如何启动、如何加载配置文件的? ORM(Object Relational Mapping,对象关系映射)是为了解决面向对象与关系数据库存在的互不匹配现象的一种技术。简单地说,ORM通过使用描述对象和数据库之

    2024年02月11日
    浏览(25)
  • MyBatis查询数据库(2)

    目录 前言🍭 一、增删查改操作🍭 1、查🍉 Ⅰ、mapper接口:🍓 Ⅱ、UserMapper.xml 查询所有用户的具体实现 SQL:🍓 Ⅲ、进行单元测试🍓 2、增、删、改操作🍉 Ⅰ、增🍓 添加用户🍒 添加用户并且返回自增 id🍒 Ⅱ、改🍓 根据id修改用户名🍒 开启 MyBatis sql 日志打印🍒 Ⅲ、

    2024年02月16日
    浏览(33)
  • MyBatis查询数据库(1)

    ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring + Spring MVC + MyBatis_冷兮雪的博客-CSDN博客 经过前⾯的学习咱们 Spring 系列的基本操作已经实现的差不多了,接下来,咱们来学习更重要的知识,将前端传递的数据存储起来,或者查询

    2024年02月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包