- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用java反射创建通用的数据库查询方法
package Dao;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;/** * 使用java反射,创建通用的增删改方法,与通用的查询方法 * @authorAnjet * */publicclassBaseDao {private Connection conn;private Statement sta;privatePreparedStatementps;privateResultSetrs;privateResultSetMetaDataRSM;public String getSql() {returnsql;}publicvoidsetSql(String sql) {this.sql = sql;}public Object[] getParam() {returnparam;}publicvoidsetParam(Object[] param) {this.param = param;}private String sql;private Object[] param;/** * 填充sql语句,形成完整sql语句 * @paramparam参数数组 */privatevoidsetParament(Object[] param) {for (inti = 0; i param.length; i++) {try {ps.setObject(i + 1, param[i]);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/** * 根据数据库中的列名获取其在实体类中对应的setter方法 * @paramcolName列名 * @param type 数据类型 * @paramcs实体类 * @return实体类方法 */private Method getMethodByColName(String colName,Stringtype,Classcs){//用来记录在实体类中对应的setter方法Method MD=null;//methodName用来记录方法名String methodName=set;/** * 对列名进行处理 *///1.如果列名中有“_”,则对列名根据“_”进行分割String[] cols=colName.split(_);for(inti=0;icols.length;i++){if(cols[i].length()1){//如果截取的每一段的字符串的长度大于1//则将每一段的第一个字母转为大写methodName+= cols[i].toUpperCase().substring(0, 1)+cols[i].toLowerCase().substring(1);}else{methodName+=cols[i].toUpperCase(); } }if(type==java.sql.Timestamp){type=java.util.Date; }try {//记录列在中实体类中的setter方法MD=cs.getDeclaredMethod(methodName, Class.forName(type));} catch (NoSuchMethodException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}return MD;}/** * 通用的增删改方法 * * @paramsql * @return */publicboolean UID(String sql) {bool
文档评论(0)