form表单数据转换为Object对象.docx
- 文档编号:28411542
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:29
- 大小:21.49KB
form表单数据转换为Object对象.docx
《form表单数据转换为Object对象.docx》由会员分享,可在线阅读,更多相关《form表单数据转换为Object对象.docx(29页珍藏版)》请在冰豆网上搜索。
form表单数据转换为Object对象
form表单数据转换为Object对象,Git代码托管推送时文件忽略规则,golang连接mysql数据库,golang面向对象编程struct
Golang实现的线程安全的队列,正则表达式网页解析,golang实现的3DES加密解密文件的命令行程序,随机字符串生成函数(数字、大小写字母,整数最大值函数,Groovy执行系统命令获取本机名字,Groovy中利用AntBuilder拷贝文件[Groovy],grunt安装编译bootstrap
[代码][Java]代码
packagecanghailan;
importcanghailan.util.Fields;
importcanghailan.util.Methods;
importcanghailan.util.benchmark.BenchmarkCase;
importcanghailan.util.benchmark.SimpleBenchmark;
importcanghailan.util.benchmark.SimpleBenchmarkReporter;
importorg.apachemons.beanutils.PropertyUtils;
importjava.io.PrintWriter;
importjava.lang.invoke.MethodHandle;
importjava.lang.invoke.MethodHandles;
importjava.lang.invoke.MethodType;
importjava.lang.reflect.Method;
//Delphi源码分析之System.DateUtilsStart/Endfu
//Delphi根据Excel列总数返回结束列列名
//DelphiMySQL数据库操作类
/**
*@authorcanghailan2012-01-1322:
50
*/
publicclassReflectBenchmark{
publicstaticvoidmain(String[]args)throwsThrowable{
SimpleBenchmarkbenchmark=newSimpleBenchmark("ReflectToolBenchmark");
SimpleBenchmarkReporterreporter=newSimpleBenchmarkReporter(newPrintWriter(System.out));
finalUseruser=newUser("a");
benchmark.addBenchmarkCase(newBenchmarkCase(){
@Override
publicStringgetName(){
return"user.getName()";
}
@Override
publicvoidrun()throwsThrowable{
user.getName();
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
Methodmethod=User.class.getDeclaredMethod("getName",newClass[0]);
Object[]params=newObject[0];
//Delphi代码样例-S05GK接口发送短信
//C语言随机函数rand实现
@Override
publicStringgetName(){
return"method.invoke(user,params)";
}
@Override
publicvoidrun()throwsThrowable{
method.invoke(user,params);
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
MethodHandlemethodHandle=MethodHandles.publicLookup().findVirtual(
User.class,
"getName",
MethodType.methodType(String.class,newClass[0])
);
@Override
publicStringgetName(){
return"methodHandle.invoke(user)";
}
@Override
publicvoidrun()throwsThrowable{
methodHandle.invoke(user);
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
@Override
publicStringgetName(){
return"PropertyUtils.getProperty(user,\"name\")";
}
@Override
publicvoidrun()throwsThrowable{
PropertyUtils.getProperty(user,"name");
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
@Override
publicStringgetName(){
return"PropertyUtils.getSimpleProperty(user,\"name\")";
}
@Override
publicvoidrun()throwsThrowable{
PropertyUtils.getSimpleProperty(user,"name");
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
@Override
publicStringgetName(){
return"Methods.invoke(user,\"getName\")";
}
@Override
publicvoidrun()throwsThrowable{
Methods.invoke(user,"getName");
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
@Override
publicStringgetName(){
return"Fields.get(user,\"name\")";
}
@Override
publicvoidrun()throwsThrowable{
Fields.get(user,"name");
}
});
benchmark.addBenchmarkCase(newBenchmarkCase(){
@Override
publicStringgetName(){
return"Fields.directGet(user,\"name\")";
}
@Override
publicvoidrun()throwsThrowable{
Fields.directGet(user,"name");
}
});
reporter.report(benchmark,benchmark.warmUpAndRun(12000000));
System.exit(0);
}
publicstaticclassUser{
privateStringname;
publicUser(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
}
[代码]~/.vimrc
"设置Vim字符集【enc】
setencoding=utf-8
"不要备份文件,使用backup备份文件(原文件加~后缀)
"setnobackup
"不生成.swap文件
"setnoswapfile
"搜索结果高亮【hls】
sethlsearch
"启用类似Emacs的增量(incremental)搜索,搜索与输入同时进行【is】
setincsearch
"搜索内容不区分大小写【ic】
setignorecase
"智能匹配,即小写全匹配,大小写混合则严格匹配【scs】
setsmartcase
"mouse=a启动所有模式,会屏蔽鼠标的右键功能;
"mouse=v让Vim在可视化模式下也可以使用右键粘贴
setmouse=v
"显示行号【nu】
setnumber
"显示光标所在列号【ru】
setruler
"高亮当前行【cul】
setcursorline
"显示匹配的括号【sm】
setshowmatch
"不显示响铃【noeb】
setnoerrorbells
"可视化铃声【vb】
setvisualbell
"光标移动到buffer的顶部和底部时保持3行距离
setscrolloff=3
"高亮当前列【cuc】
"setcursorcolumn
"启用List模式,用CTRL-I显示制表符,用$显示行结束符
"setlist
"显示当前的模式,FreeBSD下默认不显示【sc】
setshowcmd
"启用自动缩进,和上一行的缩进保持一致【ai】
setautoindent
setsmartindent
"使用C语言的缩进风格【cin】
setcindent
"探测文件类型
filetypeon
"为特定文件类型载入相关缩进文件
filetypeindenton
"设置F6为切换Paste模式的快捷键,便于从其他窗口向Vim中粘贴代码,GUI下的Vim可能无效【pt】
setpastetoggle=
"缩进和(软)制表符使用空格代替【et】
setexpandtab
"设置制表符为4个空格【ts】
settabstop=4
"设置软制表符为4个空格【sts】
setsofttabstop=4
"设置缩进为4个空格【sw】
setshiftwidth=4
"启用语法高亮【syn】
syntaxon
filetypepluginon
filetypeindenton
[文件]dbutils_demo.zip ~ 3MB (816)
文件不存在或者代码语言不存在
[代码]po类,@Table,@Column,@Transient这三个注解辅助sqlBuilder生成sql
packagepo;
importjava.io.Serializable;
importjava.util.Date;
importdao.mapping.Column;
importdao.mapping.Table;
importdao.mapping.Transient;
/**
*广告信息实体类
*
*@authordixingxing
*@dateJan6,2012
*/
@Table(name="AD")
publicclassAdimplementsSerializable{
privatestaticfinallongserialVersionUID=1L;
privateLongid;
//广告标示
privateStringname;
//广告详情
privateStringdetail;
//显示位置
privateLongposition;
//状态
privateLongstate;
//发布时间
@Column(updatable=false)
privateDatepublishTime;
//发布人
@Column(updatable=false)
privateStringpublishMan;
//修改时间
privateDateupdateTime;
//修改人
privateStringupdateMan;
privateLongproviderId;
//这个属性测试多表查询
@Transient
privateStringproviderName;
publicLonggetProviderId(){
returnproviderId;
}
publicvoidsetProviderId(LongproviderId){
this.providerId=providerId;
}
publicLonggetId(){
returnid;
}
publicvoidsetId(Longid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetDetail(){
returndetail;
}
publicvoidsetDetail(Stringdetail){
this.detail=detail;
}
publicLonggetPosition(){
returnposition;
}
publicvoidsetPosition(Longposition){
this.position=position;
}
publicLonggetState(){
returnstate;
}
publicvoidsetState(Longstate){
this.state=state;
}
publicDategetPublishTime(){
returnpublishTime;
}
publicvoidsetPublishTime(DatepublishTime){
this.publishTime=publishTime;
}
publicStringgetPublishMan(){
returnpublishMan;
}
publicvoidsetPublishMan(StringpublishMan){
this.publishMan=publishMan;
}
publicDategetUpdateTime(){
returnupdateTime;
}
publicvoidsetUpdateTime(DateupdateTime){
this.updateTime=updateTime;
}
publicStringgetUpdateMan(){
returnupdateMan;
}
publicvoidsetUpdateMan(StringupdateMan){
this.updateMan=updateMan;
}
publicStringgetProviderName(){
returnproviderName;
}
publicvoidsetProviderName(StringproviderName){
this.providerName=providerName;
}
@Override
publicStringtoString(){
StringBuildersb=newStringBuilder();
sb.append("id:
").append(id).append(",").append("name:
").append(name)
.append(",").append("publishMan:
").append(publishMan).append(
",publishTime:
").append(publishTime);
returnsb.toString();
}
}
[代码]根据pojo生成insert,update的sql
packagedao.mapping;
importjava.lang.reflect.Field;
importjava.lang.reflect.Modifier;
importjava.sql.Timestamp;
importjava.util.Date;
importorg.apachemons.lang.StringUtils;
importorg.apache.log4j.Logger;
importpo.Ad;
/**
*根据pojo构造SqlHolder
*
*@seeSqlHolder
*@authordixingxing
*@dateFeb6,2012
*/
publicclassSqlBuilder{
privatefinalstaticLoggerlogger=Logger.getLogger(SqlBuilder.class);
/**
*构造insert
*
*@parampo
*@return
*/
publicstaticSqlHolderbuildInsert(Objectpo){
SqlHolderholder=newSqlHolder();
Field[]fields=po.getClass().getDeclaredFields();
StringBuildercolumns=newStringBuilder();
StringBuildervalues=newStringBuilder();
for(Fieldf:
fields){
if(isTransient(f)){
continue;
}
holder.addParam(convert(getValue(po,f)));
columns.append(columnName(f)).append(",");
values.append("?
").append(",");
}
deleteLastComma(columns);
deleteLastComma(values);
StringBuildersql=newStringBuilder();
sql.append("INSERTINTO").append(tableName(po)).append("(");
sql.append(columns).append(")");
sql.append("VALUES(").append(values).append(")");
holder.setSql(sql.toString());
logger.debug(holder);
returnholder;
}
/**
*构造update
*
*@paramobj
*@paramwhere
*不允许为空
*@return
*/
publicstaticSqlHolderbuildUpdate(Objectobj,Stringwhere){
SqlHolderholder=newSqlHolder();
Field[]fields=obj.getClass().getDeclaredFields();
StringBuildersql=newStringBuilder();
sql.append("UPDATE").append(tableName(obj)).append("SET");
for(Fieldf:
fields){
if(isTransient(f)||!
isUpdatable(f)){
continue;
}
holder.addParam(convert(getValue(obj,f)));
sql.append(columnName(f)).append("=?
").append(",");
}
deleteLastComma(sql);
sql.append("WHERE");
sql.append(StringUtils.isNotBlank(where)?
where:
"1=2");
holder.setSql(sql.toString());
logger.debug(holder);
returnholder;
}
/**
*删除最后那个“,”
*
*@paramsb
*/
privatestaticvoiddeleteLastComma(StringBuildersb){
if(sb.lastIndexOf(",")==sb.length()-1){
sb.deleteCharAt(sb.length()-1);
}
}
/**
*获取列名
MyBeanProcessor中定义了查询时从数据库字段转->po属性的规则,
*此处po属性->数据库字段的规则和前面保持一致
*
*@seeMyBeanProcessor#prop2column(String)
*@paramf
*@return
*/
privatestaticStringcolumnName(Fieldf){
returnMyBeanProcessor.prop2column(f.getName());
}
/**
*获取对象中某个属性的值(没有通过getter方法获取)
*
*@paramobj
*@paramf
*@return
*/
pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- form 表单 数据 转换 Object 对象