package com.health.util;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.util.Map;
import java.util.Random;
import com.health.database.TestDB;
/**
* DAO模式的公共工具类
*
* @author 胡辉煜
*/
public class DAOCommon {
public static final String ENTITY = ".entity";
public static final String DAO = ".dao";
public static final String DAO_IMPL = ".dao.impl";
public static final String SELECT = "SELECT";
public static final String SELECT_BY_KEY = "SELECT_BY_KEY";
public static final String INSERT = "INSERT";
public static final String DELETE = "DELETE";
public static final String UPDATE = "UPDATE";
public static final String CRLF = String.format("%n");
private DAOCommon() {
}
/**
* 获取指定Table的JavaBean类的java文件字符串
*
* @param connection
* 数据库连接
* @param tableName
* 表名称
* @param packageName
* 包名称
* @return 指定Table的JavaBean类的java文件字符串
* @throws Exception
*/
public static String getTableClassString(Connection connection,
String tableName, String packageName) throws Exception {
StringBuilder sb = new StringBuilder();
Table table = DBCommon.findTable(connection, tableName);
if (table == null) {
throw new Exception(String.format("没有找到表:%s", tableName));
}
tableName = table.getTableName();
sb.append("package ").append(packageName);
sb.append(";").append(CRLF).append(CRLF);
// 版权信息
sb.append("/**").append(CRLF);
sb.append(" * 胡辉煜数据库Bean自动生成工具").append(CRLF);
sb.append(" * 数据库表:").append(tableName).append(CRLF);
sb.append(" */").append(CRLF);
Map<String, TableColumn> columns = DBCommon.getTableColumns(connection,
tableName); // 获取列信息
// 类定义
sb.append("public class ").append(firstToUpper(tableName));
sb.append(" implements java.io.Serializable {").append(CRLF);
// 序列化ID
Random r = new Random();
long id = r.nextLong();
sb.append("\tprivate static final long serialVersionUID=");
sb.append(id).append("L;").append(CRLF);
// 字段列表
sb.append(CRLF);
for (String name : columns.keySet()) {
TableColumn column = columns.get(name);
sb.append("\tprivate ").append(column.getClassName()).append(" ");
sb.append(firstToLower(name)).append(";").append(CRLF);
}
// 默认构造函数
sb.append(CRLF);
sb.append("\tpublic ").append(firstToUpper(tableName)).append("(){");
sb.append(CRLF).append("\t}").append(CRLF);
// getter和setter方法
sb.append(CRLF);
for (String name : columns.keySet()) {
TableColumn column = columns.get(name);
String lName = firstToLower(name);
String uName = firstToUpper(name);
// getter
sb.append("\tpublic ").append(column.getClassName()).append(" ");
sb.append("get").append(uName).append(" (){");
sb.append(CRLF);
sb.append("\t\treturn ").append(lName).append(";");
sb.append(CRLF).append("\t}").append(CRLF + CRLF);
// setter
sb.append("\tpublic void set").append(uName).append("(");
sb.append(column.getClassName()).append(" ");
sb.append(firstToLower(name)).append(") {").append(CRLF);
sb.append("\t\tthis.").append(lName);
sb.append(" = ").append(lName).append(";");
sb.append(CRLF).append("\t}").append(CRLF + CRLF);
}
// 复写toString方法
sb.append("\t@Override").append(CRLF);
sb.append("\tpublic String toString() {").append(CRLF);
sb.append("\t\treturn String.format(\"");
for (String name : columns.keySet()) { // // 添加参数格式
sb.append(firstToLower(name)).append(":%s,");
}
sb.deleteCharAt(sb.length() - 1);// 删除最后一个,号
sb.append("\"");
for (String name : columns.keySet()) { // 添加输出参数
sb.append(",").append(firstToLower(name));
}
sb.append(");").append(CRLF);
sb.append("\t}").append(CRLF + CRLF);
// 类定义结束
sb.append("}");
return sb.toString();
}
/**
* 获取指定Table的DAO接口类文件字符串
*
* @param connection
* 数据库连接
* @param tableName
* 表名称
* @param packageName
* 包名称
* @return 指定Table的DAO接口类文件字符串
* @throws Exception
*/
public static String getTableDAOString(Connection connection,
String tableName, String packageName) throws Exception {
StringBuilder sb = new StringBuilder();
Table table = DBCommon.findTable(connection, tableName);
if (table == null) {
throw new Exception(String.format("没有找到表:%s", tableName));
}
tableName = table.getTableName();
// 处理包
sb.append("package ").append(packageName);
sb.append(";").append(CRLF).append(CRLF);
String beanName = packageName.replace(DAO, ENTITY);
beanName += "." + firstToUpper(tableName);
sb.append("import ").append(beanName);
sb.append(";").append(CRLF).append(CRLF);
// 版权信息
sb.append("/**").append(CRLF);
sb.append(" * 胡辉煜数据库DAO自动生成工具").append(CRLF);
sb.append(" * 数据库表:").append(tableName).append(CRLF);
sb.append(" */").append(CRLF);
sb.append("public interface ").append(firstToUpper(tableName));
sb.append("DAO {").append(CRLF);
// 插入方法
sb.append("\tpublic int insert(").append(firstToUpper(tableName));
sb.append(" ").append(firstToLower(tableName));
sb.append(") throws Exception;").append(CRLF);
// 修改方法
sb.append("\tpublic int update(").append(firstToUpper(tableName));
sb.append(" ").append(firstToLower(tableName));
sb.append(") throws Exception;").append(CRLF);
// 删除方法
sb.append("\tpublic int delete(").append(firstToUpper(tableName));
sb.append(" ").append(firstToLower(tableName));
sb.append(") throws Exception;").append(CRLF);
// 查询全部数据方法
sb.append("\tpublic java.util.List<").append(firstToUpper(tableName));
sb.append("> getAllData() throws Exception;").append(CRLF);
// 查询主键数据方法
sb.append("\tpublic ").append(firstToUpper(tableName));
sb.append(" getByKey(").append(firstToUpper(tableName));
sb.append(" ").append(firstToLower(tableName));
sb.append(") throws Exception;").append(CRLF);
// 完成
sb.append("}");
return sb.toString();
}
/**
* 获取指定Table的DAO实现类文件字符串
*
* @param connection
* 数据库连接
* @param tableName
* 表名称
* @param packageName
* 包名称
* @return 指定Table的DAO实现类文件字符串
* @throws Exception
*/
public static String getTableDAOImplString(Connection connection,
String tableName, String packageName) throws Exception {
Map<String, String> methodMap = DBCommon.getTypeMethodMap();
StringBuilder sb = new StringBuilder();
Table table = DBCommon.findTable(connection, tableName);
if (table == null) {
throw new Exception(String.format("没有找到表:%s", tableName));
}
tableName = table.getTableName();
// 处理包
sb.append("package ").append(packageName).append(";");
sb.append(CRLF).append(CRLF);
String daoName = packageName.replace(DAO_IMPL, DAO);
daoName += "." + firstToUpper(tableName) + "DAO";
sb.append("import ").append(daoName);
sb.append(";").append(CRLF).append(CRLF);
String beanName = packageName.replace(DAO_IMPL, ENTITY);
beanName += "." + firstToUpper(tableName);
sb.append("import ").append(beanName);
sb.append(";").append(CRLF).append(CRLF);
// java.util集合包导入
// java.sql包导入
sb.append("import java.util.List;").append(CRLF);
sb.append("import java.util.ArrayList;").append(CRLF);
sb.append("import java.sql.Connection;").append(CRLF);
sb.append("import java.sql.PreparedStatement;").append(CRLF);
sb.appen
没有合适的资源?快使用搜索试试~ 我知道了~
美讯网上购物系统netshop
共225个文件
class:64个
java:63个
jpg:39个
1星 需积分: 9 11 下载量 9 浏览量
2009-04-15
08:08:50
上传
评论 1
收藏 2.43MB RAR 举报
温馨提示
本系统采用jsp+servlet+jsp标签,具有前台和后台 后台的默认账号是:username admin password admin
资源详情
资源评论
资源推荐
收起资源包目录
美讯网上购物系统netshop (225个子文件)
A106.bmp 7KB
DAOCommon.class 20KB
BeanUtil.class 10KB
DBCommon.class 10KB
OrderformDAOImpl.class 10KB
BeanDAO.class 8KB
Query.class 7KB
GoodsDAOImpl.class 7KB
DataBaseTool.class 6KB
PeopleDAOImpl.class 6KB
FileUploadServlet.class 6KB
FileUploadFilter.class 5KB
Servletuploadfile.class 4KB
OrdersubDAOImpl.class 4KB
ServletPayment.class 4KB
AccountDAOImpl.class 4KB
CheckUserFilter.class 4KB
Servletbuygoods.class 4KB
Goods.class 4KB
Servletapply.class 4KB
TableColumn.class 3KB
Orderform.class 3KB
Adminlogin.class 3KB
AdminZhuanlist.class 3KB
StatusDAOImpl.class 3KB
ServletLogin.class 3KB
AdminListdeal.class 3KB
ExtJsTag.class 3KB
ServletUpdateGoodsNum.class 3KB
ExtAJAX.class 3KB
Adminupdatepassword.class 3KB
Admingoodstuijian.class 3KB
MultipartRequestWrapper.class 3KB
AdminListgo.class 3KB
Adminupdategoods.class 3KB
Orderformunion.class 3KB
Servletimformation.class 3KB
CheckRefreshFilter.class 3KB
Servletupdatesubmit.class 3KB
Servletgoodsdelete.class 2KB
CheckRefreshTag.class 2KB
Servletupdate.class 2KB
Admingoodsmanage.class 2KB
ShopInfo.class 2KB
People.class 2KB
Safeexit.class 2KB
FileInfoBean.class 2KB
InitListener.class 2KB
Account.class 2KB
Ordersub.class 2KB
ServletListSubmit.class 2KB
CheckLogin.class 2KB
Admingoodsweihu.class 2KB
EncodingFilter.class 2KB
Adminloginout.class 2KB
Servletloginout.class 2KB
CheckUserFilter$UriInfo.class 2KB
PageDAO.class 1KB
TableImportedKey.class 1KB
Table.class 1KB
Status.class 1KB
ShopListener.class 1KB
hehe.class 953B
TestDB.class 938B
MyLogger.class 721B
.classpath 957B
ext-all.css 81KB
Thumbs.db 99KB
log4j.dtd 5KB
log4j.dtd 5KB
LOGO.gif 2KB
sdge.gif 2KB
ding.gif 1KB
PLCMODEM0022.gif 1KB
myjoyo_dot.gif 66B
sqljdbc.jar 570KB
standard.jar 384KB
log4j-1.2.15.jar 383KB
commons-beanutils-1.7.0.jar 184KB
commons-io-1.1.jar 60KB
commons-logging-1.0.4.jar 37KB
commons-fileupload-1.1.1.jar 31KB
jstl.jar 20KB
DAOCommon.java 32KB
OrderformDAOImpl.java 11KB
DBCommon.java 11KB
DataBaseTool.java 10KB
BeanUtil.java 9KB
BeanDAO.java 8KB
GoodsDAOImpl.java 7KB
PeopleDAOImpl.java 7KB
Query.java 6KB
FileUploadServlet.java 5KB
FileUploadFilter.java 4KB
OrdersubDAOImpl.java 4KB
AccountDAOImpl.java 4KB
Servletapply.java 3KB
Servletuploadfile.java 3KB
CheckUserFilter.java 3KB
ServletPayment.java 3KB
共 225 条
- 1
- 2
- 3
幻影随风
- 粉丝: 14
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1