亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用jdbc實現簡單的mvc模式的增刪改查

2019-11-14 23:32:14
字體:
來源:轉載
供稿:網友
使用jdbc實現簡單的mvc模式的增刪改查

Mvc模式設計:

視圖:添加界面(addUser.jsp),修改界面(updateUser.jsp),顯示頁面(allUser.jsp)

控制器:添加信息控制器(AddUserServlet),修改信息控制器(UpdateUserServlet),刪除信息控制器(DeleteUserServlet),顯示信息控制器(FindAllUserServlet)

模型:userbean

數據庫:DBBean

總體設計:

  添加信息模塊:用戶通過添加信息界面(addUser.jsp)提交表單,提交的信息有添加信息控制器(AddUserServlet)控制,控制器通過調用userBean的add方法添加信息,在request對象中添加成功與否的消息,成功則返回成功,跳轉到顯示界面,失敗則返回失敗消息,跳轉到添加信息頁面。

  修改信息模塊:用戶是通過點擊顯示頁面相應項的修改按鈕進入到修改頁面中,從顯示頁面跳轉過來時,request對象中封裝的信息會顯示在當前頁面中的特定位置(通過表達式語言),提交表單之后交給修改信息控制器,通過調用更新方法更新,在request對象中封裝成功與否消息,成功則返回成功,跳轉到顯示界面,失敗則返回失敗消息,跳轉到添加信息頁面。

  顯示信息模塊:顯示當前頁的所有用戶信息,每一條信息都有修改和刪除選項,修改則進入修改頁面,刪除則交給刪除控制器,控制器通過調用刪除方法。

詳細設計:

數據庫層:DBBean

實現功能:獲得與數據庫的連接,執行查詢操作返回結果集,執行更新操作,關閉連接。

 1 public class DBBean { 2     PRivate Connection con; 3     private Statement stmt; 4     private ResultSet rs; 5     public DBBean() { 6          7     } 8     //獲取數據庫的連接 9     public Connection getConnection() throws Exception10     {11         String url="jdbc:MySQL://localhost:3306/bookstore";12         String dbuser="root";13         String dbpass="";14         if(con==null)15         {16             Class.forName("com.mysql.jdbc.Driver");17             con=DriverManager.getConnection(url, dbuser, dbpass);18         }19         return con;20     }21     22     //執行查詢語句,返回結果集23     public ResultSet executeQuery(String sql) throws Exception24     {25         if(con==null)26         {27             throw new Exception("沒有連接對象可用");28         }29         stmt=con.createStatement();30         rs=stmt.executeQuery(sql);31         return rs;32     }33     34     public int executeUpdate(String sql)throws Exception35     {36         if(con==null)37         {38             throw new Exception("沒有連接對象可用");39         }40         stmt=con.createStatement();41         42         return stmt.executeUpdate(sql);43     }44     45     public void close()46     {47         if(rs!=null)48             try {49                 rs.close();50             } catch (SQLException e) {51                 e.printStackTrace();52             }53         try {54             stmt.close();55         } catch (SQLException e) {56             // TODO Auto-generated catch block57             e.printStackTrace();58         }59         try {60             con.close();61         } catch (SQLException e) {62             // TODO Auto-generated catch block63             e.printStackTrace();64         }65     }66 }
View Code

模型層設計:UserBean

1.add();添加用戶信息

 1 public void add() throws Exception { 2         Connection con = null; 3         DBBean db = new DBBean(); 4         String sql = "insert into usertable values('"+userid+"','"+username+"','"+userpass+"','"+type+"','"+new java.sql.Date(birthday.getTime())+"','"+degree+"','"+local+"','"+email+"','"+address+"','"+comment+"')"; 5  6         try { 7             con = db.getConnection(); 8             db.executeUpdate(sql); 9         } catch (Exception e) {10             System.out.println(e.toString());11 12         } finally {13             db.close();14         }15     }
View Code

2.UserBeanfindUserById(Stringuserid);根據主鍵查詢用戶

 1 public UserBean findUserById(String userid) throws Exception { 2         Connection con = null; 3         ResultSet rs=null; 4         DBBean db = new DBBean(); 5         String sql = "select * from usertable where userid='"+userid+"'"; 6  7         try { 8             con = db.getConnection(); 9             rs=db.executeQuery(sql);10             11             if(rs.next())12             {13                 String tmpUserid=rs.getString(1);14                 String tmpUsername=rs.getString(2);15                 String tmpUserpass=rs.getString(3);16                 String tmpType=rs.getString(4);17                 java.util.Date tmpBirthday=rs.getDate(5);18                 String tmpDegree=rs.getString(6);19                 String tmpLocal =rs.getString(7);20                 String tmpEmail=rs.getString(8);21                 String tmpAddress=rs.getString(9);22                 String tmpComment=rs.getString(10);23                 UserBean user=new UserBean();24                 user.setAddress(tmpAddress);25                 user.setBirthday(tmpBirthday);26                 user.setComment(tmpComment);27                 user.setDegree(tmpDegree);28                 user.setEmail(tmpEmail);29                 user.setLocal(tmpLocal);30                 user.setType(tmpType);31                 user.setUserid(tmpUserid);32                 user.setUsername(tmpUsername);33                 user.setUserpass(tmpUserpass);34                 return user;35             }36         } catch (Exception e) {37             System.out.println(e.toString());38         } finally {39             db.close();40         }    41         return null;42     }
View Code

3.intupdate();更新用戶信息

 1 public int update(String userid) throws Exception { 2         Connection con=null; 3         DBBean db = new DBBean(); 4         String sql="update usertable set username='"+username+"',userpass='"+userpass+"',birthday='"+new java.sql.Date(birthday.getTime())+"',degree='"+degree+ 5                 "',local='"+local+"',email='"+email+"',address='"+address+"',comment='"+comment+"' where userid='"+userid+"'"; 6         try 7         { 8             con=db.getConnection(); 9             return db.executeUpdate(sql);10         }catch(Exception e)11         {12             System.out.println(e.toString());13         }14         finally{db.close();}15         return 0;16     }
View Code

4.Intdelete(Stringuserid);//根據傳入的用戶id刪除用戶信息

 1 public int delete(String userid) throws Exception { 2         Connection con=null; 3         DBBean db = new DBBean(); 4         String sql="delete  from usertable where userid='"+userid+"'"; 5         try 6         { 7             con=db.getConnection(); 8             return db.executeUpdate(sql); 9         }catch(Exception e)10         {11             System.out.println(e.toString());12         }13         finally{db.close();}14         return 0;15     }
View Code

5.booleanhasExist(Stringuserid);//查詢用戶是否存在

 1 public boolean hasExist(String userid) throws Exception { 2         boolean find=false; 3         Connection con = null; 4         ResultSet rs=null; 5         DBBean db = new DBBean(); 6         String sql = "select * from usertable where userid='"+userid+"'"; 7         try 8         { 9             con=db.getConnection();10             rs= db.executeQuery(sql);11             if(rs.next())12             {13                 find=true;14             }15             else16             {17                 find =false;18             }19         }catch(Exception e)20         {21             System.out.println(e.toString());22         }23         finally{db.close();}24     return find;25         26     }
View Code

6.IntegergetPageCount()查詢數據庫中總數對應在頁面顯示的總頁數(10/頁)

 1 public Integer getPageCount() throws Exception { 2         int pageCount=1; 3         Connection con = null; 4         ResultSet rs=null; 5         DBBean db = new DBBean(); 6         String sql="select count(*) from usertable"; 7         try 8         { 9             con=db.getConnection();10             rs= db.executeQuery(sql);11             if(rs.next())12             {13                 int n=rs.getInt(1);14                 pageCount=(n-1)/10+1;15             }16             17         }catch(Exception e)18         {19             System.out.println(e.toString());20         }21         finally{db.close();}22         return new Integer(pageCount);23     }
View Code

7.ArrayListfindAllUser(StringpageNo)返回當前頁面的所有數據

//計算當前頁的開始和結束行數,從數據庫中查詢所有數據,循環遍歷結果集,把在當前頁的內容放在ArrayList中

 1 public ArrayList findAllUser(String pageNo) throws Exception { 2         ArrayList<UserBean> userlist=new ArrayList<UserBean>(); 3         Connection con = null; 4         ResultSet rs=null; 5         DBBean db = new DBBean(); 6         String sql="select * from usertable"; 7         try 8         { 9             con=db.getConnection();10             rs= db.executeQuery(sql);11             int ipageNo=1;12             try{13                 iPageNo=Integer.parseInt(pageNo);14             }15             catch(Exception e){}16             int begin=(iPageNo-1)*10+1;//當前頁面開始的記錄17             int end=iPageNo*10;//當前頁面結束的記錄18             int index=1;19             UserBean user=null;20             while(rs.next())21             {22                 if(begin>index)//遇到在當前頁面之前的記錄直接跳過23                     continue;24                 if(end<index)//遇到在當前頁面之后的記錄退出循環25                     break;26                 String tmpUserid=rs.getString(1);27                 String tmpUsername=rs.getString(2);28                 String tmpUserpass=rs.getString(3);29                 String tmpType=rs.getString(4);30                 java.util.Date tmpBirthday=rs.getDate(5);31                 String tmpDegree=rs.getString(6);32                 String tmpLocal =rs.getString(7);33                 String tmpEmail=rs.getString(8);34                 String tmpAddress=rs.getString(9);35                 String tmpComment=rs.getString(10);36                 user=new UserBean();37                 user.setAddress(tmpAddress);38                 user.setBirthday(tmpBirthday);39                 user.setComment(tmpComment);40                 user.setDegree(tmpDegree);41                 user.setEmail(tmpEmail);42                 user.setLocal(tmpLocal);43                 user.setType(tmpType);44                 user.setUserid(tmpUserid);45                 user.setUsername(tmpUsername);46                 user.setUserpass(tmpUserpass);47                 userlist.add(user);//查找到的記錄封裝好放在userlist中48                 index++;49             }50             51             52         }catch(Exception e)53         {}54         finally{db.close();}55         return userlist;56     }
View Code

控制器設計

1.添加用戶控制器:從request對象中取出內容封裝在UserBean對象中,判斷用戶id是否存在,調用add方法添加信息,跳轉到顯示頁面

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         String tmpUserid=request.getParameter("userid"); 4         String tmpUsername=request.getParameter("username"); 5         String tmpUserpass=request.getParameter("userpass"); 6         String birthday=request.getParameter("birthday"); 7         DateFormat df=new SimpleDateFormat("yyyy-mm-dd"); 8         java.util.Date tmpBirthday=null; 9         try10         {tmpBirthday=df.parse(birthday);11             12         }catch(Exception e)13         {}14         15         String tmpDegree=request.getParameter("degree");16         tmpDegree=new String(tmpDegree.getBytes("8859_1"));17         String tmpLocal =request.getParameter("local");18         tmpLocal=new String(tmpLocal.getBytes("8859_1"));19         String tmpEmail=request.getParameter("email");20         String tmpAddress=request.getParameter("address");21         String tmpComment=request.getParameter("comment");22         UserBean user=new UserBean();23         user.setAddress(tmpAddress);24         user.setBirthday(tmpBirthday);25         user.setComment(tmpComment);26         user.setDegree(tmpDegree);27         user.setEmail(tmpEmail);28         user.setLocal(tmpLocal);29         30         user.setUserid(tmpUserid);31         user.setUsername(tmpUsername);32         user.setUserpass(tmpUserpass);33         String forward=null;34         String info=null;35         try {36             if(user.hasExist(tmpUserid))37             {38                 info="用戶已存在";39                 forward="addUser.jsp";40             }41             else42             {43                 try{44                     user.add();45                     forward="FindAllUser";46                     info="添加成功";47                 }catch(Exception e)48                 {49                     info="數據庫異常";50                     forward="FindAllUser";51                 }52             }53         } catch (Exception e) {54             // TODO Auto-generated catch block55             e.printStackTrace();56         }57         58         request.setAttribute("info", info);59         RequestDispatcher rd=request.getRequestDispatcher(forward);//更新成功返回用戶列表界面60         rd.forward(request, response);61     }
View Code

2.更新用戶信息控制器:

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         String tmpUserid=request.getParameter("userid"); 4         String tmpUsername=request.getParameter("username"); 5         String tmpUserpass=request.getParameter("userpass"); 6         String birthday=request.getParameter("birthday"); 7         DateFormat df=new SimpleDateFormat("yyyy-mm-dd"); 8         java.util.Date tmpBirthday=null; 9         try10         {tmpBirthday=df.parse(birthday);11             12         }catch(Exception e)13         {}14         15         String tmpDegree=request.getParameter("degree");16         String tmpLocal =request.getParameter("local");17         String tmpEmail=request.getParameter("email");18         String tmpAddress=request.getParameter("address");19         String tmpComment=request.getParameter("comment");20         UserBean user=new UserBean();21         user.setAddress(tmpAddress);22         user.setBirthday(tmpBirthday);23         user.setComment(tmpComment);24         user.setDegree(tmpDegree);25         user.setEmail(tmpEmail);26         user.setLocal(tmpLocal);27         28         user.setUserid(tmpUserid);29         user.setUsername(tmpUsername);30         user.setUserpass(tmpUserpass);31         String info;32         try{33             if(user.update(tmpUserid)>0)34             {35                 info="信息更新成功";36             }37             else38             {39                 info="信息更新失敗";40             }41             42         }catch(Exception e)43         {44             info="數據庫異常";45         }46         request.setAttribute("info", info);47         RequestDispatcher rd=request.getRequestDispatcher("FindAllUser");//更新成功返回用戶列表界面48         rd.forward(request, response);    49     }
View Code

3.顯示信息控制器:

//先獲取當前頁碼,根據當前頁碼調用UserBean中的方法返回userlist放在request對象中,跳轉到顯示頁面。

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         int pageNo=1; 4         String strPageNo=request.getParameter("pageNo"); 5         if(strPageNo!=null) 6         { 7             pageNo=Integer.parseInt(strPageNo); 8         } 9         UserBean user=new UserBean();10         try{11             ArrayList<UserBean> userlist=user.findAllUser(String.valueOf(pageNo));12             request.setAttribute("userlist", userlist);13             Integer pageCount=user.getPageCount();14             request.setAttribute("pageCount", pageCount);15             request.setAttribute("pageNo", pageNo);16         }catch(Exception e)17         {18             19         }20         RequestDispatcher rd=request.getRequestDispatcher("userlist.jsp");21         rd.forward(request, response);22     }
View Code

4.刪除用戶信息控制器:

 1 public void doGet(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3         String userid=request.getParameter("userid"); 4         UserBean user=new UserBean(); 5         String info=null; 6         try 7         { 8             if(user.delete(userid)>0) 9             {10                 info="刪除成功";11             }12             else13             {14                 info="刪除失敗 ";15             }16         }catch(Exception e)17         {18             info="數據異常";19         }20         request.setAttribute("info", info);21         RequestDispatcher rd=request.getRequestDispatcher("FindAllUser");22         rd.forward(request, response);23 24     }
View Code

視圖設計

只簡單介紹顯示頁面的設計:

1.Javascript部分:

<script language="javascript">    function init() {        alert("${info}");   獲取request對象中的info消息顯示    }    </script><c:if test="${!empty info}"><script language="javascript">    window.onload=init;    </script></c:if>

2.

<!--分頁顯示-->    <table align="center">        <tr>            <td>共有${pageCount}頁,這是第${pageNo}頁</td><!--用表達式語言取出request對象中的消息-->            <c:if test="${pageNo==1 }"><!--第一頁和最后一頁要特別對待,第一頁中的‘第一頁’和‘上一頁’不能顯示為超鏈接,最后一頁中的‘最后一頁’和‘下一頁’不能顯示為超鏈接-->                <td>第一頁</td>                <td>上一頁</td>            </c:if>            <!-- 如果不是第一頁顯示超鏈接 -->            <c:if test="${pageNo!=1 }">                <td><a href="findAllUser?pageNo=1">第一頁</a></td>                <td><a href="findAllUser?pageNo=${pageNo-1 }">上一頁</a></td>            </c:if>            <c:if test="${pageNo==pageCount }">    <td>  下一頁</td>    <td>  最后一頁</td>       </c:if>            <!-- 如果不是第一頁顯示超鏈接 -->            <c:if test="${pageNo!=1 }">                <td><a href="FindAllUser?pageNo=${pageNo+1 }">下一頁</a></td>                <td><a href="FindAllUser?pageNo=pageCount">最后一頁</a></td>            </c:if>            <td>                <form action="FindAllUser">                    跳轉到<input type="text" name="pageNo">頁 <input type="submit"                        value="跳轉">                </form>            </td>        </tr>    </table>    <table align="center">    <tr><td>用戶編號</td>    <td>用戶名</td>    <td>生日</td>    <td>學歷</td>    <td>地區</td>    <td>Email</td>    <td>地址</td>    </tr>    <c:forEach items="${userlist }" var="user">        <tr>            <td>${user.userid }</td>            <td>${user.username }</td>            <td>${user.birthday }</td>            <td>${user.degree }</td>            <td>${user.local }</td>            <td>${user.email }</td>            <td>${user.address }</td>            <td>...</td>            <td>        <!--兩個表單分別用來處理刪除和修改操作-->            <form action="DeleteUser" method="post" onSubmit="return confirm('真的要刪除該用戶嗎?');">            <input type="hidden" name="userid" value="${user.userid }">            <input type="submit" value="刪除">            </form>            </td>            <td>            <form action="UpdateFindUser" method="post" >            <input type="hidden" name="userid" value="${user.userid }">            <input type="submit" value="修改">            </form>            </td>        </tr>    </c:forEach></table>

tips:添加信息和修改信息頁面比較簡單,在這里不贅述了。

  總結:

    從這個小例子中學到了什么:jdbc連接數據庫實現增刪改查,mvc模式的理解,表達式的使用,標簽庫的初步了解。

   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩激情第一页| 欧美激情精品久久久久久黑人| 久久精品成人一区二区三区| 精品欧美激情精品一区| 91久久在线观看| 国产综合久久久久| 久久久亚洲国产| 亚洲国产精品va| 国产精品免费久久久久久| 欧美日韩中文字幕| 日韩成人中文字幕在线观看| 自拍亚洲一区欧美另类| 国产国产精品人在线视| 国产成人av网| 日本道色综合久久影院| www.国产精品一二区| 国产精品精品视频| 麻豆成人在线看| 日韩大陆欧美高清视频区| 亚洲无限乱码一二三四麻| 亚洲天堂色网站| 午夜精品在线视频| 色小说视频一区| 精品国产乱码久久久久久虫虫漫画| 国产精品人成电影在线观看| 亚洲欧洲一区二区三区在线观看| 黑人巨大精品欧美一区二区一视频| 日本精品中文字幕| 国产精品r级在线| 久久国产精品久久精品| 久久五月天色综合| 日韩视频亚洲视频| 怡红院精品视频| 久久精品最新地址| 精品国内产的精品视频在线观看| 国产亚洲一区二区在线| 久久国产加勒比精品无码| 国产精品jvid在线观看蜜臀| 日产精品久久久一区二区福利| 国产裸体写真av一区二区| 91精品久久久久| 国产成人免费91av在线| 91精品久久久久久久| 色偷偷av亚洲男人的天堂| 亚洲欧美激情在线视频| 国产99久久久欧美黑人| 国产精品久久电影观看| 日本a级片电影一区二区| 欧美精品免费在线观看| 法国裸体一区二区| 欧美成人亚洲成人| 成人免费在线视频网址| 日韩美女视频免费看| 国产日韩综合一区二区性色av| 91av视频在线播放| 97视频在线观看免费| 亚洲欧美日韩区| 青青久久av北条麻妃海外网| 亚洲国产精品va在线看黑人动漫| 九九热最新视频//这里只有精品| 国产精品pans私拍| 色综合亚洲精品激情狠狠| 亚洲精品视频免费| 国产亚洲欧洲黄色| 国产免费久久av| 91久久综合亚洲鲁鲁五月天| 狠狠综合久久av一区二区小说| 亚洲18私人小影院| 精品亚洲精品福利线在观看| 亚洲国内精品在线| 成人免费观看a| 国产日韩欧美夫妻视频在线观看| 国产精品盗摄久久久| 亚洲精品狠狠操| 欧美野外猛男的大粗鳮| 欧美色欧美亚洲高清在线视频| 亚洲最新av在线| 91日韩在线播放| 亚洲国产精品热久久| 国产精品久久久久久久一区探花| 日韩美女写真福利在线观看| 国产精品中文字幕久久久| 91中文精品字幕在线视频| 久久精品电影一区二区| 亚洲精品国产品国语在线| 久久久久久com| 一区国产精品视频| 国产精品激情av电影在线观看| 日韩在线观看免费av| 久久中文字幕一区| 欧美激情精品久久久久久久变态| 91视频免费网站| 欧美性猛交99久久久久99按摩| 亚洲区一区二区| 国产成人精品免高潮在线观看| 亚洲片国产一区一级在线观看| 亚洲自拍偷拍第一页| 国产午夜精品麻豆| 欧美日韩中文字幕在线视频| 亚洲激情在线观看视频免费| 国产精品极品美女在线观看免费| 亚洲精品日韩在线| 欧美日韩第一视频| 欧美激情在线狂野欧美精品| 在线亚洲午夜片av大片| 精品亚洲aⅴ在线观看| 亚洲精品国产综合区久久久久久久| 国产精品男女猛烈高潮激情| 91久久久久久久一区二区| 正在播放欧美一区| 久久久精品国产亚洲| 久久视频免费观看| 92福利视频午夜1000合集在线观看| 欧美黑人国产人伦爽爽爽| 亚洲男女性事视频| 欧美精品一本久久男人的天堂| 亚洲成人黄色网| 国产精品高清免费在线观看| 日韩综合视频在线观看| 日韩网站免费观看高清| 57pao成人国产永久免费| 欧美精品第一页在线播放| 国产精品日韩专区| 国产一区二区三区在线观看网站| 欧美专区福利在线| 日韩欧美在线观看视频| 亚洲免费视频在线观看| 91久久在线播放| 久久综合免费视频| 国产精品久久久久高潮| 欧美日韩第一页| 一区二区欧美激情| 亚洲韩国欧洲国产日产av| 欧美与黑人午夜性猛交久久久| 亚洲一级一级97网| 久久国内精品一国内精品| 亚洲欧美在线免费| 精品国产91乱高清在线观看| 亚洲欧美成人一区二区在线电影| 日韩欧美综合在线视频| 国产精品成人观看视频国产奇米| 日韩视频免费在线观看| 精品中文字幕久久久久久| 久久中文字幕视频| 午夜精品久久久久久久白皮肤| 精品久久久久久电影| 亚洲视频日韩精品| 久久久久亚洲精品成人网小说| 中文国产亚洲喷潮| 欧美午夜精品久久久久久浪潮| 91综合免费在线| 久久亚洲精品一区| 亚洲欧美另类在线观看| 欧美日韩亚洲国产一区| 国产精品普通话| 精品美女国产在线| 性欧美亚洲xxxx乳在线观看| 在线中文字幕日韩| 色婷婷综合久久久久中文字幕1| 中文字幕日韩在线观看| 91精品久久久久| 日韩av不卡在线| 成人久久一区二区三区| 中文字幕亚洲情99在线|