(四)mybatis逆向工程
构建
逆向工程就是说通过数据库当中的表生成class,mapper,接口,不需要自己编写那些,很方便。跟symfony里面的自动生成是一样的;视频里的人说用的不多,但我觉得很方便呀
具体步骤,首先导入MyBatis-generator-core.jar,
之后复制一下generator.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>
<!--数据库驱动-->
<!--
如果IDE(eclipse或者idea) 项目里导入了jar包,那么就不需要配置了jar包的绝对路径了
<classPathEntry location="e:/project/mybatis/lib/mysql-connector-java-5.0.8-bin.jar"/>
-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection userId="root" driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis_generator?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT" password="wen52010">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置-->
<javaModelGenerator targetPackage="Entity" targetProject="src">
<!-- <property name="enableSubPackages" value="true"/>-->
<!-- <property name="trimStrings" value="true"/>-->
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="Mapper" targetProject="src">
<!-- <property name="enableSubPackages" value="true"/>-->
</sqlMapGenerator>
<!--生成Dao类存放位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="Mapper" targetProject="src">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="Student"></table>
<table tableName="Adress"></table>
<!--生成对应表及类名-->
<!-- <table tableName="category_" domainObjectName="Category" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="true" selectByExampleQueryId="false">-->
<!-- <property name="my.isgen.usekeys" value="true"/>-->
<!-- <generatedKey column="id" sqlStatement="JDBC"/>-->
<!-- </table>-->
<!-- <table tableName="product_" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> -->
</context>
</generatorConfiguration>
将路径名,表明等更改正确,
main函数之中,复制以下代码,运行就Ok,
File file = new File("src/generator.xml"); List<String> warnings = new ArrayList<String>();
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(file);
DefaultShellCallback callback = new DefaultShellCallback(true);
MyBatisGenerator generator = new MyBatisGenerator(config,callback,warnings);
generator.generate(null);
如何使用:
生成之后可以看到有两种class,一种是student,另一种是studentExample,我们具体使用时候就是通过example来使用的;
Reader reader = Resources.getResourceAsReader("config.xml");
//connection
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sessionFactory.openSession(); StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class); / /studentMapper StudentExample studentExample = new StudentExample(); // 构建查询条件
StudentExample.Criteria criteria = studentExample.createCriteria();
criteria.andIdBetween(,); // id在1,2之间
criteria.andNameLike("%飞%"); //模糊查询名字
// 调用mapper方法进行查询
List<Student> students = studentMapper.selectByExample(studentExample); / / 传入查询条件类进行查询
for (Student temp:students
) {System.out.println(temp);
}
这里是通过初始化一个studentExample类,之后对它的criteria添加一些条件,再将studentExample传入查询mapper的某一个方法中就行了。
当然我们也可以有两个criteria,相当于sql语句查询条件是 or 的关系
如下示例,我们再创建一个criteria
StudentExample.Criteria criteria2 = studentExample.createCriteria();
criteria2.andNameLike("%三%");
查询时默认使用第一个criteria,如果要拼接为或关系的话,使用:
studentExample.or(criteria2);
这样子,查询时构建的sql语句条件就是用or连接两个criteria
(四)mybatis逆向工程的更多相关文章
- 浅析MyBatis(四):全自动写代码的MyBatis逆向工程
在前面几篇文章中,笔者介绍了 MyBatis 的运行流程,在此基础上简单介绍了手写 MyBatis 简易框架与自定义 MyBatis 插件的步骤,相信大家对于 MyBatis 框架的使用流程已经游刃有 ...
- mybatis框架(7)---mybatis逆向工程
mybatis逆向工程 逆向工程的目的就是缩减了我们的开发时间.所谓mybatis逆向工程,就是mybatis会根据我们设计好的数据表,自动生成pojo.mapper以及mapper.xml. 接 ...
- 学习笔记01(mybatis逆向工程)
今天来看看一个常用的小功能,就是mybatis的逆向工程.(数据库是mysql) 什么是逆向工程呢?看名字就知道反方向的一个什么工程! 其实啊,如果是平常我们自己学习实践一些小项目的时候,应该是先瞎写 ...
- Mybatis逆向工程生成po、mapper接口、mapper.xml
Mybatis逆向工程生成po.mapper接口.mapper.xml 一.新建一个maven工程 请查看我的另一篇博客:<使用idea创建一个maven工程> 二.引入所需依赖 需要my ...
- SpringBoot 3.SpringBoot 整合 MyBatis 逆向工程以及 MyBatis 通用 Mapper
一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...
- mybatis逆向工程总结工具类
逆向工程字面意思就是反向生成工程,和hibernate一样mybatis也有自己的逆向工程工具,hibernate的逆向生成我没有做过,不过我猜大概都已样,再说,hibernate的现在使用很少了,到 ...
- Mybatis学习笔记(九) —— Mybatis逆向工程
一.什么是Mybatis逆向工程? 简单的解释就是通过数据库中的单表,自动生成java代码. 我们平时在使用Mabatis框架进行Web应用开发的过程中,需要根据数据库表编写对应的Pojo类和Mapp ...
- 品优购商城项目(一)mybatis逆向工程
第一阶段 dubboX和mybatis逆向工程 用了四天时间才完成品优购项目前两天的任务. 1.其中主要遇到的坑就是zookeeper服务消费者无法调用的问题.造成这个问题的主要原因就是忽略了dubb ...
- mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比,于是写了个插件。
使用mybatis逆向工程的时候,delete方法的使用姿势不对,导致表被清空了,在生产上一刷新后发现表里没数据了,一股凉意从脚板心直冲天灵盖. 于是开发了一个拦截器,并写下这篇文章记录并分享. 这锅 ...
- mybatis0212 mybatis逆向工程 (MyBatis Generator)
1mybatis逆向工程 (MyBatis Generator) .1什么是mybatis的逆向工程 mybatis官方为了提高开发效率,提高自动对单表生成sql,包括生成 :mapper.xml.m ...
随机推荐
- 一个简单的spring boot程序
搭建一个spring boot项目十分的方便,网上也有许多,可以参考 https://www.cnblogs.com/ityouknow/p/5662753.html 进行项目的搭建.在此我就不详细介 ...
- 【记】VirtualBox安装CentOS6
推荐随笔 VirtualBox中安装CentOS-6.6虚拟机 问题1: 在选择虚拟硬盘大小时,最好不要用默认的8G 我的分区 /boot 200M swap 1024M /home 4096M / ...
- 客户端进行定位(无地图API)
需求: 根据用户浏览的所在城市加载相应的县级列表 思路: 使用搜索的服务找出当前用户的IP,然后使用百度的服务通过IP进行定位 源码: <!DOCTYPE html> <html&g ...
- 【X86】---X86处理器大小端的数据存储验证
之前也关注过大小端的存储,可能时间久了,加之又之前的电脑抽象换成了当前的处理器寄存器的值判断,导致自己总是有点蒙圈.看Spec手册的时候,有时会无法与手册中某个Bit的值与RU/RW工具读出来的对应上 ...
- Java框架之SpringMVC 03-RequestMapping-请求数据-响应数据
SpringMVC SpringMVC是一种轻量级的.基于MVC的Web层应用框架. 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口. 采用了松散耦合可插拔组件结构,比 ...
- java 语句流程
一.if条件判断 太简单,不加说明 二.switch条件选择语句 注意: 1.switch(表达式),表达式的数据类型 byte/short/char/int/String/enum 2.别忘记写br ...
- restframewor 版本(version)
1.路由 a.一级路由 from django.contrib import admin from django.urls import path, include from api import u ...
- windows命令行(终端)怎么复制粘贴
原文地址:https://jingyan.baidu.com/article/335530daf96f3a19cb41c3f4.html 终端打开后,我们可以简单的ping一下,查看一下连接地址 ...
- L1和L2:损失函数和正则化
作为损失函数 L1范数损失函数 L1范数损失函数,也被称之为最小绝对值误差.总的来说,它把目标值$Y_i$与估计值$f(x_i)$的绝对差值的总和最小化. $$S=\sum_{i=1}^n|Y_i-f ...
- 痞子衡嵌入式:语音处理工具pzh-speech诞生记(4)- 音频录播实现(PyAudio)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具pzh-py-speech诞生之音频录播实现. 音频录播是pzh-py-speech的主要功能,pzh-py-speech借 ...