1、form表单数据转换为Object对象form表单数据转换为Object对象,Git代码托管推送时文件忽略规则,golang连接mysql数据库,golang面向对象编程structGolang实现的线程安全的队列,正则表达式网页解析,golang实现的3DES加密解密文件的命令行程序,随机字符串生成函数(数字、大小写字母,整数最大值函数,Groovy执行系统命令获取本机名字,Groovy中利用AntBuilder拷贝文件Groovy,grunt安装编译bootstrap代码 Java代码 package canghailan;import canghailan.util.Fields;imp
2、ort canghailan.util.Methods;import canghailan.util.benchmark.BenchmarkCase;import canghailan.util.benchmark.SimpleBenchmark;import canghailan.util.benchmark.SimpleBenchmarkReporter;import org.apachemons.beanutils.PropertyUtils;import java.io.PrintWriter;import java.lang.invoke.MethodHandle;import ja
3、va.lang.invoke.MethodHandles;import java.lang.invoke.MethodType;import java.lang.reflect.Method;/Delphi源码分析之System.DateUtilsStart/Endfu/Delphi根据Excel列总数返回结束列列名/DelphiMySQL数据库操作类/* * author canghailan 2012-01-13 22:50 */public class ReflectBenchmark public static void main(String args) throws Throwab
4、le SimpleBenchmark benchmark = new SimpleBenchmark(Reflect Tool Benchmark); SimpleBenchmarkReporter reporter = new SimpleBenchmarkReporter(new PrintWriter(System.out); final User user = new User(a); benchmark.addBenchmarkCase(new BenchmarkCase() Override public String getName() return user.getName()
5、; Override public void run() throws Throwable user.getName(); ); benchmark.addBenchmarkCase(new BenchmarkCase() Method method = User.class.getDeclaredMethod(getName, new Class0); Object params = new Object0;/Delphi代码样例-S05GK接口发送短信/C语言随机函数rand实现 Override public String getName() return method.invoke(u
6、ser, params); Override public void run() throws Throwable method.invoke(user, params); ); benchmark.addBenchmarkCase(new BenchmarkCase() MethodHandle methodHandle = MethodHandles.publicLookup().findVirtual( User.class, getName, MethodType.methodType(String.class, new Class0) ); Override public Strin
7、g getName() return methodHandle.invoke(user); Override public void run() throws Throwable methodHandle.invoke(user); ); benchmark.addBenchmarkCase(new BenchmarkCase() Override public String getName() return PropertyUtils.getProperty(user, name); Override public void run() throws Throwable PropertyUt
8、ils.getProperty(user, name); ); benchmark.addBenchmarkCase(new BenchmarkCase() Override public String getName() return PropertyUtils.getSimpleProperty(user, name); Override public void run() throws Throwable PropertyUtils.getSimpleProperty(user, name); ); benchmark.addBenchmarkCase(new BenchmarkCase
9、() Override public String getName() return Methods.invoke(user, getName); Override public void run() throws Throwable Methods.invoke(user, getName); ); benchmark.addBenchmarkCase(new BenchmarkCase() Override public String getName() return Fields.get(user, name); Override public void run() throws Thr
10、owable Fields.get(user, name); ); benchmark.addBenchmarkCase(new BenchmarkCase() Override public String getName() return Fields.directGet(user, name); Override public void run() throws Throwable Fields.directGet(user, name); ); reporter.report(benchmark, benchmark.warmUpAndRun(12000000); System.exit
11、(0); public static class User private String name; public User(String name) this.name = name; public String getName() return name; public void setName(String name) this.name = name; 代码 /.vimrc 设置Vim字符集【enc】set encoding=utf-8 不要备份文件,使用backup备份文件(原文件加后缀)set nobackup 不生成.swap文件set noswapfile 搜索结果高亮【hls
12、】set hlsearch 启用类似Emacs的增量(incremental)搜索,搜索与输入同时进行【is】set incsearch 搜索内容不区分大小写【ic】set ignorecase 智能匹配,即小写全匹配,大小写混合则严格匹配【scs】set smartcase mouse=a 启动所有模式,会屏蔽鼠标的右键功能; mouse=v 让Vim在可视化模式下也可以使用右键粘贴set mouse=v 显示行号【nu】set number 显示光标所在列号【ru】set ruler 高亮当前行【cul】set cursorline 显示匹配的括号【sm】set showmatch 不显示
13、响铃【noeb】set noerrorbells 可视化铃声【vb】set visualbell 光标移动到buffer的顶部和底部时保持3行距离set scrolloff=3 高亮当前列【cuc】set cursorcolumn 启用List模式,用CTRL-I显示制表符,用$显示行结束符set list 显示当前的模式,FreeBSD下默认不显示【sc】set showcmd 启用自动缩进,和上一行的缩进保持一致【ai】set autoindentset smartindent 使用C语言的缩进风格【cin】set cindent 探测文件类型filetype on 为特定文件类型载入相关
14、缩进文件filetype indent on 设置F6为切换Paste模式的快捷键,便于从其他窗口向Vim中粘贴代码,GUI下的Vim可能无效【pt】set pastetoggle= 缩进和(软)制表符使用空格代替【et】set expandtab 设置制表符为4 个空格【ts】set tabstop=4 设置软制表符为4 个空格【sts】set softtabstop=4 设置缩进为4 个空格【sw】set shiftwidth=4 启用语法高亮【syn】syntax onfiletype plugin onfiletype indent on文件 dbutils_demo.zip3MB(8
15、16) 文件不存在或者代码语言不存在代码 po类,Table,Column,Transient这三个注解辅助sqlBuilder生成sql package po;import java.io.Serializable;import java.util.Date;import dao.mapping.Column;import dao.mapping.Table;import dao.mapping.Transient;/* * 广告信息实体类 * * author dixingxing * date Jan 6, 2012 */Table(name = AD)public class Ad i
16、mplements Serializable private static final long serialVersionUID = 1L; private Long id; / 广告标示 private String name; / 广告详情 private String detail; / 显示位置 private Long position; / 状态 private Long state; / 发布时间 Column(updatable = false) private Date publishTime; / 发布人 Column(updatable = false) private
17、 String publishMan; / 修改时间 private Date updateTime; / 修改人 private String updateMan; private Long providerId; / 这个属性 测试多表查询 Transient private String providerName; public Long getProviderId() return providerId; public void setProviderId(Long providerId) this.providerId = providerId; public Long getId(
18、) return id; public void setId(Long id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; public String getDetail() return detail; public void setDetail(String detail) this.detail = detail; public Long getPosition() return position; public void set
19、Position(Long position) this.position = position; public Long getState() return state; public void setState(Long state) this.state = state; public Date getPublishTime() return publishTime; public void setPublishTime(Date publishTime) this.publishTime = publishTime; public String getPublishMan() retu
20、rn publishMan; public void setPublishMan(String publishMan) this.publishMan = publishMan; public Date getUpdateTime() return updateTime; public void setUpdateTime(Date updateTime) this.updateTime = updateTime; public String getUpdateMan() return updateMan; public void setUpdateMan(String updateMan)
21、this.updateMan = updateMan; public String getProviderName() return providerName; public void setProviderName(String providerName) this.providerName = providerName; Override public String toString() StringBuilder sb = new StringBuilder(); sb.append(id:).append(id).append(,).append(name:).append(name)
22、 .append(,).append(publishMan:).append(publishMan).append( ,publishTime:).append(publishTime); return sb.toString(); 代码 根据pojo生成insert,update的sql package dao.mapping;import java.lang.reflect.Field;import java.lang.reflect.Modifier;import java.sql.Timestamp;import java.util.Date;import org.apachemons
23、.lang.StringUtils;import org.apache.log4j.Logger;import po.Ad;/* * 根据pojo构造SqlHolder * * see SqlHolder * author dixingxing * date Feb 6, 2012 */public class SqlBuilder private final static Logger logger = Logger.getLogger(SqlBuilder.class); /* * 构造insert * * param po * return */ public static SqlHol
24、der buildInsert(Object po) SqlHolder holder = new SqlHolder(); Field fields = po.getClass().getDeclaredFields(); StringBuilder columns = new StringBuilder(); StringBuilder values = new StringBuilder(); for (Field f : fields) if (isTransient(f) continue; holder.addParam(convert(getValue(po, f); colum
25、ns.append(columnName(f).append(,); values.append(?).append(,); deleteLastComma(columns); deleteLastComma(values); StringBuilder sql = new StringBuilder(); sql.append(INSERT INTO ).append(tableName(po).append( (); sql.append(columns).append() ); sql.append( VALUES().append(values).append() ); holder.
26、setSql(sql.toString(); logger.debug(holder); return holder; /* * 构造update * * param obj * param where * 不允许为空 * return */ public static SqlHolder buildUpdate(Object obj, String where) SqlHolder holder = new SqlHolder(); Field fields = obj.getClass().getDeclaredFields(); StringBuilder sql = new Strin
27、gBuilder(); sql.append(UPDATE ).append(tableName(obj).append( SET ); for (Field f : 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.isNotB
28、lank(where) ? where : 1=2); holder.setSql(sql.toString(); logger.debug(holder); return holder; /* * 删除最后那个“,” * * param sb */ private static void deleteLastComma(StringBuilder sb) if (sb.lastIndexOf(,) = sb.length() - 1) sb.deleteCharAt(sb.length() - 1); /* * 获取列名 MyBeanProcessor中定义了查询时从数据库字段转 - po属性 的规则, * 此处po属性 - 数据库字段 的规则和前面保持一致 * * see MyBeanProcessor#prop2column(String) * param f * return */ private static String columnName(Field f) return MyBeanProcessor.prop2column(f.getName(); /* * 获取对象中某个属性的值(没有通过getter方法获取) * * param obj * param f * return */ pr
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1