資源簡介
基于JSP+servlet的水果購物系統(tǒng),基本把所學的servlet所用到的知識點都用上了,代碼簡潔易懂,適合初學者

代碼片段和文件信息
package?com.common;
import?java.lang.reflect.Method;
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.PreparedStatement;
import?java.sql.ResultSet;
import?java.util.ArrayList;
import?javax.naming.Context;
import?javax.naming.InitialContext;
import?javax.sql.DataSource;
public?class?DBConn?{
//連接字符串
??????????????????????????????????????
private?final?static??String?USER?=?“root“;
private?final?static??String?PWD?=?“root“;//這里修改數(shù)據(jù)庫連接密碼
private?final?static??String?DRIVER?=?“com.mysql.jdbc.Driver“;
private?final?static??String?URL?=?“jdbc:mysql://127.0.0.1:3306/gwwz?characterEncoding=utf8“;
/**
?*?
?*?使用了Tomcat的連接池
?*?
?*?@return
public?static?Connection?GetConn()?{
try?{
//獲取Tomcat中的連接,需要使用JNDI這個服務(wù)
???? //通過JNDI找到Tomcat的連接池
???? Context?ctx?=?new?InitialContext();
????
???? DataSource?ds?=?(DataSource)ctx.lookup(“java:comp/env/myPool“);
????
???? Connection?conn?=?ds.getConnection();//連接來自于連接池
????
???? return?conn;
????
}?catch?(Exception?e)?{
e.printStackTrace();
}
???? return?null;
}
?*/
//關(guān)閉連接
public?static?void?CloseConn(ResultSet?rsPreparedStatement?pstmtConnection?conn)?{
try?{
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if?(conn?!=?null?&&?conn.isClosed()?==?false)?{
conn.close();
}
}?catch?(Exception?ex)?{
ex.printStackTrace();
}
}
/**
?*?
?*?
?*?查詢的封裝
?*?@param?sql
?*?@param?obj
?*?@return
?*/
@SuppressWarnings(“unchecked“)
public?static?ArrayListject>?ExecuteQuery(String?sqlobject?obj){
//獲取數(shù)據(jù)庫連接
Connection?conn?=?DBConn.getConn();
PreparedStatement?pstmt?=?null;
ResultSet?rs?=?null;
ArrayList?list?=?new?ArrayList();
try?{
//創(chuàng)建執(zhí)行SQL語句的pstmt對象
pstmt?=?conn.prepareStatement(sql);
//執(zhí)行SQL語句并且返回結(jié)果集
rs?=?pstmt.executeQuery();
while(rs.next()){?//遍歷結(jié)果集
//使用Java反射機制,獲取對象信息,根據(jù)對象的方法,動態(tài)調(diào)用類中的所有set方法,完成對象的賦值
Class?cla?=?Class.forName(obj.getClass().getName());//動態(tài)加載類
Method?[]?ms?=?cla.getMethods();//獲取類的方法
object?currentobj??=?cla.newInstance();//創(chuàng)建該類的實例
for(int?i=0;i if(ms[i].getName().startsWith(“set“)){//獲取以set開頭的方法
Class[]?cc?=?ms[i].getParameterTypes();//獲取當前方法的參數(shù)
if(cc.length>0){//判斷參數(shù)的個數(shù),是否大于0
if(“int“.equals(cc[0].getName().toLowerCase())){//獲取參數(shù)的類型,int類型
ms[i].invoke(currentobjrs.getInt(ms[i].getName().substring(3)));
}
else?if(“float“.equals(cc[0].getName().toLowerCase())){//獲取參數(shù)的類型,float類型
ms[i].invoke(currentobjrs.getFloat(ms[i].getName().substring(3)));
}
else?if(“double“.equals(cc[0].getName().toLowerCase())){//獲取參數(shù)的類型,double類型
ms[i].invoke(currentobjrs.getDouble(ms[i].getName().substring(3)));
}
else?if(“char“.e
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-05-22?18:57??webservlet\
?????目錄???????????0??2019-04-26?16:52??webservlet\20190522\
?????目錄???????????0??2019-04-26?16:52??webservlet\20190522\gwwz\
?????文件????????1852??2019-03-29?17:55??webservlet\20190522\gwwz\.classpath
?????目錄???????????0??2019-05-22?18:58??webservlet\20190522\gwwz\.myeclipse\
?????文件?????????286??2019-03-29?17:55??webservlet\20190522\gwwz\.myme
?????文件????????3075??2019-03-29?17:55??webservlet\20190522\gwwz\.project
?????目錄???????????0??2019-04-26?16:52??webservlet\20190522\gwwz\.settings\
?????文件?????????500??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\.jsdtscope
?????文件?????????276??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\com.genuitec.eclipse.core.prefs
?????文件????????1040??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\com.genuitec.eclipse.j2eedt.core.prefs
?????文件?????????247??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\com.genuitec.eclipse.migration.prefs
?????文件?????????122??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.core.resources.prefs
?????文件?????????629??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.jdt.core.prefs
?????文件?????????537??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.wst.common.component
?????文件?????????303??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件??????????49??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件????????1603??2019-03-29?17:55??webservlet\20190522\gwwz\.settings\org.eclipse.wst.validation.prefs
?????目錄???????????0??2019-05-20?19:41??webservlet\20190522\gwwz\WebRoot\
?????目錄???????????0??2019-04-26?16:52??webservlet\20190522\gwwz\WebRoot\me
?????文件??????????36??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\me
?????目錄???????????0??2019-04-26?16:52??webservlet\20190522\gwwz\WebRoot\My97DatePicker\
?????文件????????1389??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\My97DatePicker.htm
?????文件????????8367??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\WdatePicker.js
?????文件???????20471??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\calendar.js
?????文件?????????223??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\config.js
?????目錄???????????0??2019-04-26?16:52??webservlet\20190522\gwwz\WebRoot\My97DatePicker\lang\
?????文件?????????644??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\lang\en.js
?????文件????????1089??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\lang\zh-cn.js
?????文件????????1088??2019-03-29?17:55??webservlet\20190522\gwwz\WebRoot\My97DatePicker\lang\zh-tw.js
............此處省略635個文件信息
評論
共有 條評論