package com.platform.tool.db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.sql.Types;
import java.util.ArrayList;
import java.util.List;
import com.platform.model.FieldBean;
public class DbServiceImpl implements DbService {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
PreparedStatement pst = null;
String sqlstr = null;
/**根据表名获取所有的列信息
* @param tableName
* @return
*/
public List<FieldBean> getAllColums(String tableName){
ArrayList<FieldBean> returnList = new ArrayList<FieldBean>();
DbConn dbConn = new DbConn();
try {
this.conn = dbConn.getConnection();
this.sqlstr = "select * from " + tableName;
this.st = conn.createStatement();
this.rs = this.st.executeQuery(sqlstr);
ResultSetMetaData resultSetMetaData = rs.getMetaData();
for(int i=1;i<=resultSetMetaData.getColumnCount();i++){
String columName = resultSetMetaData.getColumnName(i);
String proName = convertField(columName);
String dataType = getTypeName(resultSetMetaData.getColumnType(i));
FieldBean fieldBean = new FieldBean();
fieldBean.setFieldName(columName.toLowerCase());
fieldBean.setProName(proName);
fieldBean.setProType(dataType);
returnList.add(fieldBean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
dbConn.closeALL(conn, st, rs, pst);
}
return returnList;
}
/**
* 把数据库中的字段转换为变量类型
* 如(user_id ----> userId)
* @param field
* @return
*/
public String convertField(String field) {
//分隔符
char separator = '_';
//转化为小写
String variable = field.toLowerCase();
if (variable.indexOf(separator)>-1) {
char[] varArray = variable.toCharArray();
for(int i=0;i<varArray.length;i++){
if (varArray[i]==separator&&i<varArray.length-1) {
varArray[i+1]=Character.toUpperCase(varArray[i+1]);
}
}
variable = new String(varArray).replaceAll("_", "");
}
return variable;
}
/**获取字符串型的类型名
* @param type
* @return
*/
private String getTypeName(int type){
String typeName = String.class.getSimpleName();
switch (type) {
case Types.VARCHAR:
case Types.BLOB:
break;
case Types.INTEGER:
case Types.SMALLINT:
case Types.NUMERIC:
typeName=Integer.class.getSimpleName();
break;
case Types.DATE:
case Types.TIMESTAMP:
typeName=Timestamp.class.getSimpleName();
break;
case Types.BOOLEAN:
typeName=Boolean.class.getSimpleName();
break;
case Types.FLOAT:
typeName=Float.class.getSimpleName();
break;
default:
break;
}
return typeName;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java代码生成器(Freemaker)
共27个文件
java:9个
class:9个
ftl:4个
5星 · 超过95%的资源 需积分: 50 232 下载量 47 浏览量
2014-02-14
18:02:44
上传
评论 5
收藏 2.18MB ZIP 举报
温馨提示
使用FreeMaker写的java代码生成器,可以根据自己的需求修改模板文件来生成自己的代码~~只针对oracle,如果是mysql需要自己修改代码~~只是供大家参考~~
资源推荐
资源详情
资源评论
收起资源包目录
codeMachine.zip (27个子文件)
codeMachine
.project 387B
bin
com
platform
main
RunEntrance.class 690B
CodeMeachine.class 2KB
tool
db
DbService.class 273B
DbServiceImpl.class 4KB
DbConn.class 2KB
freeMaker
FreeMakerUtil.class 3KB
data
DataServiceImpl.class 2KB
DataService.class 403B
model
FieldBean.class 937B
ftl
daoModel.ftl 871B
voModel.ftl 2KB
.settings
org.eclipse.jdt.core.prefs 598B
src
com
platform
main
CodeMeachine.java 2KB
RunEntrance.java 287B
tool
db
DbConn.java 1KB
DbService.java 289B
DbServiceImpl.java 3KB
freeMaker
FreeMakerUtil.java 2KB
data
DataService.java 497B
DataServiceImpl.java 1KB
model
FieldBean.java 629B
ftl
daoModel.ftl 871B
voModel.ftl 2KB
.classpath 488B
lib
ojdbc.jar 1.47MB
freemarker.jar 860KB
共 27 条
- 1
whithorse
- 粉丝: 2
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页