222
来源:互联网 发布:老域名交易 编辑:程序博客网 时间:2024/06/17 00:18
intf.db
package com.intf.db;
/**
* 异常枚举定义
* @author
*/
public enum BookExceptionEnum
{
/**
* 未知错误
*/
UNKOWN_ERROR(1000, "UNKOWN_ERROR"),
/**
* 参数错误
*/
PARAMETER_ERROR(1001, "PARAMETER_ERROR"),
/**
* 资源沒发现`
*/
NOT_RESOURCE_ERROR(1002, "NOT_RESOURCE_ERROR"),
/**
* 数据库异常
*/
DATABASE_ERROR(1003, "DATABASE_ERROR"),
/**
* 插入数据库失败
*/
DB_INSERT_ERROR(1004, "DB_INSERT_ERROR"),
/**
* 删除数据库失败
*/
DB_DELETE_ERROR(1005, "DB_DELETE_ERROR"),
/**
* 查询数据库失败
*/
DB_QUERY_ERROR(1005, "DB_QUERY_ERROR"),
/**
* 更新数据库失败
*/
DB_UPDATE_ERROR(1005, "DB_UPDATE_ERROR"),
/*** begin 登录异常定义 **/
LOGIN_USERNAME_OR_PASSWORD_ERROR(1101, "LOGIN_USERNAME_OR_PASSWORD_ERROR"),
LOGIN_STATE_LOCK_ERROR(1102 , "LOGIN_STATE_LOCK_ERROR"),
LOGIN_NOT_AUDITING_ERROR(1103, "LOGIN_NOT_AUDITING_ERROR"),
LOGIN_ERROR(1104, "LOGIN_ERROR"),
USER_ALREADY_LOGIN(1105, "USER_ALREADY_LOGIN"),
USERNAME_EMPTY(1106, "USERNAME_EMPTY"),
PASSWORD_EMPTY(1107, "PASSWORD_EMPTY"),
USER_HASNOT_LOGIN(1108, "USER_HASNOT_LOGIN");
/*** end 登录异常定义 **/
private int id;
private String description;
/**
* 构造方法
* @param id 异常枚举
* @param description 异常内容描述
*/
private BookExceptionEnum(int id, String description)
{
this.id = id;
this.description = description;
}
/**
* 获取Id
* @return int [返回类型说明]
*/
public final int getId()
{
return id;
}
/**
* 获取Description
* @return String [返回类型说明]
*/
public final String getDescription()
{
return description;
}
/**
* 根据类型获取枚举值
* @param enumNum 异常枚举
* @return enumNum [返回类型说明]
*/
public static BookExceptionEnum getSmartExceptionEnum(int enumNum)
{
for (BookExceptionEnum tempEnumNum : BookExceptionEnum.values())
{
if (tempEnumNum.getId() == enumNum)
{
return tempEnumNum;
}
}
return UNKOWN_ERROR;
}
}
package com.intf.db;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 该原注释主要是用来标识属性set方法
*
* @author
*/
@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.METHOD })
public @interface BookMethodDesc
{
String propertyName() default "";
}
package com.intf.db;
import java.io.Serializable;
/**
* 分页描述类
* @author
*/
public class BookPageBean implements Serializable
{
/**
* 实现序列化
*/
private static final long serialVersionUID = -3254069391075856353L;
/** 默认每页显示记录数 */
public static final int PAGECURRENT = 12;
/** 每页显示条数 */
private int pageSize = PAGECURRENT;
/** 当前页数 默认第一页 */
private int currPageNum = 0;
/** *数据总记录数 */
private int dataCount;
/** 总页数 */
private int pageCount;
/** 是否采用本地分页 */
private boolean flag = true;
/**
* 是否采用本地分页
* @return boolean
*/
public boolean isFlag()
{
return flag;
}
/**
* 是否采用本地分页
* @param flag true or false
*/
public void setFlag(boolean flag)
{
this.flag = flag;
}
/**
* 获取每页显示条数
* @return int
*/
public int getPageSize()
{
return pageSize;
}
/**
* 设置每页显示条数
* @param pageSize 每页显示条数
*/
public void setPageSize(int pageSize)
{
this.pageSize = pageSize;
}
/**
* 获取当前页
* @return int
*/
public int getCurrPageNum()
{
return currPageNum;
}
/**
* 设置当前页
* @param currPageNum 设当前前页
*/
public void setCurrPageNum(int currPageNum)
{
this.currPageNum = currPageNum;
}
/**
* 获取数据总记录数
* @return int
*/
public int getDataCount()
{
return dataCount;
}
/**
* 设置数据总记录数
* @param dataCount 数据总记录数
*/
public void setDataCount(int dataCount)
{
this.dataCount = dataCount;
if (dataCount != 0)
{
int number = (dataCount % pageSize) == 0 ? dataCount / pageSize : dataCount / pageSize + 1;
if (number == 0)
{
number = 1;
}
setPageCount(number);
if (this.getCurrPageNum() > this.getPageCount())
{
this.setCurrPageNum(this.getPageCount());
}
else if (this.getCurrPageNum() <= 0)
{
this.setCurrPageNum(1);
}
}
else
{
this.setCurrPageNum(0);
}
}
/**
* 获取总页数
* @return int
*/
public int getPageCount()
{
return pageCount;
}
/**
* 设置总页数
* @param pageCount 页数
*/
public void setPageCount(int pageCount)
{
this.pageCount = pageCount;
}
/**
* 实现tostring方法
* @return String
*/
public String toString()
{
StringBuilder tempBuilder = new StringBuilder();
tempBuilder.append("[{'currPageNum':").append(currPageNum).append("},{").append("'pageCount':").append(
pageCount).append("}]");
return tempBuilder.toString();
}
}
package com.intf.db;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* 存储过程描述对象
* @author
*/
public class BookPrepareInfo implements BookTypes
{
/** 存储过程名称 */
private String prepareName;
/** 但返回结果集的时候需指定该对象类型 */
private Class<Object> clas;
/** 输入参数保存 */
private List<BookTypeInfo> paramList = new ArrayList<BookTypeInfo>();
private BookPageBean pageBean = null;
/** 返回值定义 */
// private List<BookTypeInfo> returnValueds = new ArrayList<BookTypeInfo>();
/**
* 设置存储过程的名字
* @param name 设置存储过程名称
*/
public void setPrepareName(String name)
{
this.prepareName = name;
}
/**
* 设置存储过程参数列表
* @param value 属性值
* @param type 属性类型
* @param paramMode 参数模式,指定输入还是输出
*/
public void addParameter(Object value, int type, int paramMode)
{
BookTypeInfo bookType = new BookTypeInfo();
bookType.setTypeValue(value);
bookType.setType(type);
bookType.setParamMode(paramMode);
paramList.add(bookType);
}
/**
* 设置存储过程参数列表
* @param value 属性值
* @param type 属性类型
* @param key 返回值对应的健
*/
public void addReturnParameter(Object value, String key, int type)
{
BookTypeInfo bookType = new BookTypeInfo();
bookType.setTypeValue(value);
bookType.setType(type);
bookType.setParamMode(BookTypeInfo.OUT_PUT);
bookType.setKey(key);
paramList.add(bookType);
}
/**
* 设置结果集返回的类型
* @param clas 返回类型指定
*/
@SuppressWarnings("unchecked")
public void setResultType(Class clas)
{
this.clas = clas;
}
/**
* 获取结果集返回的类型
* @return Class<Object>
*/
public Class<Object> getClas()
{
return clas;
}
/**
* 获取参数类型信息
* @return List<BookTypeInfo>
*/
public List<BookTypeInfo> getParamList()
{
return paramList;
}
/**
* 获取存储过程名称
* @return String
*/
public String getPrepareName()
{
return prepareName;
}
/**
* 方法回调
* @param result 结果集
* @param str 数据库返回字段
* @throws SQLException
* @throws InvocationTargetException
* @throws IllegalAccessException
* @throws IntrospectionException
* @throws InstantiationException
* @return Object
*/
public Object methodInvoke(ResultSet result, StringBuilder str) throws IllegalAccessException,
InvocationTargetException, SQLException, IntrospectionException, InstantiationException
{
String cStr = str.toString().toLowerCase();
Object obj = this.clas.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(this.clas);
PropertyDescriptor[] propertys = beanInfo.getPropertyDescriptors();
for (int i = 0; i < propertys.length; i++)
{
String propertyName = propertys[i].getName();
Method method = propertys[i].getWriteMethod();
if (method == null)
{
continue;
}
BookMethodDesc desc = method.getAnnotation(BookMethodDesc.class);
propertyName = desc == null ? propertyName : desc.propertyName();
Object value = null;
try
{
if (cStr.indexOf(propertyName.toLowerCase()) != -1)
{
value = result.getObject(propertyName);
method.invoke(obj, value);
}
}
catch (Exception ex)
{
continue;
}
}
return obj;
}
/**
* 获取分页bean
* @return BookPageBean
*/
public BookPageBean getPageBean()
{
return pageBean;
}
/**
* 设置分页bean
* @param pageBean 分页对象
*/
public void setPageBean(BookPageBean pageBean)
{
this.pageBean = pageBean;
}
}
package com.intf.db;
import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 存储过程执行结果记录
* @author
*/
public class BookResult
{
/** 存储过程执行的返回参数列表 */
private List<Object> returnValue = new ArrayList<Object>();
/** 返回值以健值队的形式存储 */
private Map<String, Object> returnMap = new HashMap<String, Object>();
/** 存储过程执行查询结果集合 */
private List<Object> list = new ArrayList<Object>();
/**
* 存储过程执行的返回参数列表
* @return List<Object>
*/
public List<Object> getReturnValues()
{
return returnValue;
}
/**
* 存储过程执行查询结果集合
* @return List<Object>
*/
public List<Object> getResultSet()
{
return list;
}
/**
* 设置结果集
* @param list 数据列表
*/
public void setList(List<Object> list)
{
this.list = list;
}
/**
* 返回值队列
* @return Map<String, Object>
*/
public Map<String, Object> getReturnMap()
{
return returnMap;
}
/**
* 结果包装
* @param statement 数据库操作对象
* @param info 存储过程信息描述
* @throws SQLException
*/
public final void resultPackaging(CallableStatement statement, BookPrepareInfo info)
throws SQLException
{
List<BookTypeInfo> paramList = info.getParamList();
for (int i = 1; i <= paramList.size(); i++)
{
BookTypeInfo tempTypeInfo = paramList.get(i - 1);
if (tempTypeInfo.getParamMode() == BookTypeInfo.OUT_PUT)
{
Object obj = statement.getObject(i);
List<Object> returnValue = this.getReturnValues();
returnValue.add(obj);
if (null != tempTypeInfo.getKey() && !"".equals(tempTypeInfo.getKey()))
{
Map<String, Object> returnMap = this.getReturnMap();
returnMap.put(tempTypeInfo.getKey(), obj);
}
}
}
}
/**
* 结果集封装
* @param result 结果集
* @param info 存储过程描述对象
* @throws SQLException
* @throws IntrospectionException
* @throws NoSuchFieldException
* @throws SecurityException
* @throws InvocationTargetException
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws InstantiationException
*/
public final void resultSetListPackaging(ResultSet result, BookPrepareInfo info) throws SQLException,
IntrospectionException, IllegalAccessException, InvocationTargetException, InstantiationException
{
List<Object> resultList = new ArrayList<Object>();
BookPageBean pageBean = info.getPageBean();
ResultSetMetaData resultNames = result.getMetaData();
StringBuilder builder = new StringBuilder();
for (int i = 1; i <= resultNames.getColumnCount(); i++)
{
builder.append(resultNames.getColumnName(i)).append(",");
}
if (pageBean != null && pageBean.isFlag())
{
int index = 0;
int pageSize = pageBean.getPageSize() * (pageBean.getCurrPageNum() - 1);
while (result.next())
{
index++;
if (index > pageSize)
{
Object obj = info.methodInvoke(result, builder);
resultList.add(obj);
if (resultList.size() == pageBean.getPageSize())
{
break;
}
}
}
}
else
{
while (result.next())
{
Object obj = info.methodInvoke(result, builder);
resultList.add(obj);
}
}
this.setList(resultList);
}
// /**
// * BookResult 描述
// * @return String
// */
// public String toString()
// {
// StringBuilder builder = new StringBuilder();
// builder.append("BookResult = { returnValue = ").append(returnValue).append(" returnMap = ").append(
// returnMap).append(" ResultSet = ").append(list).append(" }");
//
// return builder.toString();
// }
}
package com.intf.db;
/**
* Book类型信息
*
* @author
*/
public class BookTypeInfo
{
/** 表示输出参数 */
public static final int OUT_PUT = 0;
/** 表示输入参数 */
public static final int IN = 1;
/** 类型值 */
private Object typeValue;
/** 类型 */
private int type;
/** 参数模式 */
private int paramMode = BookTypeInfo.IN;
/** 返回值对应的KEY */
private String key = "";
/**
* 参数模式
*
* @return int
*/
public int getParamMode()
{
return paramMode;
}
/**
* 设置参数模式
*
* @param paramMode 参数模式
*/
public void setParamMode(int paramMode)
{
this.paramMode = paramMode;
}
/**
* 获取类型value
*
* @return Object
*/
public Object getTypeValue()
{
return typeValue;
}
/**
* 设置类型值
*
* @param typeValue 类型值
*/
public void setTypeValue(Object typeValue)
{
this.typeValue = typeValue;
}
/**
* 获取类型
*
* @return int
*/
public int getType()
{
return type;
}
/**
* 设置类型
*
* @param type 类型
*/
public void setType(int type)
{
this.type = type;
}
/**
* 获取返回值的key
*
* @return String
*/
public String getKey()
{
return key;
}
/**
* 设置返回值得key
*
* @param key 返回值的key
*/
public void setKey(String key)
{
this.key = key;
}
}
package com.intf.db;
/**
* Book系统JDBC框架数据类型定义
* @author
*/
public interface BookTypes
{
public final static int BIT = -7;
public final static int TINYINT = -6;
public final static int SMALLINT = 5;
public final static int INTEGER = 4;
public final static int BIGINT = -5;
public final static int FLOAT = 6;
public final static int REAL = 7;
public final static int DOUBLE = 8;
public final static int NUMERIC = 2;
public final static int DECIMAL = 3;
public final static int CHAR = 1;
public final static int VARCHAR = 12;
public final static int LONGVARCHAR = -1;
public final static int DATE = 91;
public final static int TIME = 92;
public final static int TIMESTAMP = 93;
public final static int BINARY = -2;
public final static int VARBINARY = -3;
public final static int LONGVARBINARY = -4;
public final static int NULL = 0;
public final static int OTHER = 1111;
public final static int JAVA_OBJECT = 2000;
public final static int DISTINCT = 2001;
public final static int STRUCT = 2002;
public final static int ARRAY = 2003;
public final static int BLOB = 2004;
public final static int CLOB = 2005;
public final static int REF = 2006;
public final static int DATALINK = 70;
public final static int BOOLEAN = 16;
// ------------------------- JDBC 4.0 -----------------------------------
public final static int ROWID = -8;
public static final int NCHAR = -15;
public static final int NVARCHAR = -9;
public static final int LONGNVARCHAR = -16;
public static final int NCLOB = 2011;
public static final int SQLXML = 2009;
}
package com.intf.db;
import java.io.Serializable;
/**
* 返回结果bean
* @author
*/
public class Result implements Serializable
{
private static final long serialVersionUID = 1L;
private String result;
/**
* @return result 结果
*/
public String getResult()
{
return result;
}
/**
* @param result 返回结果
*/
@BookMethodDesc(propertyName = "ok")
public void setResult(String result)
{
this.result = result;
}
}
package com.intf.db;
import java.util.List;
import com.bean.TestTco;
import com.bean.TestVar;
public interface StationInformationIntf
{
public static final String PRO_SITE_VAR_IN = "PRO_SITE_VAR_IN";
public static final String PRO_SITE_TCO_IN = "PRO_SITE_TCO_IN";
public static final String PRO_SITE_VAR_QUERY_BY_SITENAME = "PRO_SITE_VAR_QUERY_BY_SITENAME";
public static final String PRO_SITE_VAR_QUERY_BY_SITEID = "PRO_SITE_VAR_QUERY_BY_SITEID";
public static final String PRO_SITE_TCO_QUERY_BY_SITENAME = "PRO_SITE_TCO_QUERY_BY_SITENAME";
public static final String PRO_SITE_TCO_QUERY_BY_SITEID = "PRO_SITE_TCO_QUERY_BY_SITEID";
public static final String PRO_SITE_VAR_QUERY_BY_PROJECTID = "PRO_SITE_VAR_QUERY_BY_PROJECTID";
public static final String PRO_SITE_TCO_QUERY_BY_PROJECTID = "PRO_SITE_TCO_QUERY_BY_PROJECTID";
/*
* 增加工堪变量信息
*/
@SuppressWarnings("unchecked")
public boolean addStationInformation(List list,int projectId);
/*
* 增加工堪Tco信息
*/
@SuppressWarnings("unchecked")
public boolean addStationTcoInformation(List list,int projectId);
/*
* 根据站点名获取整个的站点的软件变量信息
*/
public TestVar getStationVarInformationAllByName(String sitename,int projectId);
/*
* 根据站点id获取整个的站点的软件变量信息
*/
public TestVar getStationVarInformationById(String siteid,int projectId);
/*
* 根据站点名获取整个的站点的TCO信息
*/
public TestTco getStationTcoInformationAllByName(String sitename,int projectId);
/*
* 根据站点id获取整个的站点的TCO信息
*/
public TestTco getStationTcoInformationById(String siteid,int projectId);
/*
* 获取整个的站点的软件变量信息
*/
public List<TestVar> getStationVarInformationByProjectId(int projectId);
/*
* 获取整个的站点的TCO信息
*/
public List<TestTco> getStationTcoInformationByProjectId(int projectId);
}
package com.intf.db;
import java.sql.Connection;
import java.sql.SQLException;
/**
* 数据库连接池接口定义
*
* @author
*/
public interface SysConnPool
{
/**
* 从连接池中返回数据库连接
*
* @return Connection
* @throws SQLException
*/
public Connection getConnection() throws SQLException;
}
package com.intf.db;
import com.intf.exception.BookDBException;
/**
* 数据库操作接口
* @author
*/
public interface SysStatement
{
// /**
// * 提交事务
// */
// public void commit();
//
// /**
// * 事务回滚
// */
// public void rollback();
/**
* 执行操作之后返回结果
* @param info 存储过程描述对象
* @return BookResult 返回结果
*/
public BookResult execute(BookPrepareInfo info) throws BookDBException;
/**
* 执行查询之后返回结果集
* @param info 存储过程描述对象
* @return BookResult 返回结果集
*/
public BookResult executeQuery(BookPrepareInfo info) throws BookDBException;
/**
* 执行操作之后返回结果
* @param info 存储过程描述对象
* @param flag true表示自动提交,false不提交。
* @return BookResult 返回结果
*/
public BookResult executeEx(BookPrepareInfo info, boolean flag) throws BookDBException;
/**
* 执行查询之后返回结果集
* @param info 存储过程描述对象
* @param flag true表示自动提交,false不提交。
* @return BookResult 返回结果集
*/
public BookResult executeQueryEx(BookPrepareInfo info, boolean flag) throws BookDBException;
}
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 222
- 孙鑫vc++ 8 对话框(2) 属性表单和向导的创建
- 解决IE6图片缩小后出现锯齿的问题
- KMP
- SVG脚本编程的一些技巧
- linux 在 rescue 模式下修复 MBR(转)
- 222
- javascript 屏蔽页面 刷新
- Android开发之-Activity
- USACO 3.4 American Heritage
- 精美绝伦的961荧光币--清荷绿/凤凰红/龙凤呈祥探讨
- Linux 打包 压缩 解压
- IOS获取本地时间
- Android下事件解析异常解决方法
- Jquery-zTree的基本用法