package generate;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.log4j.Logger;
/**
*
* @projectName:testttt
* @author:tangwzh
* @createTime:2014-5-19 上午11:19:46
* @function: 自动生成dao.java和daoImpl.java文件
* @version:
*/
public class GenerateDao {
private static final Logger LOGGER = Logger.getLogger(Thread
.currentThread().getStackTrace()[1].getClassName());
/*public static void main(String[] args) {
String filePath = "C:\\Users\\inrtyx\\Desktop";
generateDaoFile(filePath, "RESOURCE");
generateDaoImplFile(filePath, "RESOURCE");
}*/
/**
*
* @param daoFilePath
* @param tableName
*/
public static void generateDaoImplFile(String daoFilePath, String tableName){
String lowerCaseName = tableName.toLowerCase();
String fistLetter = lowerCaseName.substring(0,1).toUpperCase();
String name = fistLetter + lowerCaseName.substring(1);
String fileName = daoFilePath + "/" + name + "DaoImpl.java";
File file = new File(fileName);
if(!file.exists()){
try {
boolean isSuccess = file.createNewFile();
if(!isSuccess){
LOGGER.error("创建dao文件失败");
return;
}
} catch (IOException e) {
e.printStackTrace();
LOGGER.error("create dao file error:", e);
}
}
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file);
//注解
fileWriter.write("@Service(\"" + name + "DaoImpl\")");
fileWriter.write("\n");
//接口开始
fileWriter.write("public class " + name + "DaoImpl extends BaseDao implements " + name + "Dao {");
fileWriter.write("\n");
//select
printTab(fileWriter, 1);
fileWriter.write("public List<" + name + "> select" + name + "s(Map<String, Object> index){");
printTab(fileWriter, 2);
fileWriter.write("return (List<" + name + ">)this.getSqlMapClientTemplate().queryForList(\"select" + name + "s\", index);");
printTab(fileWriter, 1);
fileWriter.write("}");
fileWriter.write("\n");
//select count
printTab(fileWriter, 1);
fileWriter.write("public int select" + name + "sCount(Map<String, Object> index){");
printTab(fileWriter, 2);
fileWriter.write("return (Integer)this.getSqlMapClientTemplate().queryForObject(\"select" + name + "sCount\", index);");
printTab(fileWriter, 1);
fileWriter.write("}");
fileWriter.write("\n");
//insert
printTab(fileWriter, 1);
fileWriter.write("public void insert" + name + "(" + name + " instance){");
printTab(fileWriter, 2);
fileWriter.write("this.getSqlMapClientTemplate().insert(\"insert" + name + "\", instance);");
printTab(fileWriter, 1);
fileWriter.write("}");
fileWriter.write("\n");
//update
printTab(fileWriter, 1);
fileWriter.write("public void update" + name + "(Map<String, Object> index){");
printTab(fileWriter, 2);
fileWriter.write("this.getSqlMapClientTemplate().update(\"update" + name + "\", index);");
printTab(fileWriter, 1);
fileWriter.write("}");
fileWriter.write("\n");
//delete
printTab(fileWriter, 1);
fileWriter.write("public void delete" + name + "(Map<String, Object> index){");
printTab(fileWriter, 2);
fileWriter.write("this.getSqlMapClientTemplate().delete(\"delete" + name + "\", index);");
printTab(fileWriter, 1);
fileWriter.write("}");
fileWriter.write("\n");
//结束
fileWriter.write("}");
} catch (Exception e) {
e.printStackTrace();
LOGGER.error(e);
}finally{
try {
if(fileWriter != null){
fileWriter.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
/**
*
* @param daoFilePath
* @param tableName
*/
public static void generateDaoFile(String daoFilePath, String tableName){
String lowerCaseName = tableName.toLowerCase();
String fistLetter = lowerCaseName.substring(0,1).toUpperCase();
String name = fistLetter + lowerCaseName.substring(1);
String fileName = daoFilePath + "/" + name + "Dao.java";
File file = new File(fileName);
if(!file.exists()){
try {
boolean isSuccess = file.createNewFile();
if(!isSuccess){
LOGGER.error("创建dao文件失败");
return;
}
} catch (IOException e) {
e.printStackTrace();
LOGGER.error("create dao file error:", e);
}
}
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file);
//接口开始
fileWriter.write("public interface " + name + "Dao{");
fileWriter.write("\n");
//select
printTab(fileWriter, 1);
fileWriter.write("public List<" + name + "> select" + name + "s(Map<String, Object> index);");
fileWriter.write("\n");
//select count
printTab(fileWriter, 1);
fileWriter.write("public int select" + name + "sCount(Map<String, Object> index);");
fileWriter.write("\n");
//insert
printTab(fileWriter, 1);
fileWriter.write("public void insert" + name + "(" + name + " instance);");
fileWriter.write("\n");
//update
printTab(fileWriter, 1);
fileWriter.write("public void update" + name + "(Map<String, Object> index);");
fileWriter.write("\n");
//delete
printTab(fileWriter, 1);
fileWriter.write("public void delete" + name + "(Map<String, Object> index);");
fileWriter.write("\n");
//结束
fileWriter.write("}");
} catch (Exception e) {
e.printStackTrace();
LOGGER.error(e);
}finally{
try {
if(fileWriter != null){
fileWriter.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
private static void printTab(FileWriter fileWriter, int count) throws IOException {
fileWriter.write("\n");
for(int i = 0 ; i < count; i++){
fileWriter.write("\t");
}
}
}
java通过实体类生成dao文件
最新推荐文章于 2022-05-24 09:39:22 发布