首页 > 其他分享 >Mybatis代码生成——velocity模板语法

Mybatis代码生成——velocity模板语法

时间:2023-10-27 09:14:37浏览次数:33  
标签:代码生成 end 代码 list parse 复制 Mybatis velocity

velocity模板其实就是java不分语法的翻译,用到的属性还是java的方法,get,set,等

1.截取部分字段substring

复制代码

1 原始字符串:$!ag.tagValue,也许很长,前端页面展示时需要截取字符串。
2 #set($str=$!ag.tagValue)
3
4 #if($str.length()>30)
5 #set($str=$str.substring(0,30))
6 $str ...
7 #else
8 $!ag.tagValue
9 #end

复制代码

使用substring(begin,end)要注意,结束位置为:end索引-1

2.分割成数组split

复制代码

1 #if($!{result.creType} && $result.creType)
2 #foreach ($element in $result.creType.split(","))
3 #if($element == 1)
4
5 #elseif($element == 2)
6
7 #else
8
9 #end
10 #end
11 #end

复制代码

3.说到split成数组,就要看数组的几个可以用的方法

velocity 中的数组对应 Java 中的 List 对象。对于 Java 原生 Array 对象, 只能够 #foreach 进行遍历,无法使用 arr[0]和arr[0]和arr.get(0) 方法。

4.所以学java从不用数组,而用list

--事实上,list很方便,但list比数组效率低很多倍

$myarray.isEmpty()list是否为空
$myarray.size()获取list元素个数
$myarray.get(2)获取list指定下标的元素
$myarray.add()增加元素

5.计数用$velocityCount

在foreach中velocityCount表示循环的次数,从1开始,代表第一个循环。

6.空null和空字符串""的判断

在velocity中,非null被认为是真的,所以,判断null可以用

复制代码

1 #if($!变量名)
2 ……
3 #else
4 ……
5 #end

复制代码

或者既可以判断null也可以判断空字符串

复制代码

1 #if("$!varName" != "")
2 不为null 或 ""
3 #else
4 ……
5 #end

复制代码

7.基本语法错误#end不要忘

最开始的时候经常#if就完了报错,后来都是写完if就end,最后写中间。

8.宏#macro其实也很简单

原来感觉不懂不敢碰,自从写了个velocity分页后就忽然觉得宏不要太好用。事情是这样的,当时地区三级联动需要多处调用,提取出成公共模块,用#parse导入后出现冲突,因为一个页面用两次地区联动代码,id就重复了。于是想把id给变成参数,当我需要这个公用代码的时候,把id当参数传进去,最后render的结果就是html代码的id为我的参数。这样看来,宏就是一个函数。

想要用宏,先写好,然后parse,然后调用。

一个简单的宏函数:

1 #macro( d )
2
3 #end

使用它:如果在本页面,直接#d,如果是单独写了一个模板文件,那么需要先#parse(文件路径),再#d,如同js外部引用。

传参数的宏:

复制代码

1 #macro( tablerows $color $somelist )
2 #foreach( $something in $somelist )
3 $something
4 #end
5 #end

复制代码

一个综合使用,分页。

9引用外部文件#include和#parse

我开始经常用#include,后来发现刷新页面没变化,用#parse就好了。字面理解,一个是直接拿过来,一个是解析后。所以,如果是传html代码,可以直接include;若是包含velocity代码的要编译#parse.
————————————————
版权声明:本文为CSDN博主「spt_dream」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/spt_dream/article/details/84339643

标签:代码生成,end,代码,list,parse,复制,Mybatis,velocity
From: https://www.cnblogs.com/yifanSJ/p/17790974.html

相关文章

  • Mybatis
    一种持久层框架,用来简化JDBC的开发持久层:负责将数据保存到数据库的那一层代码JavaEE:三层架构:表现层,业务层,持久层框架:就是一个半成品的软件,是一套可重用的,通用的软件基础代码模型Mybatis源码(ctrl+click打开):[GitHub-mybatis/mybatis-3:MyBatisSQLmapperframewo......
  • MyBatis-Plus学习笔记
    官方介绍mybatis-plus可以理解为加强版的mybatis,可以帮我们减少编写mapper中简单的sql语句,你可以理解为IPhone13和IPhone13Plus官网是这么说的:MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。并且还列出了以......
  • Mybatis,Lombok的使用
    Lombok是一个第三方插件,再也不用写get和set方法了 ,添加注解就行 有很多注解 偷懒用的,很方便,但还是不建议使用  因为:改变了语言的书写逻辑,新手看到这个实体类根本看不懂 使用步骤:一、安装Lombok插件二、注入依赖(jar包)(maven仓库取)三、使用 (这里介绍比较常用的)@D......
  • maven创建普通java项目访问mysql-mybatis
    基础资料:数据库:d1,表:t1,字段:xm,nl(即姓名、年龄),内容('zs',20;'ls',18)以下内容由官网“https://mybatis.org/mybatis-3/zh/getting-started.html”整理而来。不尽不实之处请参考官网原文。思想:1、在pom.xml文件中除了给出mybatis和jdbc的依赖之外,还应给出资源(配置)文件位置。2、在my......
  • Mybatis,核心配置中,属性优化,别名优化,设置,插件
    配置:MyBatis可以配置成适应多种环境不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境.学会使用配置多套运行环境!: 通过ID来选择环境: 测试的时候可能有很多不同的数据库可以选择,但是最终只能选择一个Mybatis默认的事务管理器就是JDBC,连接池:......
  • Mybatis,模糊查询
    一、首先还是在mapper中定义方法,并且在xml中实现,,,,传入一个字符串 二、xml实现注意:传值时缺少两个%会报错 要么在传入值的时候添加(比较安全),要么在xml的SQL语句中添加1 2 三、测试 要注意的是,这种方法是有bug的一旦输入1or1=1可能会出现问题例如b站搜索框......
  • 实战系列(二)MybatisPlus详细介绍,包含代码详解
    MybatisPlus是一个功能强大的MyBatis增强工具,它提供了丰富的特性来简化操作数据库的代码。它主要用于简化JDBC操作,节省开发时间,并能够自动化完成所有的CRUD代码。MybatisPlus官网:https://baomidou.com/1.MybatisPlus的基本功能提供丰富的CRUD方法,包括:insert、selectById......
  • Mybatis(超级详细)
    Mybatis一、简介1、什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开......
  • Mybatis,增删改查CRUD
    在第一个Mybatis程序的基础上,继续实现功能一、实现根据id查询用户功能1、首先,在UserMapper里定义一个方法  因为要根据id查询所以要传入一个id2、在xml文件中实现,这里多了一个属性    parameterType  用来写传入的数据类型 3、测试一下,这里我们查询建了一个测......
  • Mybatis,第一个Mybatis程序
    思路:搭建环境->导入Mybatis->编写代码->测试!一、搭建数据库用代码用图形界面都可以(最好用代码,加强sql能力)这里用user表举例 二:搭建工程(基础项目搭建):1、新建一个普通的Maven项目2、删除src,那边就是父工程了,可以通过建模块子工程来写代码3、导入依赖 初学这次用到三个:my......