62,614
社区成员
发帖
与我相关
我的任务
分享
{
conn = DBConnectionPool.getConnection();
//可以有代码
stmt = conn.prepareStatement("update t_base_company set name=?,remark=? " +
"where id=?");
stmt.setString(1, name);
stmt.setString(2, remark);
stmt.setShort(3, id);
stmt.execute();
//可以有代码
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBConnectionPool.closeStatementSafey(stmt);
DBConnectionPool.closeConnectionSafey(conn);
}
public static void method1(){
getConnection();
closeConnectionSafey();
}
public static void getConnection(){
}
public static void closeConnectionSafey(){
}
}
class PosName{
private int position;
private String name;
public PosName(int position,String name){
this.position = position;
this.name = name;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static String findSpecialText(List<String> fileList,String searchGet,String searchClose){
int fileNum = fileList.size();
String regex = "[a-zA-Z_$][a-zA-Z0-9_$]*(\\s*\\[\\s*\\])?\\s+[a-zA-Z_$][a-zA-Z0-9_$]*\\s*\\((\\s*[a-zA-Z_$][a-zA-Z0-9_$]*(\\s*\\[\\s*\\])?\\s+[a-zA-Z_$][a-zA-Z0-9_$]*(\\s*\\[\\s*\\])?\\s*|\\s*)\\)\\s*\\{";
Pattern pattern = Pattern.compile(regex,Pattern.DOTALL);
StringBuilder methodBuilder = new StringBuilder();
String splitLine = "--------------------";
for(int i=0;i<fileNum;i++){
String tempPath = fileList.get(i);
StringBuilder builder = new StringBuilder();
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(new File(tempPath)));
byte[] buffer = new byte[1024];
int readNum = 0;
while((readNum = bis.read(buffer)) != -1){
builder.append(new String(buffer,0,readNum));
}
bis.close();
} catch (Exception e) {
e.printStackTrace();
}
String code = builder.toString();
Matcher matcher = pattern.matcher(code);
ArrayList<PosName> positionList = new ArrayList<PosName>();
while(matcher.find()){
int start = matcher.start();
int end = matcher.end();
String name = code.substring(start,end);
int tempIndex = name.indexOf('{');
name = name.substring(0,tempIndex);
positionList.add(new PosName(start,name));
}
int len = positionList.size();
String methodText = null;
int getIndex = 0;
int closeIndex = 0;
boolean appendFileName = false;
if(len>0){
for(int j=0;j<len-1;j++){
PosName curPosName = positionList.get(j);
PosName nextPosName = positionList.get(j+1);
int curPos = curPosName.getPosition();
int nextPos = nextPosName.getPosition();
methodText = code.substring(curPos,nextPos);
int tempIndex = methodText.lastIndexOf('}');
methodText = methodText.substring(0,tempIndex+1);
getIndex = methodText.indexOf(searchGet);
closeIndex = methodText.indexOf(searchClose);
if(getIndex>=0 && closeIndex>=0){
if(!appendFileName){
methodBuilder.append(splitLine+tempPath+splitLine+"\n");
appendFileName = true;
}
methodBuilder.append(curPosName.getName()+"\n");
}
}
PosName lastPosName = positionList.get(len-1);
methodText = code.substring(lastPosName.getPosition());
methodText = methodText.substring(0,methodText.lastIndexOf('}'));
getIndex = methodText.indexOf(searchGet);
closeIndex = methodText.indexOf(searchClose);
if(getIndex>=0 && closeIndex>=0){
if(!appendFileName){
methodBuilder.append(splitLine+tempPath+splitLine+"\n");
appendFileName = true;
}
methodBuilder.append(lastPosName.getName()+"\n");
}
}
}
return methodBuilder.toString();
}
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UseReflectFind {
public void method2(){
Method[] methods;
System.out.println();
}
public static void main(String[] args){
getConnection();
closeConnectionSafey();
List<String> fileList = iterateDir("D:\\hwj\\work\\workspace\\Test\\src");
System.out.println("file number is:"+fileList.size());
String searchGet = "getConnection";
String searchClose = "closeConnectionSafey";
System.out.println("such methods contain :\n"+findSpecialText(fileList,searchGet,searchClose));
}
public static List<String> iterateDir(String srcDir){
File srcFile = new File(srcDir);
File[] files = srcFile.listFiles();
ArrayList<String> pathList = new ArrayList<String>();
for(int i=0;i<files.length;i++){
File tempFile = files[i];
if(tempFile.isDirectory()){
pathList.addAll(iterateDir(tempFile.getAbsolutePath()));
}else{
pathList.add(tempFile.getAbsolutePath());
}
}
return pathList;
}
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UseReflectFind {
public void method2(){
Method[] methods;
System.out.println();
}
public static void main(String[] args){
getConnection();
closeConnectionSafey();
List<String> fileList = iterateDir("D:\\hwj\\work\\workspace\\Test\\src");
System.out.println("file number is:"+fileList.size());
String searchGet = "getConnection";
String searchClose = "closeConnectionSafey";
System.out.println("such methods contain :\n"+findSpecialText(fileList,searchGet,searchClose));
}
public static List<String> iterateDir(String srcDir){
File srcFile = new File(srcDir);
File[] files = srcFile.listFiles();
ArrayList<String> pathList = new ArrayList<String>();
for(int i=0;i<files.length;i++){
File tempFile = files[i];
if(tempFile.isDirectory()){
pathList.addAll(iterateDir(tempFile.getAbsolutePath()));
}else{
pathList.add(tempFile.getAbsolutePath());
}
}
return pathList;
}