Discuss / Java / 打卡打卡

打卡打卡

Topic source

xiao伟iii

#1 Created at ... [Delete] [Delete and Lock User]

借鉴了@Angular2club 说的 String.join("", fields); 确实效率了好多:

package com.itranswarp.learnjava;

/**
 * Learn Java from https://www.liaoxuefeng.com/
 * 
 * @author liaoxuefeng
 */
public class Main {

	public static void main(String[] args) {
		String[] fields = { "name", "position", "salary" };
		String table = "employee";
		String insert = buildInsertSql(table, fields);
		System.out.println(insert);
		System.out.println(
				"INSERT INTO employee (name, position, salary) VALUES (?, ?, ?)".equals(insert) ? "测试成功" : "测试失败");
	}

	static String buildInsertSql(String table, String[] fields) {
		// TODO:
		StringBuilder sb = new StringBuilder("INSERT INTO ")
				.append(table)
				.append(" (");
//		for (int i=0; i < fields.length; i++) {
//			sb.append(fields[i])
//			  .append(", ");
//		}
//		sb.delete(sb.length()-2, sb.length())
//		  .append(") VALUES (?, ?, ?)");
		System.out.println(String.join(", ", fields));
		sb.append(String.join(", ", fields))
		  .append(") VALUES (?, ?, ?)");
		return sb.toString();
	}

}

你好,我看了你的评论,我去做了个测试,也不知道对不对,
我看打印的日志,join的方法也没有比for效率有多大的提升,还请你讲解讲解。


// 使用for循环的方式。
static String buildInsertSql(String table, String[] fields) {      StringBuilder sb = new StringBuilder(1024);      sb.append("INSERT INTO ").append(table + " (");      System.out.println(System.currentTimeMillis());      for (String s: fields) {         sb.append(s);         if (!s.equals(fields[fields.length-1])) {            sb.append(", ");         }      }      System.out.println(System.currentTimeMillis());      sb.append(") VALUES (?, ?, ?)");      return sb.toString();   }
// 打印的日志:
1567241325962
1567241325962
INSERT INTO employee (name, position, salary) VALUES (?, ?, ?)
测试成功

// 使用join的方法
static String buildInsertSql(String table, String[] fields) {
    StringBuilder sb = new StringBuilder(1024);
    sb.append("INSERT INTO ").append(table + " (");      
    System.out.println(System.currentTimeMillis());
    sb.append(String.join(", ", fields));      
    System.out.println(System.currentTimeMillis());      
    sb.append(") VALUES (?, ?, ?)");      
    return sb.toString();   
}


// 打印日志:
1567241633179
1567241633180
INSERT INTO employee (name, position, salary) VALUES (?, ?, ?)
测试成功




  • 1

Reply