- flutter滑块验证
zqwily
flutterandroid
import'dart:convert';import'dart:math';import'package:flutter/cupertino.dart';import'package:flutter/material.dart';import'package:toptongpin/app/common/widgets/image/local_image.dart';import'package:
- flutter开发之状态管理、路由管理、
马拉萨的春天
flutter开发一天一读flutter前端javascript
2.3状态管理#2.3.1简介响应式的编程框架中都会有一个永恒的主题——“状态(State)管理”,无论是在React/Vue(两者都是支持响应式编程的Web开发框架)还是Flutter中,他们讨论的问题和解决的思想都是一致的。所以,如果你对React/Vue的状态管理有了解,可以跳过本节。言归正传,我们想一个问题,StatefulWidget的状态应该被谁管理?Widget本身?父Widget?
- Flutter:fl_chart 曲线图
sunly_
Flutter:布局组件flutter
#图表fl_chart:^0.69.0//示例数据//prices=[1.05,1.05,1.05,1.051.05,1.05,1.05,1.05]//资产曲线图Widget_buildAssetsCurve(){returnbuildLineChart(Get.context!,item.prices??[],item.increaseStr??'');}//资产曲线图方法,参考CoinPage
- 在Flutter中生成App Bundle并上架Google Play
getapi
flutter
Rantool要在Flutter中生成AppBundle并上架GooglePlay,请按照以下步骤操作:1.准备签名密钥首先需要创建一个密钥库用于签名:keytool-genkey-v-keystoreupload-keystore.jks-keyalgRSA-keysize2048-validity10000-aliasupload2.配置签名在项目的android目录下创建key.proper
- 热更新调试鸿蒙版flutter代码步骤(harmonyos next flutter debug)
chenbin___
harmonyosflutter华为
调试鸿蒙版flutter代码步骤1、VsCode中终端运行flutterbuildhap--debug2、DevEco启动调试模式3、返回VsCode如下图1步骤启动运行和调试4、选择鸿蒙真机调试如下图2步骤5、修改flutter代码保存后,VsCode使用F5运行代码,或者点击如下图3步骤6、在VsCode中flutter代码打断点,可以正常调试代码
- Flutter Dart Macro 宏简化 JSON 序列化
独立开发者_猫哥
Flutter技巧flutterjson
FlutterDartMacro宏简化JSON序列化视频https://youtu.be/gBZYjBmoOcUhttps://www.bilibili.com/video/BV1tT421a7ev/前言原文https://ducafecat.com/blog/using-dart-macros-to-simplify-json-serialization今天我们将会体验dart语言新特性macr
- 策略模式 - Flutter中的算法超市,运行时自由切换“计算法则“!
明似水
flutter策略模式flutter算法
痛点场景:支付流程的if-else地狱假设你正在开发一个电商App,需要支持多种支付方式:voidprocessPayment(Stringmethod,doubleamount){if(method=='alipay'){print('调用支付宝SDK,支付¥$amount');//支付宝特定逻辑...}elseif(method=='wechat'){print('调用微信支付SDK,支付¥$
- 中介者模式 - Flutter中的通信指挥中心,告别组件间混乱对话!
明似水
flutter建造者模式flutterui
痛点场景:订单页面的组件纠缠假设你正在开发一个外卖订单页面,包含:地址选择器优惠券选择器支付方式选择商品列表提交按钮这些组件需要相互通信:选择地址→更新运费→刷新总价选择优惠券→校验是否适用于当前商品→更新折扣→刷新总价切换支付方式→检查是否支持优惠券→更新按钮状态修改商品数量→检查库存→更新优惠券可用性传统实现方式(直接引用地狱):classAddressPicker{finalCouponPi
- Flutter基础(Children|Actions|Container|decoration|child)
aaiier
flutter前端javascript
代码showDialog(context:context,builder:(BuildContextcontext){returnAlertDialog(title:constText('请输入图形验证码'),content:Column(mainAxisSize:MainAxisSize.min,children:[//显示验证码图片Container(width:double.infinity
- 项目实战复盘:跨平台团队如何组合工具完成 iOS App 上架全流程
2501_91600889
httpudphttpswebsocket网络安全网络协议tcp/ip
在一次使用Flutter开发的跨平台项目中,我们团队要将一款教育类App同时上线Android与iOS。团队成员清一色Windows/Linux用户,仅有远程使用的一台旧款Macmini,资源非常有限。这篇文章将还原我们当时iOS上架的完整流程,并分享我们是如何组合使用不同工具,各自完成关键环节,不依赖完整Mac环境也能顺利上线AppStore的经验。阶段一:准备开发者证书和描述文件(Provis
- 状态模式 - Flutter中的状态变身术,让对象随“状态“自由切换行为!
明似水
flutter建造者模式flutterui
订单状态流转/播放器控制/游戏角色行为…一个模式搞定所有状态驱动型逻辑!经典场景:订单状态管理假设你在开发一个外卖App,订单有以下状态:等待接单已接单配送中已完成已取消每个状态下:显示的UI不同可执行的操作不同状态转换规则不同传统实现方式(switch-case地狱):classOrder{Stringstate='waiting';//状态字段WidgetbuildUI(){switch(st
- Flutter基础(控制器)
aaiier
flutter前端
第1步:找个遥控器(创建控制器)//就像买新遥控器要装电池TextEditingControllermyController=TextEditingController();第2步:连上你的玩具(绑定到组件)TextField(controller:myController,//把遥控器绑到输入框decoration:InputDecoration(labelText:"写点东西..."),)第3
- 关于Flutter中两种Widget的生命周期详解
Ever69
Flutter《葵花宝典》flutter
目录一、StatelessWidget生命周期二、StatefulWidget生命周期1.创建阶段2.State初始化阶段3.构建阶段4.更新阶段5.销毁阶段三、核心对比与常见陷阱四、面试回答技巧以下是Flutter中两种核心Widget(StatelessWidget和StatefulWidget)生命周期的详细解释,结合关键方法和实际场景说明:一、StatelessWidget生命周期特点:不
- vscode 调试运行 flutter 报:没有用于调试YAML的扩展。我们是否应在市场中找到YAML扩展?
冰雪青松
fluttervscodeflutteride
这个是低级问题,这是把pubspec.yaml文件打开的时候并且处于焦点位置去调试编译出错的,示意图:应该切换到项目文件或者切换到main.dart文件并且处于焦点位置才去调试编译,这时候不会报错了,要不关闭pubspec.yaml文件然后去调试编译。打开pubspec.yaml文件修改后保存文件,vscode会默认执行flutterpubget命令,然后自动下载依赖文件,前提是必须安装有YAML
- flutter结合ai工具(其他语言通用)
程一个大前端
flutter人工智能
一、为什么Flutter开发者需要免费AI工具?1.减少重复性编码Flutter开发中,UI组件、网络请求、状态管理等代码高度重复,AI可自动生成这些代码。示例:输入"创建一个MaterialDesign风格的登录页面",AI工具能生成完整代码,减少手动编写时间2。2.加速调试与错误修复AI可分析运行时错误,提供修复建议,甚至自动修复常见问题。案例:当Dart代码出现NullPointerExce
- 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
明似水
flutter代理模式flutter
痛点场景:直接加载高清大图假设你的应用需要显示用户相册:NetworkImage('https://example.com/high-res-photo.jpg')面临的问题:网络差时长时间白屏重复下载相同图片浪费流量敏感图片无权限验证内存占用过高导致崩溃代理模式解决方案核心思想:为其他对象提供一种代理以控制对这个对象的访问。三种常见代理类型:虚拟代理:延迟加载大资源(如占位图→高清图)保护代理:
- 外观模式 - Flutter中的一键操作大师,复杂功能的极简入口!
明似水
flutter外观模式flutterjavascript
痛点场景:多步骤的用户注册流程假设你的应用需要处理以下注册步骤:验证邮箱格式检查密码强度调用注册API保存用户Token初始化用户配置同步基础数据发送欢迎邮件传统实现方式:FutureregisterUser(Stringemail,Stringpassword)async{//1.验证邮箱if(!EmailValidator.validate(email)){throwInvalidEmailE
- Flutter:BLE蓝牙开发
杨先生_
Flutterflutter
说明:使用flutter_blue_plus插件实现低功耗蓝牙开发。一、添加蓝牙权限:1.Android网络权限(工程/android/app/src/main/AndroidManifest.xml):2.iOS蓝牙权限(工程/ios/Runner/Info.plist): ... NSBluetoothAlwaysUsageDescription NeedBLEpermission N
- url_luacher适配指南
harmonyos
ohos平台适配flutter三方库指导url_launcher1.准备工作下载待适配的三方插件:官方插件库本指导书,以适配url_launcher6.3.1为例2.插件目录lib:是对接dart端代码的入口,由此文件接收到参数后,通过channel将数据发送到原生端;android:安卓端代码实现目录;ios:ios原生端实现目录;example:一个依赖于该插件的Flutter应用程序,来说明
- 原有的原生flutter项目如何迁移到鸿蒙?
harmonyos
原有的原生flutter项目如何迁移到鸿蒙?1、创建个新项目,把旧项目的lib与assets目录复制覆盖到新项目2、修改pubspec.yaml依赖,改为支持鸿蒙版本3、如果编译没问题理论上就能跑在鸿蒙设备上了4、Android或iOS平台上的一些特殊修改复制到新项目以上操作相对简单一些。如果在老项目里面改也是可以的,直接在项目根目录直行fluttercreate--platformsohos.然
- 鸿蒙版地图导航功能开发指南
harmonyos
鸿蒙版Flutter使用url_launcher插件打开百度地图或高德地图进行导航在Flutter中,可以使用url_launcher插件打开百度地图或高德地图进行导航。以下是实现步骤和代码示例:1.添加依赖在pubspec.yaml文件中添加url_launcher依赖:dependencies:flutter:sdk:flutterurl_launcher:^6.1.10dependency_
- Flutter多设备之响应式布局
harmonyos
Flutter多设备之响应式布局参考鸿蒙原生响应式布局场景,保持相似体验。布局能力使用场景使用说明断点将窗口宽度划分为不同的范围(即断点),监听窗口尺寸变化,当断点改变时同步调整页面布局。依赖扩展库:breakpoint媒体查询媒体查询支持监听窗口宽度、横竖屏、深浅色、设备类型等多种媒体特征,当媒体特征发生改变时同步调整页面布局。直接使用FlutterSDK中MediaQuery,无需额外适配栅格
- Flutter多设备之典型布局场景
harmonyos
Flutter多设备之典型布局场景参考鸿蒙原生典型布局场景,保持相似体验。布局能力使用场景使用说明页签栏使用页签控制内容切换的容器,每个页签对应一个内容视图。基于动态断点,当位于sm,md时,使用flutter内置组件DefaultTabController、TabBar和TabBarView显示底部页签栏;当位于lg时,使用DefaultTabController和NavigationRail显
- 性能分析定界指南
harmonyos
性能分析定界指南前置条件HarmonyOSNext系统前台运行Flutter页面分析工具DevEcoStudioProfilerSmartPerfFlutter线程介绍Flutter使用多个线程来完成其必要的工作,图层中仅展示了其中两个线程。你写的所有Dart代码都在UI线程上运行。尽管你没有直接访问其他线程的权限,但是你对UI线程的操作会对其他线程产生性能影响。平台线程平台的主线,插件代码在这里
- HarmonyOS(OHOS)引擎编译常见问题
harmonyos
ohos引擎产物编译相关问题flutter_engine环境编译配置参考FlutterOpenHarmony化引擎编译环境推荐配置版本python3.8-3.11,3.12版本会出现报错java17DevEco-Studio/command-line-tools,5.0.3.300+包含了ohpm,hvigorw,node,OpenHarmonySDKXcode14.3如何生成flutter.ha
- 适配HarmonyOS Next API16的鸿蒙版Flutter 3.22.0版本发布
harmonyos
适配HarmonyOSNextAPI16的鸿蒙版Flutter3.22.0版本发布版本发布时间2025年4月15日版本配套IDE:DevEcoStudio5.0.11.100FlutterSDK:3.22.0-ohos-0.1.2ROM:205.0.0.150请将你的IDE升级到最新版本,体验最新的特性。版本下载gitclonehttps://gitcode.com/openharmony-sig
- Flutter基础(UI监听)
aaiier
flutter前端
文本按钮(TextButton)文本按钮是没有边框的按钮,当点击时会有涟漪效果。TextButton(onPressed:(){//点击按钮后要执行的代码print('文本按钮被点击了');},child:Text('点击我'),)手势检测器(GestureDetector)GestureDetector能够检测多种手势,不只是点击,还包括滑动、长按等。GestureDetector(onTap:
- Flutter基础(项目创建)
aaiier
flutter
一、使用命令行创建项目1.确认Flutter环境正常要保证FlutterSDK已经正确安装,并且环境变量配置无误。可以通过执行以下命令来验证:flutterdoctor要保证所有检查项都显示绿色对勾,要是有问题,可按照提示进行修复。2.创建新项目打开终端,执行下面的命令来创建一个新的Flutter应用:fluttercreatemy_flutter_appcdmy_flutter_app这里的my
- Flutter基础(对接 API)
aaiier
flutter
1.添加依赖首先在pubspec.yaml中添加http包:dependencies:flutter:sdk:flutterhttp:^1.1.0#网络请求库然后运行flutterpubget来获取依赖包。2.创建API服务类创建一个专门的类来处理所有API请求,方便统一管理。import'dart:convert';//用于JSON编解码import'package:http/http.dart
- Flutter到鸿蒙的跨越:flutter-phone-direct-caller库的鸿蒙适配之旅
harmonyos
flutter_app_icon_badge插件鸿蒙适配:实现跨平台应用图标角标管理本项目作者:坚果您可以使用这个Flutter插件来更改应用程序图标上的角标作者仓库:https://github.com/badver/flutter_app_icon_badge/在数字化浪潮的推动下,跨平台开发框架如Flutter凭借其高效、便捷的特性,成为了开发者们的宠儿。而鸿蒙系统的崛起,更是为跨平台开发注
- 对于规范和实现,你会混淆吗?
yangshangchuan
HotSpot
昨晚和朋友聊天,喝了点咖啡,由于我经常喝茶,很长时间没喝咖啡了,所以失眠了,于是起床读JVM规范,读完后在朋友圈发了一条信息:
JVM Run-Time Data Areas:The Java Virtual Machine defines various run-time data areas that are used during execution of a program. So
- android 网络
百合不是茶
网络
android的网络编程和java的一样没什么好分析的都是一些死的照着写就可以了,所以记录下来 方便查找 , 服务器使用的是TomCat
服务器代码; servlet的使用需要在xml中注册
package servlet;
import java.io.IOException;
import java.util.Arr
- [读书笔记]读法拉第传
comsci
读书笔记
1831年的时候,一年可以赚到1000英镑的人..应该很少的...
要成为一个科学家,没有足够的资金支持,很多实验都无法完成
但是当钱赚够了以后....就不能够一直在商业和市场中徘徊......
- 随机数的产生
沐刃青蛟
随机数
c++中阐述随机数的方法有两种:
一是产生假随机数(不管操作多少次,所产生的数都不会改变)
这类随机数是使用了默认的种子值产生的,所以每次都是一样的。
//默认种子
for (int i = 0; i < 5; i++)
{
cout<<
- PHP检测函数所在的文件名
IT独行者
PHP函数
很简单的功能,用到PHP中的反射机制,具体使用的是ReflectionFunction类,可以获取指定函数所在PHP脚本中的具体位置。 创建引用脚本。
代码:
[php]
view plain
copy
// Filename: functions.php
<?php&nbs
- 银行各系统功能简介
文强chu
金融
银行各系统功能简介 业务系统 核心业务系统 业务功能包括:总账管理、卡系统管理、客户信息管理、额度控管、存款、贷款、资金业务、国际结算、支付结算、对外接口等 清分清算系统 以清算日期为准,将账务类交易、非账务类交易的手续费、代理费、网络服务费等相关费用,按费用类型计算应收、应付金额,经过清算人员确认后上送核心系统完成结算的过程 国际结算系
- Python学习1(pip django 安装以及第一个project)
小桔子
pythondjangopip
最近开始学习python,要安装个pip的工具。听说这个工具很强大,安装了它,在安装第三方工具的话so easy!然后也下载了,按照别人给的教程开始安装,奶奶的怎么也安装不上!
第一步:官方下载pip-1.5.6.tar.gz, https://pypi.python.org/pypi/pip easy!
第二部:解压这个压缩文件,会看到一个setup.p
- php 数组
aichenglong
PHP排序数组循环多维数组
1 php中的创建数组
$product = array('tires','oil','spark');//array()实际上是语言结构而不 是函数
2 如果需要创建一个升序的排列的数字保存在一个数组中,可以使用range()函数来自动创建数组
$numbers=range(1,10)//1 2 3 4 5 6 7 8 9 10
$numbers=range(1,10,
- 安装python2.7
AILIKES
python
安装python2.7
1、下载可从 http://www.python.org/进行下载#wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
2、复制解压
#mkdir -p /opt/usr/python
#cp /opt/soft/Python-2
- java异常的处理探讨
百合不是茶
JAVA异常
//java异常
/*
1,了解java 中的异常处理机制,有三种操作
a,声明异常
b,抛出异常
c,捕获异常
2,学会使用try-catch-finally来处理异常
3,学会如何声明异常和抛出异常
4,学会创建自己的异常
*/
//2,学会使用try-catch-finally来处理异常
- getElementsByName实例
bijian1013
element
实例1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/x
- 探索JUnit4扩展:Runner
bijian1013
java单元测试JUnit
参加敏捷培训时,教练提到Junit4的Runner和Rule,于是特上网查一下,发现很多都讲的太理论,或者是举的例子实在是太牵强。多搜索了几下,搜索到两篇我觉得写的非常好的文章。
文章地址:http://www.blogjava.net/jiangshachina/archive/20
- [MongoDB学习笔记二]MongoDB副本集
bit1129
mongodb
1. 副本集的特性
1)一台主服务器(Primary),多台从服务器(Secondary)
2)Primary挂了之后,从服务器自动完成从它们之中选举一台服务器作为主服务器,继续工作,这就解决了单点故障,因此,在这种情况下,MongoDB集群能够继续工作
3)挂了的主服务器恢复到集群中只能以Secondary服务器的角色加入进来
2
- 【Spark八十一】Hive in the spark assembly
bit1129
assembly
Spark SQL supports most commonly used features of HiveQL. However, different HiveQL statements are executed in different manners:
1. DDL statements (e.g. CREATE TABLE, DROP TABLE, etc.)
- Nginx问题定位之监控进程异常退出
ronin47
nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧。
1. 在error.log中查看是否有signal项,如果有,看看signal是多少。
比如,这是一个异常退出的情况:
$grep signal error.log
2012/12/24 16:39:56 [alert] 13661#0: worker process 13666 exited on s
- No grammar constraints (DTD or XML schema).....两种解决方法
byalias
xml
方法一:常用方法 关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version=
- Netty源码学习-DefaultChannelPipeline
bylijinnan
netty
package com.ljn.channel;
/**
* ChannelPipeline采用的是Intercepting Filter 模式
* 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现
*
* 下面对ChannelPipeline作一个模拟,只模拟关键代码:
*/
public class Pipeline {
- MYSQL数据库常用备份及恢复语句
chicony
mysql
备份MySQL数据库的命令,可以加选不同的参数选项来实现不同格式的要求。
mysqldump -h主机 -u用户名 -p密码 数据库名 > 文件
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > ba
- 小白谈谈云计算--基于Google三大论文
CrazyMizzz
Google云计算GFS
之前在没有接触到云计算之前,只是对云计算有一点点模糊的概念,觉得这是一个很高大上的东西,似乎离我们大一的还很远。后来有机会上了一节云计算的普及课程吧,并且在之前的一周里拜读了谷歌三大论文。不敢说理解,至少囫囵吞枣啃下了一大堆看不明白的理论。现在就简单聊聊我对于云计算的了解。
我先说说GFS
&n
- hadoop 平衡空间设置方法
daizj
hadoopbalancer
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
<description&g
- Eclipse程序员要掌握的常用快捷键
dcj3sjt126com
编程
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可以那么勤奋,每天都孜孜不倦得
- Android学习之路
dcj3sjt126com
Android学习
转自:http://blog.csdn.net/ryantang03/article/details/6901459
以前有J2EE基础,接触JAVA也有两三年的时间了,上手Android并不困难,思维上稍微转变一下就可以很快适应。以前做的都是WEB项目,现今体验移动终端项目,让我越来越觉得移动互联网应用是未来的主宰。
下面说说我学习Android的感受,我学Android首先是看MARS的视
- java 遍历Map的四种方法
eksliang
javaHashMapjava 遍历Map的四种方法
转载请出自出处:
http://eksliang.iteye.com/blog/2059996
package com.ickes;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
* 遍历Map的四种方式
- 【精典】数据库相关相关
gengzg
数据库
package C3P0;
import java.sql.Connection;
import java.sql.SQLException;
import java.beans.PropertyVetoException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBPool{
- 自动补全
huyana_town
自动补全
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml&quo
- jquery在线预览PDF文件,打开PDF文件
天梯梦
jquery
最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。
核心代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
- ViewPager刷新单个页面的方法
lovelease
androidviewpagertag刷新
使用ViewPager做滑动切换图片的效果时,如果图片是从网络下载的,那么再子线程中下载完图片时我们会使用handler通知UI线程,然后UI线程就可以调用mViewPager.getAdapter().notifyDataSetChanged()进行页面的刷新,但是viewpager不同于listview,你会发现单纯的调用notifyDataSetChanged()并不能刷新页面
- 利用按位取反(~)从复合枚举值里清除枚举值
草料场
enum
以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
- Linux系统新手学习的11点建议
刘星宇
编程工作linux脚本
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linu
- hibernate dao层应用之HibernateDaoSupport二次封装
wangzhezichuan
DAOHibernate
/**
* <p>方法描述:sql语句查询 返回List<Class> </p>
* <p>方法备注: Class 只能是自定义类 </p>
* @param calzz
* @param sql
* @return
* <p>创建人:王川</p>
* <p>创建时间:Jul