iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Mybatis怎么自动生成sql语句
  • 341
分享到

Mybatis怎么自动生成sql语句

2023-06-22 02:06:38 341人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关mybatis怎么自动生成sql语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mybatis自动生成sql语句创建Maven项目,将该配置文件运行即可生成 sql 语

这期内容当中小编将会给大家带来有关mybatis怎么自动生成sql语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Mybatis自动生成sql语句

创建Maven项目,将该配置文件运行即可生成 sql 语句

<?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"><!-- MyBatis 自动生成sql代码  --><generatorConfiguration>    <!-- 导入jar包(路径) -->    <classPathEntry location="E:\CourseWare\MYSQL\Mysql-connector-java-5.1.26-bin.jar" />    <!-- 设置生成代码的规则 targetRuntime 开发环境使用Mybatis3的版本 -->    <context id="DB2Tables" targetRuntime="MyBatis3">        <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin>        <commentGenerator>            <!-- 这个元素用来去除指定生成的注释中是否包含生成的日期 false:表示保护 -->            <!-- 如果生成日期,会造成即使修改一个字段,整个实体类所有属性都会发生变化,不利于版本控制,所以设置为true -->            <property name="suppressDate" value="true" />            <!-- 是否去除自动生成的注释 true:是 : false:否 -->            <property name="suppressAllComments" value="false" />        </commentGenerator>        <!-- 连接数据库的四要素 -->        <jdbcConnection             driverClass="com.mysql.jdbc.Driver"            connectionURL="jdbc:mysql://localhost:3306/user"             userId="root"            passWord="root">        </jdbcConnection>        <!-- 该属性用于指定MyBatis生成器是否应该强制使用java.math。小数点和数字域的BigDecimal -->           <javaTypeResolver>            <property name="forceBigDecimals" value="false" />        </javaTypeResolver>        <!-- 定义实体类 bean -->        <javaModelGenerator targetPackage="en.et.entity" targetProject="src/main/java">            <property name="enableSubPackages" value="true" />            <property name="trimStrings" value="true" />        </javaModelGenerator>        <!-- 接口映射的注解 或者xml文件路径 -->        <sqlMapGenerator targetPackage="cn.et.resource" targetProject="src/main/java">            <property name="enableSubPackages" value="true" />        </sqlMapGenerator>        <!-- 生成的接口所在的位置 type="xml 或者 注解" -->        <javaClientGenerator type="ANNOTATEDMAPPER"            targetPackage="en.et.dao" targetProject="src/main/java">            <property name="enableSubPackages" value="true" />        </javaClientGenerator>        <!-- 告诉mbg 需要生成代码的数据库的表 -->        <table tableName="emp"></table>    </context></generatorConfiguration>

Mybatis的动态sql语句

Mybatis的动态sql语句主要解决的问题是不同条件sql语句的拼接。

例如:根据用户信息,查询用户列表,当不知道根据的是用户的什么信息时,写出查询的SQL语句是有一定困难的,而动态SQL语句主要解决的就是此类问题。

if标签的使用

在持久层接口定义方法

    List<User> findByUser(User user);

编写持久层接口对应的映射文件

 <!-- 根据用户信息,查询用户列表 -->    <select id="findByUser" resultType="User" parameterType="User">        select *from user where 1 = 1        <if test="id != 0">            and id = #{id}        </if>        <if test="username != null and username != '' ">            and username like #{username}        </if>        <if test="birthday != null">            and birthday = #{birthday}        </if>        <if test="sex != null">            and sex = #{sex}        </if>        <if test="address != null">            and address = #{address}        </if>    </select>

编写测试方法

      @Test    public void testFindByUser()    {        User user = new User();        user.setUsername("%王%");        List<User> users = userDao.findByUser(user);        for (User u : users)        {            System.out.println(u);        }    }

where标签的使用

为了简化上面 where 1=1 的条件拼接,我们可以采用标签来简化开发,因此修改持久层映射文件

 <!-- 根据用户信息,查询用户列表 -->    <select id="findByUser" resultType="User" parameterType="User">        select *from user        <where>            <if test="id != 0">                and id = #{id}            </if>            <if test="username != null and username != '' ">                and username like #{username}            </if>            <if test="birthday != null">                and birthday = #{birthday}            </if>            <if test="sex != null">                and sex = #{sex}            </if>            <if test="address != null">                and address = #{address}            </if>        </where>    </select>

foreach标签的使用

froeach是对一个集合进行遍历,通常在构建in条件语句的时候应用

例如:根据一个用户id集合查询用户。

对id集合进行封装,加入到List集合

Mybatis怎么自动生成sql语句

编写持久层接口方法

      List<User> findInIds(QueryUR queryUR);

编写持久层接口映射文件

  <!--根据id集合查询用户 -->    <select id="findInIds" resultType="user" parameterType="int">       select *from user       <where>           <if test="ids != null and ids.size() > 0">                <!-- foreach:用于遍历集合                    collection:代表要遍历的集合                    open:代表语句的开始部分                    close:代表语句的结束部分                    item:代表需要遍历的集合的每个元素                    sperator:代表分隔符                 -->               <foreach collection="ids" open="id in (" close=")" item="uid" separator=",">                    #{uid}               </foreach>           </if>       </where>    </select>

编写测试方法

      @Test    public void testFindInIds()    {        QueryUR queryUR = new QueryUR();        List<Integer> ids = new ArrayList<Integer>();        ids.add(41);        ids.add(43);        ids.add(45);        queryUR.setIds(ids);        List<User> users = userDao.findInIds(queryUR);        for (User user : users)        {            System.out.println(user);        }    }

sql语句的简化编写

在映射文件中,可以将重复的sql语句通过sql标签提取出来,使用include标签引用即可,已达到sql重用的效果。如下所示:

<!--抽取重复的语句代码片段-->    <sql id="querySql">        select *from user    </sql>    <select id="findAll" resultType="USER" >        <include refid="querySql"></include>    </select>    <!--根据id查询用户-->    <select id="findById" resultType="User" parameterType="int">        <include refid="querySql"></include> where id= #{userID};    </select>

上述就是小编为大家分享的Mybatis怎么自动生成sql语句了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Mybatis怎么自动生成sql语句

本文链接: https://www.lsjlt.com/news/301892.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mybatis怎么自动生成sql语句
    这期内容当中小编将会给大家带来有关Mybatis怎么自动生成sql语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mybatis自动生成sql语句创建maven项目,将该配置文件运行即可生成 sql 语...
    99+
    2023-06-22
  • Mybatis如何自动生成sql语句
    目录Mybatis自动生成sql语句Mybatis的动态sql语句if标签的使用where标签的使用foreach标签的使用sql语句的简化编写Mybatis自动生成sql...
    99+
    2024-04-02
  • Python自动生成sql语句
    #!usr/bin/env python # coding=utf-8 def auto_insert_sql(objs, table=None, charset='UTF-8'): """ 自动生成insert...
    99+
    2023-01-31
    自动生成 语句 Python
  • mybatis example怎么自动生成排序语句
    本篇内容介绍了“mybatis example怎么自动生成排序语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mybatis e...
    99+
    2023-06-22
  • mybatis example如何自动生成代码 排序语句
    目录mybatis example自动生成代码 排序语句mybatis自动生成的example用法举个使用例子查询表全部数据方法说明mybatis example自动生成代码 排序语...
    99+
    2024-04-02
  • mybatis 对于生成的sql语句 自动加上单引号的情况详解
    目录对于生成的sql语句 自动加上单引号的情况mySQL中replace的用法mybatis中IFNULL(P1,P2)函数的用法mybatis单引号字母逻辑处理的一个坑原...
    99+
    2024-04-02
  • 使用python怎么编写一个自动生成sql语句的脚本
    这篇文章主要介绍了使用python怎么编写一个自动生成sql语句的脚本,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:python是什么意思Python是一种跨平台的、具有解释性、编译性、...
    99+
    2023-06-06
  • Mybatis的动态SQL语句怎么使用
    这篇文章主要介绍“Mybatis的动态SQL语句怎么使用”,在日常操作中,相信很多人在Mybatis的动态SQL语句怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis的动态SQL语句怎么使用...
    99+
    2023-06-30
  • MyBatis中怎么执行动态SQL语句
    MyBatis中执行动态SQL语句的方式是通过使用动态SQL语句的标签来实现。在MyBatis中,有以下几种常用的动态SQL标签: ...
    99+
    2024-04-09
    MyBatis
  • mybatis自动生成表怎么设置
    MyBatis并不是一个表生成工具,它是一个持久层框架,用于将Java对象映射到数据库表。因此,MyBatis不会自动生成表。如果你...
    99+
    2024-04-02
  • MyBatis中怎么用@InsertProvider动态生成SQL
    ...
    99+
    2024-05-08
    MyBatis
  • 怎么使用MyBatis的@SelectProvider动态生成SQL
    ...
    99+
    2024-05-08
    MyBatis
  • mybatis怎么获取自动生成的主键
    MyBatis提供了多种方式来获取自动生成的主键。1. 使用元素:可以将元素添加到插入语句中,以便在执行插入操作后获取自动生成的主键...
    99+
    2023-08-24
    mybatis
  • MyBatis怎么获取自动生成的键值
    这篇文章主要介绍“MyBatis怎么获取自动生成的键值”,在日常操作中,相信很多人在MyBatis怎么获取自动生成的键值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyBatis怎么获取自动生成的键值”的疑...
    99+
    2023-07-06
  • MyBatis中怎么自定义SQL语句执行顺序
    在MyBatis中,无法直接控制SQL语句的执行顺序,因为MyBatis是一个持久层框架,它的执行顺序是由其内部的执行流程控制的。但...
    99+
    2024-04-23
    MyBatis SQL
  • MyBatis中怎么执行SQL语句
    在MyBatis中执行SQL语句可以通过Mapper接口和映射文件来实现。以下是一般步骤: 1、创建Mapper接口:在Mapper...
    99+
    2024-03-07
    MyBatis
  • Mybatis中的动态SQL语句解析
    这篇文章主要介绍了Mybatis中的动态SQL语句解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下   Mybatis中配置SQL有两种方式,一种是利用...
    99+
    2024-04-02
  • MyBatis-Plus——代码自动生成器
    📢📢📢📣📣📣 哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!😜😜😜...
    99+
    2023-09-08
    java mybatis plus 代码自动生成 增删查改
  • Mybatis动态SQL之IF语句详解
    Mysql 5.0 以后,支持了动态sql语句,我们可以通过传递不同的参数得到我们想要的值. 1. Mybatis–动态SQL之IF语句 没有搭建环境的请点击 1.1 BlogMap...
    99+
    2024-04-02
  • Mybatis基于注解形式的sql语句生成实例代码
    对其做了些优化,但此种sql生成方式仅适用于复杂程度不高的sql,所以实用性不是很高,仅仅是写着玩的,知道点mybatis的注解形式的使用方式,可能以后会逐渐完善起来。第一次写博客,写的简单点。package com.bob.config....
    99+
    2023-05-31
    mybatis 注解 sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作