mybatis的逆向工程怎么实现_mybatisinsert

mybatis的逆向工程怎么实现_mybatisinsert1.什么是逆向工程mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…)企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。注意:只能对单表进行操作2.逆向工程的作用myBatis逆向工程可以方便的从数据库中将表自动映射到JAVAPOJO类,并同时生成Mapper.xml和Mapper接…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.什么是逆向工程

mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…)企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。
注意:只能对单表进行操作

2.逆向工程的作用

myBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便便捷,节省了开发时间

3.逆向工程的使用

1.先下载逆向工程
地址:https://github.com/liuhuanCSDN/GitIdeaTest
在这里插入图片描述
2.导入到IDEA中
3.例子:
数据库表:
user表:
在这里插入图片描述
orders表:
在这里插入图片描述
generatorConfig.xml中写:

<?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/mybatis" userId="root"
password="123">
</jdbcConnection>
<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" 
userId="yycg"
password="yycg">
</jdbcConnection> -->
<!-- 默认false,把JDBC DECIMALNUMERIC 类型解析为 Integer,为 true时把JDBC DECIMALNUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.itheima.mybatis.pojo"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.itheima.mybatis.mapper" 
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.itheima.mybatis.mapper" 
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="user"></table>
<table schema="" tableName="orders"></table>
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="user">
<columnOverride column="id" javaType="Long" />
</table> -->
</context>
</generatorConfiguration>

GeneratorSqlmap.class类:


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GeneratorSqlmap { 

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 { 

GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) { 

e.printStackTrace();
}
}
}

运行main函数可以得到mapper和pojo:
在这里插入图片描述
导入项目的目录结构为:
在这里插入图片描述
测试:

package com.itheima.mybatis.junit;
import java.util.List;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.itheima.mybatis.mapper.UserMapper;
import com.itheima.mybatis.pojo.User;
import com.itheima.mybatis.pojo.UserExample;
public class JunitTest { 

@Test
public void testMapper() throws Exception { 

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper = ac.getBean(UserMapper.class);
UserExample example = new UserExample();
String username = "明";
example.createCriteria().andSexEqualTo("1").andUsernameLike("%" + username + "%");
example.setOrderByClause("id desc");
int countByExample = userMapper.countByExample(example);
System.out.println(countByExample);
User user = userMapper.selectByPrimaryKey(10);
System.out.println(user);
List<User> users = userMapper.selectByExample(example);
for (User user2 : users) { 

System.out.println(user2.getId());
}
}
}

其中example.createCriteria()是用来设置条件
再用userMapper.xxByExample(example)得到结果
运行结果:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171828.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 镇远古城特色美食_镇远古城景点

    镇远古城特色美食_镇远古城景点  镇远是贵州东部的一座边城,“九山抱一水,一水分两城”,这里的一水,指的就是舞阳河。镇远古镇被舞阳河以“S”形的婀娜姿势穿越而过,分为南北两岸。这座有着2000多年悠久历史的古镇还保留着许多明清时代的古建筑。  …

  • 程序员表白代码vbs(自己一个人无聊的说说)

    一款无聊的VisualBasicScript表白程序罢了

  • mui的时间控件 picker

    mui的时间控件 pickerhtml,body,.mui-content{height:0px;margin:0px;background-color:#efeff4;}h5.mui-content-padded{margin-left:3px;margin-top:20px!important;}h5.mui-content-padded:first-child

  • Algorithms 普林斯顿算法课程笔记(一)

    Algorithms 普林斯顿算法课程笔记(一)本节将从动态连接性算法(并查集问题的模型)入手,引入算法分析和设计的整体思路和优化方法,为整个课程的引子部分。主要内容包括QuickFind和Quickunion算法,以及这些算法的改进。动态连接性对于连接做如下定义:自反:p连接于自身 对称:若p连接于q,则q连接于p 传递:若p连接q,q连接r那么p连接r我们的算法需要满足上述关于连接的定义。另外,引出了另一个概念…

  • 人工神经网络基本原理[通俗易懂]

    最近谷歌升级版AlphaGo打败众多国内外围棋高手,那狗又火了一把,再次引起大家的关注。作为一个对技术有追求的人,嗯,是时候好好学习当前最火的人工智能与机器学习的相关技术了。学习一项技术,仅仅了解其技术原理是远远不够的,从技术实践中建立感性认识,才能对技术原理有深入的理解。因此,本文先介绍神经网络基本原理,后面系列文章将详细介绍神经网络的成熟算法及网络结构(比如:BP神经网络、RBF、CNN等)并编程实现之。

  • layui弹出层使用「建议收藏」

    layui弹出层使用「建议收藏」一直在用的一个提示层,现在分享给大家,感谢作者贤心//首先引入js文件<scriptsrc=”./layer.js”></script>常用的//提示层layer.msg(‘玩命提示中’)提示后可以继续操作的,这种会显示和拒绝差不多//提示层layer.msg(‘玩命卖萌中’,function(){//关闭后的操作//l…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号