日期:2014-05-17  浏览次数:20681 次

用StringBuffer还是StringBuilder
在WEB开发中,DAO层经常会拼接SQL语句,那么这个时候,应该用StringBuffer,还是StringBuilder,我觉得应该是StringBuffer
@Repository("functionDao")
public class FunctionDaoImpl extends BaseDao implements FunctionDao {
@Resource
private JdbcTemplate jdbcTemplate;
private String appendSql01() {
StringBuffer sql = new StringBuffer();
sql.append(" INSERT INTO TB_FUNCTION_DOMAIN_INFO( ");
sql.append(" FUNCTION_ID,FUNCTION_NAME,ORG_ID,ORG_NAME, ");
sql.append(" SUBSYSTEM,ONLINE_DATE,GETDATA_PERIOD,BUSINESS_PERSON, ");
sql.append(" GETDATA_EXCURSION,PHONE_NUMBER,STATE,DESCRIPTION,GETDATA_TIME ");
sql.append(" )VALUES(?,?,?,?,? ,?,?,?,?,?, ?,?,?) ");
return sql.toString();
}


因为FuntionDaoImpl类是单例的,不知道到底是不是这样?
------解决方案--------------------
只有一个线程使用的时候就StringBuilder,像你这只在方法内部使用的妥妥的StringBuilder。另外这和单例没关系。再另外你这里应该直接用字符串。
------解决方案--------------------
单例也没事,又不是多线程共享数据,每次访问都是新的对象,用Stringbuild即可