web项目实现mysql增删改查并从前端页面操作
生活随笔
收集整理的這篇文章主要介紹了
web项目实现mysql增删改查并从前端页面操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.看下各個包下面的文件,我上一篇文章已經說過了,這里對上一章有一部分重復的
2.User.java是數據庫元素寫的一個類,代碼如下
package com.hqyj.wj.model; //用戶信息表 public class User {private int id;private String name;private String birthday; // public User(int id,String name,String birthday){ // this.id=id; // this.name=name; // this.birthday=birthday; // }public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;} }3.UserDaoInf是一個接口實現數據庫的增刪查改方法,代碼如下
package com.hqyj.wj.dao.inf; import java.util.List; import com.hqyj.wj.model.User; /*** 數據訪問層的接口定義數據接口的方法* */ public interface UserDaoInf {//定義一個查詢方法List<User> search();//定義數據庫的插入int insert(User user);
//定義跟新數據庫int update(User user);
//通過名字刪除數據元素int delete(String name);}
4.UserDao實現UserDaoInf接口,并 連接數據庫
package com.hqyj.wj.dao;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List;import com.hqyj.wj.dao.inf.UserDaoInf; import com.hqyj.wj.model.User;/*** * @author wl 數據訪問接口*/ public class UserDao implements UserDaoInf {// 數據訪問數據庫的連接對象protected Connection con = null;// 預編譯你寫的sql語句protected PreparedStatement ps = null;// 查詢預編譯的sql語句protected ResultSet rs = null;// 獲取數據庫鏈接@SuppressWarnings("finally")public Connection getCon() {try {// 加載mysql驅動Class.forName("com.mysql.jdbc.Driver");// 獲取數據庫鏈接con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/image?characterEncoding=utf8","root", "root");System.out.println("鏈接成功");return con;} catch (Exception e) {System.out.println("鏈接失敗" + e.getMessage());e.printStackTrace();return null;}}/*** 查詢方法*/public List<User> search() {//定義一個列表接收數據庫數據List<User> list = new ArrayList<User>();try {// 定義一個sql語句// String// sql="SELECT a.id as 序號,a.salary as '薪水',b.`name` as '姓名' from salary a LEFT JOIN `user` b on a.u_id=b.id";String sql = "SELECT * from user";// 獲取數據庫連接con = getCon();// 預編譯sql語句ps = con.prepareStatement(sql);// 把編譯出來的結果集裝載到ResultSet對象里面rs=ps.executeQuery();// 取出ResultSet里的結果集裝載到數據模型里while (rs.next()) {User user = new User();user.setName(rs.getString("name"));user.setBirthday(rs.getString("birthday"));user.setId(Integer.parseInt(rs.getString("id")));list.add(user);}} catch (Exception e) {System.out.println("查詢錯誤" + e.getMessage());} finally {try {rs.close();ps.close();con.close();} catch (Exception e2) {e2.printStackTrace();}}return list;}public int insert(User user) {int i=0;try {// 定義一個sql語句// String// sql="SELECT a.id as 序號,a.salary as '薪水',b.`name` as '姓名' from salary a LEFT JOIN `user` b on a.u_id=b.id";String sql = "insert into user(name,birthday) values(?,?)";// 獲取數據庫連接con = getCon();// 預編譯sql語句ps = con.prepareStatement(sql);ps.setString(1, user.getName());ps.setString(2, user.getBirthday());i=ps.executeUpdate();} catch (Exception e) {System.out.println("查詢錯誤" + e.getMessage());} finally {try {ps.close();con.close();} catch (Exception e2) {e2.printStackTrace();}}return i;}//跟新信息public int update(User user) {int i=0;try {// 定義一個sql語句// String// sql="SELECT a.id as 序號,a.salary as '薪水',b.`name` as '姓名' from salary a LEFT JOIN `user` b on a.u_id=b.id";String sql = "update user set name='" + user.getName() +"' where id='" + user.getId() + "'";// 獲取數據庫連接con = getCon();// 預編譯sql語句ps = con.prepareStatement(sql);i=ps.executeUpdate();} catch (Exception e) {System.out.println("查詢錯誤" + e.getMessage());} finally {try {ps.close();con.close();} catch (Exception e2) {e2.printStackTrace();}}return i;}public int delete(String name) {int i=0;try {// 定義一個sql語句// String// sql="SELECT a.id as 序號,a.salary as '薪水',b.`name` as '姓名' from salary a LEFT JOIN `user` b on a.u_id=b.id";String sql = "delete from user where name='"+name+"'";// 獲取數據庫連接con = getCon();// 預編譯sql語句ps = con.prepareStatement(sql);i=ps.executeUpdate();} catch (Exception e) {System.out.println("查詢錯誤" + e.getMessage());} finally {try {ps.close();con.close();} catch (Exception e2) {e2.printStackTrace();}}return i;}}
5.UserServiceInf也是對數據庫的增刪改查方法和獲取前端數據對數據庫的增刪改查操作方法
package com.hqyj.wj.service.inf;import java.io.PrintWriter; import java.util.List;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.hqyj.wj.model.User;public interface UserServiceInf {List<User> search();int insert(User user);int update(User user);int delete(String name);//里面用ajax獲取前端來的數據,并操作數據庫的方法public void ss(HttpServletRequest request,HttpServletResponse response,PrintWriter out); }
6.UserService實現UserService接口
package com.hqyj.wj.service;import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.List;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;import com.hqyj.wj.dao.UserDao; import com.hqyj.wj.dao.inf.UserDaoInf; import com.hqyj.wj.model.User; import com.hqyj.wj.service.inf.UserServiceInf;/*** 邏輯服務層實現類*/ public class UserService implements UserServiceInf {UserDaoInf us = new UserDao();public List<User> search() {//返回的是 UserDao里面的search()方法return us.search();}public int insert(User user) {
//調用了UserDao()里的insert()方法int i = us.insert(user);return i;}public int update(User user) {// TODO Auto-generated method stubint i = us.update(user);return i;}public int delete(String name) {int i = us.delete(name);return i;}public void ss(HttpServletRequest request, HttpServletResponse response,PrintWriter out) {// serverInder是從前端獲取的數,目的是為了區分是增刪改查的那個操作
//request.getParameter()是獲取拼在url地址欄下的值int serverInder = Integer.parseInt(request.getParameter("serverIndex"));
//實現查詢-----------------------if (serverInder == 1) {List<User> list = search();// 把list數據解析成前端頁面能讀取的數據JSONArray json = JSONArray.fromObject(list);out.print(json.toString());}// 現實插入---------------------------if (serverInder == 2) {String name = request.getParameter("name");String birthday = request.getParameter("birthday");User user = new User();try {
//解決從前端傳到服務器(數據庫)亂碼問題name = new String(name.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {birthday = new String(birthday.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}user.setName(name);user.setBirthday(birthday);int i = insert(user);if (i == 1) {out.print("插入數據成功");System.out.println("插入數據成功");} else {out.print("插入數據失敗");System.out.println("插入數據失敗");}}// 實現刪除if (serverInder == 3) {String name = request.getParameter("name");try {name = new String(name.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}int i = delete(name);if (i == 1) {out.print("刪除數據成功");System.out.println("刪除數據成功");} else {out.print("刪除數據失敗" + i);System.out.println("刪除數據失敗" + i);}}// 實現更新if (serverInder == 4) {User user = new User();int id = Integer.parseInt(request.getParameter("id"));String name = request.getParameter("name");String birthday = request.getParameter("birthday");try {birthday = new String(birthday.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}try {name = new String(name.getBytes("ISO-8859-1"), "UTF-8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}user.setId(id);user.setName(name);user.setBirthday(birthday);int i = update(user);if (i == 1) {out.print("更改數據成功");System.out.println("更改數據成功");} else {out.print("更改數據失敗" + i);System.out.println("更改數據失敗" + i);}}}}
7.controller控制器是調用UserService里面的方法,實現對前端頁面操作數據庫
package com.hqyj.wj.controller;import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;import com.hqyj.wj.service.*; import com.hqyj.wj.service.inf.*; import com.hqyj.wj.model.*;import java.util.List; import java.util.ArrayList;public class OneServlet extends HttpServlet {public OneServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}//doget對應的是ajax的$.get()方法//request是裝載請求數據//response響應數據到前端對象public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//解決中文亂碼的問題request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//在服務器端設置允許在其他域名下訪問,及響應類型、響應頭設置//這三句解決的是跨域問題response.setHeader("Access-Control-Allow-Origin", "*");response.setHeader("Access-Control-Allow-Methods","POST");response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");//響應的文本格式response.setContentType("text/html");//獲取響應的輸出對象PrintWriter out = response.getWriter();UserServiceInf service=new UserService();String num = request.getParameter("serverIndex");service.ss(request,response,out);//這里全部拿到UserService的ss()方法里了//實現查詢----------------------/*int serverInder=Integer.parseInt(request.getParameter("serverIndex"));if(serverInder==1){List<User> list=service.search();//把list數據解析成前端頁面能讀取的數據JSONArray json=JSONArray.fromObject(list);out.print(json.toString());}//現實插入---------------------------if(serverInder==2){String name=request.getParameter("name");String birthday=request.getParameter("birthday");User user=new User();name=new String(name.getBytes("ISO-8859-1"),"UTF-8");birthday=new String(birthday.getBytes("ISO-8859-1"),"UTF-8");user.setName(name);user.setBirthday(birthday);int i=service.insert(user);if(i==1){out.print("插入數據成功");System.out.println("插入數據成功");}else{out.print("插入數據失敗");System.out.println("插入數據失敗");}}*/out.flush();out.close();}//doget對應的是ajax的$.post()方法public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.flush();out.close();}public void init() throws ServletException {// Put your code here}}8.前端實現html代碼
?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax獲取集合</title> <script src="../js/jquery-3.1.1.min.js"></script> </head> <body><table><thead><tr><th>id</th><th>姓名</th><th>生日</th></tr></thead><tbody></tbody></table>名字:<input type="text" placeholder="請輸入姓名" id="name">生日:年<select><option>1992</option><option>1993</option><option>1994</option><option>1995</option></select>月<select><option>1</option><option>2</option><option>3</option><option>4</option></select>日<select><option>2</option><option>12</option><option>22</option><option>23</option></select><button>點擊獲取數據</button><button>點擊插入數據</button><br>請輸入刪除的名字:<input type="text" id="removename"><button>點擊刪除數據</button><br>請輸入需要修改的id號:<input type="text" id="updateid"><br>請輸入需要修改后的名字:名字:<input type="text" placeholder="請輸入姓名" id="updatename"><br>請輸入需要修改的后生日:生日:年<select><option>1992</option><option>1993</option><option>1994</option><option>1995</option></select>月<select><option>1</option><option>2</option><option>3</option><option>4</option></select>日<select><option>2</option><option>12</option><option>22</option><option>23</option></select><br><button>點擊跟新數據</button><script>$(function(){var str;//serverIndex區分增刪改查的變量var serverIndex;//點擊查看數據 $("button").eq(0).click(function(){var str;serverIndex=1;
//{serverIndex:serverIndex}是拼在地址欄上的,從后端獲取他的值$.get("http://localhost:8080/jquery/servlet/OneServlet",{serverIndex:serverIndex},function(data){console.log(data);var num=eval(data);for(var i=0;i<num.length;i++){str+=" <tr> <td>"+num[i].id+"</td> <td>"+num[i].name+"</td> <td>"+num[i].birthday+"</td></tr>";}$("tbody").html(str); })})//點擊插入數據 $("button").eq(1).click(function(){//獲取輸入名字的值 serverIndex=2;var name=$("#name").val();var year=$("select:eq(0) option:selected").val();var mouth=$("select:eq(1) option:selected").val();var day=$("select:eq(2) option:selected").val();var birthday=year+"/"+mouth+"/"+day;console.log(birthday);$.get("http://localhost:8080/jquery/servlet/OneServlet",{serverIndex:serverIndex,name:name,birthday:birthday},function(data){console.log(data);})})//點擊刪除數據 $("button").eq(2).click(function(){//獲取輸入名字的值 serverIndex=3;var name=$("#removename").val();$.get("http://localhost:8080/jquery/servlet/OneServlet",{serverIndex:serverIndex,name:name},function(data){console.log(data);})})//點擊跟新數據 $("button").eq(3).click(function(){//獲取輸入名字的值 serverIndex=4;var id=$("#updateid").val();var name=$("#updatename").val();var year=$("select:eq(3) option:selected").val();var mouth=$("select:eq(4) option:selected").val();var day=$("select:eq(5) option:selected").val();var birthday=year+"/"+mouth+"/"+day;$.get("http://localhost:8080/jquery/servlet/OneServlet",{serverIndex:serverIndex,name:name,id:id,birthday:birthday},function(data){console.log(data);})})})</script> </body> </html>
?
轉載于:https://www.cnblogs.com/wlhappy92/p/web_sql.html
總結
以上是生活随笔為你收集整理的web项目实现mysql增删改查并从前端页面操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《构建之法》 读书笔记(3)
- 下一篇: BZOJ 2179 [快速傅里叶变换 高