基于servletjspmysql的表格增删改查操作
生活随笔
收集整理的這篇文章主要介紹了
基于servletjspmysql的表格增删改查操作
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼量對(duì)于初學(xué)者略高,如果看博客不能大致感覺(jué)出思路,建議前往下在鏈接:本項(xiàng)目的源碼分享。
https://download.csdn.net/download/qq_41946557/11639971
當(dāng)然也可以留言。
如果感覺(jué)可以接受,建議先思考思考!希望多多指正,共同進(jìn)步。
數(shù)據(jù)庫(kù):
所需jar包:
主頁(yè):
添加球員:
條件查詢(xún)頁(yè)面:即可根據(jù)不同的屬性查詢(xún)。
進(jìn)行一次添加:
效果圖:
條件查詢(xún)比如查名字里帶有喬治且29歲的:
效果演示:
整個(gè)代碼結(jié)構(gòu):
大致內(nèi)容骨架:
主要代碼:
PlayDaoImpl:
package com.henu.dao.impl;import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map;import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.MapHandler; import org.apache.commons.dbutils.handlers.MapListHandler;import com.henu.bean.Player; import com.henu.dao.PlayerDao; import com.henu.utils.DateUtil; import com.henu.utils.JdbcUtil;public class PlayerDaoImpl implements PlayerDao{/*** 查詢(xún)?nèi)?/public List<Player> findAllPlayer() {QueryRunner qRunner = new QueryRunner(JdbcUtil.getDataSource());String sql = "select * from player order by id desc";List<Player> result = new ArrayList<Player>();try {// MapListHandler獲取所有的值以key-value的形式存入Map<String,Object>List<Map<String,Object>> list = qRunner.query(sql, new MapListHandler());//遍歷list取map的值做判斷,并賦給playerfor(Map<String,Object> map:list){Player player = new Player();for(Map.Entry<String,Object> entry:map.entrySet()){if("id".equals(entry.getKey())){player.setId((Integer)entry.getValue());}else if("name".equals(entry.getKey())){player.setName((String)entry.getValue());}else if("age".equals(entry.getKey())){player.setAge((Integer)entry.getValue());}else if("birthday".endsWith(entry.getKey())){player.setBirthday((Date)entry.getValue());}else if("hobby".equals(entry.getKey())){String str = (String)entry.getValue();if(str!="" && str!=null){str = str.substring(0,str.length()-1);String[] ss = str.split("#");player.setHobby(ss);}}}result.add(player);}} catch (SQLException e) {e.printStackTrace();}return result;}/*** 添加球員*/public int insertPlayer(Player player) {QueryRunner qRunner = new QueryRunner(JdbcUtil.getDataSource());String sql = "insert into player values(null,?,?,?,?)";String hobby = "";/*** 將得到的player.getHobby()進(jìn)行組裝成字符串 */if (player.getHobby()!=null) {for (String str : player.getHobby()) {hobby = hobby+str+"#";}}int res = 0;try {res = qRunner.update(sql,new Object[]{player.getName(),player.getAge(),player.getBirthday(),hobby});} catch (SQLException e) {e.printStackTrace();}return res;}/*** 刪除球員*/public int deletePlayer(int id) {QueryRunner qRunner = new QueryRunner(JdbcUtil.getDataSource());String sql = "delete from player where id=?";int res = 0;try {res = qRunner.update(sql,id);} catch (SQLException e) {e.printStackTrace();}return res;}/*** 更新球員*/public int updatePlayer(Player player) {int result = 0;QueryRunner qr = new QueryRunner(JdbcUtil.getDataSource());String sql = "update player set name=?,age=?,birthday=?,hobby=? where id=?";String hobby = "";if(player.getHobby()!=null){for(String str:player.getHobby()){hobby=hobby+str+"#";}}try {result = qr.update(sql, new Object[]{player.getName(),player.getAge(),player.getBirthday(),hobby,player.getId()});} catch (SQLException e) {e.printStackTrace();}return result;}/*** 根據(jù)id查詢(xún)Player*/public Player findPlayerById(int id) {Player player = new Player();QueryRunner qr = new QueryRunner(JdbcUtil.getDataSource());String sql = "select * from player where id=?";try {//因?yàn)楦鶕?jù)id查詢(xún),數(shù)據(jù)庫(kù)中id為主鍵,所以只會(huì)有一條數(shù)據(jù),因此使用new MapHandlerMap<String,Object> map = qr.query(sql, new MapHandler(),id);for(Map.Entry<String,Object> entry:map.entrySet()){if("id".equals(entry.getKey())){player.setId((Integer)entry.getValue());}else if("name".equals(entry.getKey())){player.setName((String)entry.getValue());}else if("age".equals(entry.getKey())){player.setAge((Integer)entry.getValue());}else if("birthday".endsWith(entry.getKey())){player.setBirthday((Date)entry.getValue());}else if("hobby".equals(entry.getKey())){String str = (String)entry.getValue();if(str!="" && str!=null){str = str.substring(0,str.length()-1);String[] ss = str.split("#");player.setHobby(ss);}}}} catch (SQLException e) {e.printStackTrace();}return player;}/*** 根據(jù)不同條件進(jìn)行查詢(xún)數(shù)據(jù)中的數(shù)據(jù)*/public List<Player> findPlayerByCondition(Player player) {//首先定義一個(gè)集合進(jìn)行查詢(xún)結(jié)果的收集List<Player> result = new ArrayList<Player>();QueryRunner qr = new QueryRunner(JdbcUtil.getDataSource());//String sql = "select * from player where name like ? and age = ? and birthday=? and hobby=?";//因?yàn)槲覀兊男枨笫荁yCondition()所以進(jìn)行拼接字符串String sql = this.getSQL(player);//輸出sql語(yǔ)句進(jìn)行驗(yàn)證,做這一段時(shí)建議使用test測(cè)試System.out.println(sql+"<<<<");try {List<Map<String,Object>> list = qr.query(sql, new MapListHandler());for(Map<String,Object> map:list){Player p = new Player();for(Map.Entry<String,Object> entry:map.entrySet()){if("id".equals(entry.getKey())){p.setId((Integer)entry.getValue());}else if("name".equals(entry.getKey())){p.setName((String)entry.getValue());}else if("age".equals(entry.getKey())){p.setAge((Integer)entry.getValue());}else if("birthday".endsWith(entry.getKey())){p.setBirthday((Date)entry.getValue());}else if("hobby".equals(entry.getKey())){String str = (String)entry.getValue();if(str!="" && str!=null){str = str.substring(0,str.length()-1);String[] ss = str.split("#");p.setHobby(ss);}}}result.add(p);}} catch (SQLException e) {e.printStackTrace();}return result;}/*** * @param player* @return*/public String getSQL(Player player){//where 1=1加上這句話(huà)為了下面的拼接StringBuilder sb = new StringBuilder("select * from player where 1=1");if(player.getName()!=null && !"".equals(player.getName())){sb.append(" and name like '%").append(player.getName()).append("%'");}if(player.getAge()!=0){sb.append(" and age=").append(player.getAge());}/*if(player.getBirthday()!=null && !"".equals(player.getBirthday())){sb.append(" and birthday='").append(DateUtil.dateToString(player.getBirthday())).append("'");}*/if(player.getBirthday()!=null && !"".equals(player.getBirthday())){sb.append(" and birthday='").append(DateUtil.dateToString(player.getBirthday())).append("'");}if(player.getHobby()!=null && player.getHobby().length>0){String hobby = "";for(String str:player.getHobby()){hobby=hobby+str+"#";}sb.append(" and hobby='").append(hobby).append("'");}return sb.toString();}}PlayerServiceImpl:
package com.henu.service.impl;import java.util.List;import com.henu.bean.Player; import com.henu.dao.PlayerDao; import com.henu.dao.impl.PlayerDaoImpl; import com.henu.service.PlayerService;public class PlayerServiceImpl implements PlayerService{PlayerDao playerDao = new PlayerDaoImpl();/*** 全部球員*/public List<Player> allPlayer() {return playerDao.findAllPlayer();}/*** 添加球員*/public int addPlayer(Player player) {return playerDao.insertPlayer(player);}/*** 刪除球員*/public int delPlayer(int id) {return playerDao.deletePlayer(id);}/*** 更新球員*/public int updPlayer(Player player) {return playerDao.updatePlayer(player);}/*** 根據(jù)id查詢(xún)player*/public Player fPlayerByid(int id) {return playerDao.findPlayerById(id);}/*** 根據(jù)不同條件查詢(xún)player*/public List<Player> fPlayerByCondition(Player player) {return playerDao.findPlayerByCondition(player);}}PlayerServlet:
package com.henu.servlet;import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Date; import java.util.List; import java.util.Map;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; import org.apache.commons.beanutils.converters.DateConverter;import com.henu.bean.Player; import com.henu.service.PlayerService; import com.henu.service.impl.PlayerServiceImpl; import com.henu.utils.MyDateConverter; import com.mchange.v2.c3p0.test.FreezableDriverManagerDataSource; /*** @author George* @description 考慮到以后項(xiàng)目的問(wèn)題,大致同類(lèi)的方法我們可以放在同一個(gè)Servlet中* 當(dāng)然一個(gè)Servlet對(duì)應(yīng)一個(gè)方法,不是不可以,但是過(guò)于繁瑣。因此*/ public class PlayerServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//解決post亂碼問(wèn)題request.setCharacterEncoding("UTF-8");String fun = request.getParameter("fun");if ("findAll".equals(fun)) {//findAll效果網(wǎng)址http://localhost:8081/tomcat05/PlayerServlet?fun=findAllfindAll(request,response);}else if ("add".equals(fun)) {add(request,response);}else if ("del".equals(fun)) {del(request,response);}else if ("preUpd".equals(fun)) {preUpd(request,response);}else if ("upd".equals(fun)) {upd(request,response);}else if ("fpbc".equals(fun)) {fpbc(request,response);}}/*** @param request* @param response* 根據(jù)不同條件查詢(xún)player*/protected void fpbc(HttpServletRequest request, HttpServletResponse response) {//1 獲取數(shù)據(jù)(客戶(hù)端提交的數(shù)據(jù)) BeanUtilsMap<String,String[]> map =request.getParameterMap();//2 對(duì)象Player player = new Player();//3 先處理日期類(lèi)型/* DateConverter dc = new DateConverter();dc.setPatterns(new String[]{"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"});ConvertUtils.register(dc,Date.class);*/// 如果使用BeanUtils中自帶的日期類(lèi)型轉(zhuǎn)換器DateConverter 對(duì)于 null 或 "" 拷貝時(shí)會(huì)出現(xiàn)異常// 解決方式:自定義日期類(lèi)型轉(zhuǎn)換器ConvertUtils.register(new MyDateConverter(),Date.class);// 4 拷貝try {BeanUtils.populate(player,map);} catch (Exception e) {e.printStackTrace();} // 5 調(diào)用servicePlayerService service = new PlayerServiceImpl();List<Player> list = service.fPlayerByCondition(player);if (list != null) {request.setAttribute("list",list);try {request.getRequestDispatcher("index.jsp").forward(request, response);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}else{try {request.getRequestDispatcher("fpbc.jsp").forward(request, response);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}/*** @param request* @param response* 更新操作前的準(zhǔn)備根據(jù)所取id查出整個(gè)player的信息,然后通過(guò)request.setAttribute("p",p);* 將player傳到updatePlayer.jsp上,使其獲取player的各個(gè)屬性,并在updatePlayer.jsp* 上對(duì)屬性進(jìn)行更改,提交后跳轉(zhuǎn)PlayerServlet?fun=upd進(jìn)行更新*/protected void preUpd(HttpServletRequest request, HttpServletResponse response) {//獲取"PlayerServlet?fun=preUpd&id=<%=s.getId() %>>的idString id = request.getParameter("id");PlayerService service = new PlayerServiceImpl();//進(jìn)行查詢(xún)Player p = service.fPlayerByid(Integer.parseInt(id));request.setAttribute("p",p);//跳轉(zhuǎn)到更改頁(yè)面try {request.getRequestDispatcher("updatePlayer.jsp").forward(request, response);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/*** @param request* @param response* 更新球員*/protected void upd(HttpServletRequest request, HttpServletResponse response) {//獲取數(shù)據(jù)Map<String, String[]> map = request.getParameterMap();Player player = new Player();DateConverter dc = new DateConverter();dc.setPatterns(new String[]{"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"});ConvertUtils.register(dc, Date.class);//拷貝try {BeanUtils.populate(player, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}// 5 調(diào)用servicePlayerService service = new PlayerServiceImpl();int res = service.updPlayer(player);if(res==1){ // 更新成功try {response.sendRedirect("PlayerServlet?fun=findAll&msg=success");} catch (IOException e) {e.printStackTrace();}}else{ //更新失敗try {response.sendRedirect("updatePlayer.jsp?msg=fail");} catch (IOException e) {e.printStackTrace();}}}/*** @param request* @param response* 刪除球員*/protected void del(HttpServletRequest request, HttpServletResponse response) {int id = Integer.parseInt(request.getParameter("id"));PlayerService service = new PlayerServiceImpl();int res = service.delPlayer(id);if (res == 1) {//添加成功后跳轉(zhuǎn)到顯示頁(yè)面try {response.sendRedirect("PlayerServlet?fun=findAll&msg=success");} catch (IOException e) {e.printStackTrace();}}else {try {response.sendRedirect("PlayerServlet?fun=findAll&msg=fail");} catch (IOException e) {e.printStackTrace();}}}/*** @param request* @param response* 添加球員*/protected void add(HttpServletRequest request, HttpServletResponse response) {//獲取數(shù)據(jù)BeanUtilsMap<String, String[]> map = request.getParameterMap();Player player = new Player();//處理日期對(duì)象DateConverter dConverter = new DateConverter();dConverter.setPatterns(new String[]{"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"});ConvertUtils.register(dConverter, Date.class);//拷貝數(shù)據(jù)try {BeanUtils.populate(player, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}PlayerService service = new PlayerServiceImpl();int res = service.addPlayer(player);if (res == 1) {//添加成功后跳轉(zhuǎn)到顯示頁(yè)面try {response.sendRedirect("PlayerServlet?fun=findAll&msg=success");} catch (IOException e) {e.printStackTrace();}}else {try {response.sendRedirect("PlayerServlet?fun=findAll&msg=fail");} catch (IOException e) {e.printStackTrace();}}}/*** @param request* @param response* 查詢(xún)?nèi)?/protected void findAll(HttpServletRequest request, HttpServletResponse response) {String msg = request.getParameter("msg");request.setAttribute("msg", msg);PlayerService service = new PlayerServiceImpl();List<Player> list = service.allPlayer();request.setAttribute("list", list);try {request.getRequestDispatcher("index.jsp").forward(request, response);} catch (ServletException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();};}}三個(gè)工具類(lèi):
public class DateUtil {public static Date stringToDate(String str){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date d = null;try {d = sdf.parse(str);} catch (ParseException e) {e.printStackTrace();}return d;}public static String dateToString(Date date){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String str = sdf.format(date);return str;} } ****************************************************************** public class JdbcUtil {private static DataSource ds;static{ds = new ComboPooledDataSource();}public static DataSource getDataSource(){return ds;}public static Connection getConnection(){Connection conn = null;try{conn = ds.getConnection();}catch(Exception e){e.printStackTrace();}return conn;}} ****************************************************************** public class MyDateConverter implements Converter {public Object convert(Class arg0, Object arg1) {String str = (String)arg1;if(str==null || "".equals(str)){return null;}else{ return DateUtil.stringToDate(str);}} }addPlayer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>add player view</title> </head> <body><!-- 注意點(diǎn):由于這里使用了PlayerServlet?fun=add&msg=success所以請(qǐng)求方式必須為post。如果使用get會(huì)導(dǎo)致到不了PlayerServlet?fun=add --><form action="PlayerServlet?fun=add" method="post"><div style="width: 500px;height: 340px; border: 1px solid brown;text-align: center; margin: 150px auto;"><h1>球員添加頁(yè)面</h1><hr /><table style="margin: auto; text-align: center;"cellspacing="10px"><tr><td>NAME:</td><td><input type="text" name="name"/></td></tr><tr><td>AGE:</td><td><input type="text" name="age"/></td></tr><tr><td>BIRTHDAY:</td><td><input type="text" name="birthday"/></td></tr><tr><td>HOBBY:</td><td><input type="checkbox" value="炸雞" name="hobby" />炸雞<input type="checkbox" value="熱狗" name="hobby" />熱狗<input type="checkbox" value="方便面" name="hobby" />方便面<!--<input type="radio" value="炸雞" name="hobby"/>炸雞<input type="radio" value="熱狗" name="hobby"/>熱狗<input type="radio" value="方便面" name="hobby"/>方便面--></td></tr></table><input type="reset" value="重置" style="margin-top: 30px;margin-right: 100px;border: 0px; width: 70px;height: 30px;"/><input type="submit" value="提交" style="border: 0px; width: 70px;height: 30px;"/></div></form> </body> </html>fpbc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JPBC VIEW</title> </head> <body> <form action="PlayerServlet?fun=fpbc" method="post"><div style="width: 500px;height: 340px; border: 1px solid brown;text-align: center; margin: 150px auto;"><h1>條件查詢(xún)頁(yè)面</h1><hr /><table style="margin: auto; text-align: center;"cellspacing="10px"><tr><td>NAME:</td><td><input type="text" name="name"/></td></tr><tr><td>AGE:</td><td><input type="text" name="age"/></td></tr><tr><td>BIRTHDAY:</td><td><input type="text" name="birthday"/></td></tr><tr><td>HOBBY:</td><td><input type="checkbox" value="炸雞" name="hobby" />炸雞<input type="checkbox" value="熱狗" name="hobby" />熱狗<input type="checkbox" value="方便面" name="hobby" />方便面</td></tr></table><input type="reset" value="重置" style="margin-top: 30px;margin-right: 100px;border: 0px; width: 70px;height: 30px;"/><input type="submit" value="提交" style="border: 0px; width: 70px;height: 30px;"/></div></form> </body> </html>index.jsp:
<%@page import="java.util.Arrays"%> <%@page import="java.util.List"%> <%@page import="com.henu.bean.Player"%> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body><h2 style="margin-left: 80px;margin-top: 80px;"><a href="addPlayer.jsp" >添加球員</a> <a href="fpbc.jsp" style="margin-left: 10px;">條件查詢(xún)球員</a> <a href="PlayerServlet?fun=findAll" style="margin-left: 10px;">查詢(xún)?nèi)?lt;/a></h2> <table style="margin:50px auto;" align="center" border="1px" width="70%"><tr><th>序號(hào)</th><th>NAME</th><th>AGE</th><th>BIRTHDAY</th><th>HOBBY</th><th>OPTION</th></tr><%List<Player> list = (List<Player>)request.getAttribute("list");int num=1;for(Player s:list){%><tr><td><%=num++ %></td><td><%=s.getName() %></td><td><%=s.getAge() %></td><td><%=s.getBirthday() %></td><td><%=Arrays.toString(s.getHobby())%></td><td><a href="PlayerServlet?fun=preUpd&id=<%=s.getId() %>">修改</a><a href="PlayerServlet?fun=del&id=<%=s.getId()%>">刪除</a></td></tr><%} %><h3>友情提示:</h3><%String msg = (String)request.getAttribute("msg");if(msg!=null && !"".equals(msg)){if("fail".equals(msg)){%><h1>操作失敗</h1><% }else if("success".equals(msg)){%> <h1>操作成功</h1> <% }}%></table> </body> </html>updatePlayer.jsp
<%@page import="com.henu.bean.Player"%> <%@page import="com.henu.service.impl.PlayerServiceImpl"%> <%@page import="com.henu.service.PlayerService"%> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script src="js/jquery.js"></script> </head> <body><%String msg = request.getParameter("msg");if("fail".equals(msg)){%><h1>更新失敗!!!</h1><% } %> <% Player p = (Player)request.getAttribute("p"); %><!-- 提交后跳轉(zhuǎn)到upd --><form action="PlayerServlet?fun=upd" method="post"><div style="width: 500px;height: 340px; border: 1px solid brown;text-align: center; margin: 150px auto;"><h1>球員更改頁(yè)面</h1><hr /><table style="margin: auto; text-align: center;"cellspacing="10px"><input type="hidden" name="id" value="<%=p.getId() %>"/><tr><td>NAME:</td><td><input type="text" name="name" value="<%=p.getName()%>"/></td></tr><tr><td>AGE:</td><td><input type="text" name="age" value="<%=p.getAge()%>"/></td></tr><tr><td>BIRTHDAY:</td><td><input type="text" name="birthday" value="<%=p.getBirthday()%>"/></td></tr><tr><td>HOBBY:</td><td><input type="checkbox" value="炸雞" name="hobby" />炸雞<input type="checkbox" value="熱狗" name="hobby"/>熱狗<input type="checkbox" value="方便面" name="hobby"/>方便面<!--<input type="radio" value="炸雞" name="hobby"/>炸雞<input type="radio" value="熱狗" name="hobby"/>熱狗<input type="radio" value="方便面" name="hobby"/>方便面--></td></tr></table><input type="reset" value="重置" style="margin-top: 30px;margin-right: 100px;border: 0px; width: 70px;height: 30px;"/><input type="submit" value="提交" style="border: 0px; width: 70px;height: 30px;"/></div></form> </body> <script type="text/javascript">var cbs = $(':checkbox');<%String[] hobby = p.getHobby();%>cbs.each(function(){<%for(String str:hobby){%>if($(this).val()=='<%=str%>'){$(this).prop('checked',true);}<%}%>}); </script> </html>?
總結(jié)
以上是生活随笔為你收集整理的基于servletjspmysql的表格增删改查操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浅析请求转发和重定向
- 下一篇: HiveSQL