激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - JavaWeb連接數據庫MySQL的操作技巧

JavaWeb連接數據庫MySQL的操作技巧

2020-08-04 15:22JokerLoveAllen Java教程

數據庫是編程中重要的一部分,它囊括了數據操作,數據持久化等各方面。在每一門編程語言中都占有相當大的比例。本次,小編以MySQL為例,使用mvc編程思想,給大家講解下javaweb對數據庫的操

數據庫是編程中重要的一部分,它囊括了數據操作,數據持久化等各方面。在每一門編程語言中都占有相當大的比例。

本次,我以mysql為例,使用mvc編程思想(請參閱我之前的博客)。簡單演示一下javaweb對數據庫的操作。

1:我們需要掌握簡單的sql語句,并且會簡單操作圖形化的數據庫。我們在數據庫建一個表(users)可以在里面隨便添加幾條數據。

JavaWeb連接數據庫MySQL的操作技巧

2:接下來,我們獲得驅動并連接到mysql。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.joker.web.db;
import java.sql.connection;
import java.sql.drivermanager;
import java.sql.sqlexception;
public class dbconnection {
  private static connection con = null;
  // 驅動程序名
  private static string drivername = "com.mysql.jdbc.driver";
  // 數據庫用戶名
  private static string username = "root";
  // 密碼 1
  private static string userpasswd = "*****";
  // 數據庫名
  private static string dbname = "jokertest";
  // 聯結字符串
  private static string url = "jdbc:mysql://localhost/" + dbname + "?user="
      + username + "&password=" + userpasswd
      + "&useunicode=true&characterencoding=gbk";
  public static connection getconnection() {
    try {
      // 1.驅動
      class.forname(drivername);
      // 2. 連接數據庫 保持連接
      con = drivermanager.getconnection(url);
    } catch (classnotfoundexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    }
    return con;
  }
  public static void closeconnection() {
    if (con != null) {
      try {
        con.close();
      } catch (sqlexception e) {
        // todo auto-generated catch block
        e.printstacktrace();
      }
    }
  }
}<span style="font-size:18px;color:#990000;">
</span>

3.寫我們的dao文件,即對數據庫的增刪改查

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
package com.joker.web.dao;
import java.sql.*;
import java.util.*;
import com.joker.web.db.dbconnection;
import com.joker.web.entity.user;
public class userdao {
  // 查找所有數據,返回list集合
  public list<user> selectall() {
    connection con = dbconnection.getconnection();// 連接數據庫 保持連接
    statement stmt;
    list<user> list = new arraylist<user>();
    try {
      stmt = con.createstatement();// 執行sql語句
      resultset rs = stmt.executequery("select * from users");// 查找
                                  // 數據返回結果集
      while (rs.next()) {
        user user = new user();
        user.setid(rs.getint("id"));
        user.setusername(rs.getstring("user_name"));
        user.setdisplayname(rs.getstring("display_name"));
        user.setpwd(rs.getstring("pwd"));
        list.add(user);
      }
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      dbconnection.closeconnection();
    }
    return list;
  }
  // 按條件查找
  // where user_name='"+ name + "' and pwd='" + pwd + "'
  public user selectwhere(string whereoption) {
    connection con = dbconnection.getconnection();// 連接數據庫 保持連接
    statement stmt;
    user user = null;
    try {
      stmt = con.createstatement();// 執行sql語句
      string sql = "select * from users ";
      if (!whereoption.equals("")) {
        sql += whereoption;
      }
      // 查找數據返回結果集
      resultset rs = stmt.executequery(sql);
      while (rs.next()) {
        user = new user();
        user.setusername(rs.getstring("user_name"));
        user.setdisplayname(rs.getstring("display_name"));
        user.setpwd(rs.getstring("pwd"));
      }
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      dbconnection.closeconnection();
    }
    return user;
  }
  // 新增
  public int insert(user user) {
    connection con = dbconnection.getconnection();
    preparedstatement pstmt = null;
    string sql = " insert into users(user_name,pwd,display_name) values(?,?,?)";
    // 增加用preparestatement
    int count = 0;
    try {
      pstmt = con.preparestatement(sql);
      pstmt.setstring(1, user.getusername());
      pstmt.setstring(2, user.getpwd());
      pstmt.setstring(3, user.getdisplayname());
      count = pstmt.executeupdate();
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      try {
        pstmt.close();
      } catch (sqlexception e) {
        // todo auto-generated catch block
        e.printstacktrace();
      }
      dbconnection.closeconnection();
    }
    return count;
  }
  // 修改
  public int update(user user) {
    connection con = dbconnection.getconnection();
    preparedstatement pstmt = null;
    string sql = " update users " + " set user_name = ? , " + " pwd = ? , "
        + " display_name= ? " + " where id= ? ";
    int count = 0;
    try {
      pstmt = con.preparestatement(sql);
      pstmt.setstring(1, user.getusername());
      pstmt.setstring(2, user.getpwd());
      pstmt.setstring(3, user.getdisplayname());
      pstmt.setint(4, user.getid());
      count = pstmt.executeupdate();
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      try {
        pstmt.close();
      } catch (sqlexception e) {
        // todo auto-generated catch block
        e.printstacktrace();
      }
      dbconnection.closeconnection();
    }
    return count;
  }
  // 刪除
  public int delete(int id) {
    connection con = dbconnection.getconnection();
    preparedstatement pstmt = null;
    string sql = " delete from users where id = ?";
    int count = 0;
    try {
      pstmt = con.preparestatement(sql);
      pstmt.setint(1, id);
      count = pstmt.executeupdate();
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      try {
        pstmt.close();
      } catch (sqlexception e) {
        // todo auto-generated catch block
        e.printstacktrace();
      }
      dbconnection.closeconnection();
    }
    return count;
  }
  public list<user> selectpage(int from, int rows) {
    connection con = dbconnection.getconnection();// 連接數據庫 保持連接
    statement stmt;
    list<user> list = new arraylist<user>();
    try {
      stmt = con.createstatement();// 執行sql語句
      resultset rs = stmt.executequery("select * from users limit "
          + from + "," + rows);
      while (rs.next()) {
        user user = new user();
        user.setid(rs.getint("id"));
        user.setusername(rs.getstring("user_name"));
        user.setdisplayname(rs.getstring("display_name"));
        user.setpwd(rs.getstring("pwd"));
        list.add(user);
      }
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      dbconnection.closeconnection();
    }
    return list;
  }
// 返回所有數劇條數
  public int selectcount() {
    connection con = dbconnection.getconnection();// 連接數據庫 保持連接
    statement stmt;
    int count =0 ;
    try {
      stmt = con.createstatement();// 執行sql語句
      resultset rs = stmt.executequery("select count(1) count from users");
      while (rs.next()) {
        count = rs.getint("count");
      }
    } catch (sqlexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    } finally {
      dbconnection.closeconnection();
    }
    return count;
  }
}<span style="font-size:18px;color:#990000;">
</span>

4.使用servlet當控制器,在servlet對網頁上的數據進行操作。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.joker.web.servlet;
import java.io.ioexception;
import java.io.printwriter;
import java.util.*;
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 net.sf.json.jsonobject;
import com.joker.web.dao.userdao;
import com.joker.web.entity.user;
public class userservlet extends httpservlet {
  /**
   * constructor of the object.
   */
  public userservlet() {
    super();
  }
  /**
   * destruction of the servlet. <br>
   */
  public void destroy() {
    super.destroy(); // just puts "destroy" string in log
    // put your code here
  }
  public void doget(httpservletrequest request, httpservletresponse response)
      throws servletexception, ioexception {
    this.dopost(request, response);
  }
  public void dopost(httpservletrequest request, httpservletresponse response)
      throws servletexception, ioexception {
    request.setcharacterencoding("utf-8");
    response.setcontenttype("text/html;charset=utf-8");
    string action = request.getparameter("action");
    if (action.equals("select")) {
      select(request, response);
    } else if (action.equals("update")) {
      update(request, response);
    } else if (action.equals("add")) {
      insert(request, response);
    } else if (action.equals("delete")) {
      delete(request, response);
    }
  }
  // 新增
  private void insert(httpservletrequest request, httpservletresponse response) 
      throws ioexception {
    string uname = request.getparameter("username");
    string pwd = request.getparameter("user");
    string dname = request.getparameter("displayname");
    user user = new user();
    user.setusername(uname);
    user.setpwd(pwd);
    user.setdisplayname(dname);
    userdao udao = new userdao();
    int affcount = udao.insert(user);
    printwriter out = response.getwriter();
    // 將受影響數據的數量返回給jsp
    out.print(affcount);
  }
  // 刪除
  private void delete(httpservletrequest request, httpservletresponse response)
      throws ioexception {
    string[] ids = request.getparametervalues("uid[]");
    userdao ud = new userdao();
    int count = 0;
    for (int i = 0; i < ids.length; i++) {
      count += ud.delete(integer.parseint(ids[i]));
    }
    printwriter out = response.getwriter();
    out.print(count);
  }
  /**
   * initialization of the servlet. <br>
   *
   * @throws servletexception
   *       if an error occurs
   */
  public void init() throws servletexception {
    system.out.println("處室執行!!!!!!!!!!!!!!!");
  }
  // 查詢
  public void select(httpservletrequest request, httpservletresponse response)
      throws ioexception {
    string page = request.getparameter("page");
    string rows = request.getparameter("rows");
    system.out.println("page:" + page + " rows:" + rows);
    userdao ud = new userdao();
    int rowscount = integer.parseint(rows);
    int from = (integer.parseint(page) - 1) * rowscount;
    list<user> list = ud.selectpage(from, rowscount);
    hashmap<string, object> map = new hashmap<string, object>();
    map.put("total", ud.selectcount());
    map.put("rows", list);
    // jsonarray ja = jsonarray.fromobject(list);
    jsonobject jo = jsonobject.fromobject(map);// 單條數據
    printwriter out = response.getwriter();
    system.out.println(jo.tostring());
    // 將json數據返回給jspdata-grid的url。
    out.println(jo.tostring());
  }
  // 修改
  public void update(httpservletrequest request, httpservletresponse response)
      throws ioexception {
    string id = request.getparameter("id");
    string uname = request.getparameter("username");
    string pwd = request.getparameter("pwd");
    string dname = request.getparameter("displayname");
    user user = new user();
    user.setid(integer.parseint(id));
    user.setusername(uname);
    user.setpwd(pwd);
    user.setdisplayname(dname);
    userdao udao = new userdao();
    int affcount = udao.update(user);
    printwriter out = response.getwriter();
    // 將受影響數據的數量返回給jsp
    out.print(affcount);
  }
}<span style="font-size:18px;color:#990000;">
</span>

5.使用easy-ui框架,是數據庫內容在頁面進行顯示

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<%
  string path = request.getcontextpath();
  string basepath = request.getscheme() + "://"
      + request.getservername() + ":" + request.getserverport()
      + path + "/";
%>
 
<!doctype html>
<html>
<head>
<base href="<%=basepath%>" rel="external nofollow" >
<title>main.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<link rel="stylesheet" href="css/easyui.css" rel="external nofollow" type="text/css"></link>
<link rel="stylesheet" href="css/icon.css" rel="external nofollow" type="text/css"></link>
<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/jquery.easyui.min.js"></script>
<script type="text/javascript">
  var addflags = true;
  $(function() {
    $('#dg')
        .datagrid(
            {
              title : '用戶列表',
              url : 'servlet/userservlet?action=select',
              fitcolumns : true,/* 自適應寬度 */
              striped : true,/* 斑馬線效果 */
              pagination : true,/* 底部顯示分頁工具欄 */
              singleselect : false,/* 只允許選擇一行 */
              rownumbers : true,/* 顯示一個行號列 */
              ctrlselect : true,/* 允許使用ctrl鍵+鼠標點擊的方式進行多選操作 */
              iconcls : 'icon-ok',
              checkonselect : true,/* 點擊行的時候該復選框就會被選中或取消選中 */
              selectoncheck : true,/* 單擊復選框將永遠選擇行 */
              pagination : true,
              nowrap : true,
              rownumbers : true,
              collapsible : true,//是否可折疊的
              pagesize : 5,//每頁顯示的記錄條數,默認為10 
              pagelist : [ 2, 4 ,5],//可以設置每頁記錄條數的列表 
              toolbar : [
                  {
                    text : '查詢',
                    iconcls : 'icon-search',
                    handler : function() {
                      $('#dg').datagrid('reload');
                    }
                  },
                  '-',
                  {
                    text : '修改',
                    iconcls : 'icon-edit',
                    handler : function() {
                      alert('幫助按鈕');
                    }
                  },
                  '-',
                  {
                    text : '添加',
                    iconcls : 'icon-add',
                    handler : function() {
                      if(addflags){
                        $('#dg').datagrid('insertrow',{
                      index: 0,  // 索引從0開始
                     row: {}
                     });
                      var editindex = 0;
                      $('#dg').datagrid('selectrow',editindex)
                          .datagrid('beginedit',editindex);
                        addflags = false;
                      }
                      /* , $('#dlg').dialog('open')
                          .dialog('center').dialog(
                              'settitle',
                              'new user');
                      $('#fm').form('clear') */
                    }
                  },
                  '-',
                { text : '刪除',
                 iconcls : 'icon-remove',
                 handler : function() {
                 $.messager.confirm("信息確認","確定刪除嗎?",
                          function(ret) {
                          if (ret) {
                          var row = $("#dg").datagrid("getselections");
                        if (row.length == 0) {
                          $.messager.alert("提示:","請選擇刪除的數據");
                              return;
                            }
                            var ids = [];
                        for ( var i = 0; i < row.length; i++) {
                              ids.push(row[i].id);
                            }
                          $.post("servlet/userservlet?action=delete",
                                {uid : ids},
                                function(data) {
                                if (data > 0) {
                              $('#dg').datagrid('reload');
                                  alert("刪除成功");
                                } else {
                                alert("刪除失敗");
                                }
                               });
                            }
                        });
                    }
                  } ],
              columns : [ [
                  {
                    field : 'ck',
                    checkbox : true,
                    width : 50,
                  },
                  {
                    field : 'id',
                    hidden : true,
                  },
                  {
                    field : 'username',
                    title : '用戶名',
                    align : 'center',
                    editor : 'text',
                    width : 100
                  },
                  {
                    field : 'pwd',
                    title : '密碼',
                    width : 100,
                    editor : 'text',
                    align : 'center'
                  },
                  {
                    field : 'displayname',
                    title : '級別',
                    width : 100,
                    height : 100,
                    editor : 'text',
                    align : 'center'
                  },
                  {
                    field : 'option',
                    title : '操作',
                    width : 100,
                    align : 'center',
                    formatter : function(value, row, index) {
                      if (row.editing) {
                        var s = '<a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" style="text-decoration:none" onclick="saverow('
                            + index + ')">保存</a>'+' '
                            +'<a href = "javascript:void(0);" style="text-decoration:none" onclick="canclerow('
                            + index + ')">取消</a>';
                        return s;
                      } else {
                        var e = '<a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" style="text-decoration:none" onclick="editrow('
                            + index + ')">編輯</a>';
                        return e;
                      }
                    }
                  } ] ],
              onbeforeedit : function(index, row) {
                row.editing = true;
                $("#dg").datagrid("refreshrow", index);
              },
              onafteredit : function(index, row) {
                row.editing = false;
                $("#dg").datagrid("refreshrow", index);
              }
            });
    //設置分頁控件 
    var p = $('#dg').datagrid('getpager');
    $(p).pagination({
      beforepagetext : '第',//頁數文本框前顯示的漢字 
      afterpagetext : '頁  共 {pages} 頁',
      displaymsg : '當前顯示 {from} - {to} 條記錄  共 {total} 條記錄'
    });
  });
  function editrow(index) {
    var row = $("#dg").datagrid("getselected");
    if (row == null) {
      alert("請選擇您要編輯的行");
      return;
    }
    $("#dg").datagrid("beginedit", index);
  }
  function saverow(index) {
    $("#dg").datagrid("endedit", index);
    var row = $("#dg").datagrid("getselected");
    if(addflags) {
     dbsave(row);
    } else {
     dbadd(row);
    }
    addflags = true;
  }
  function canclerow(index) {
    $("#dg").datagrid("rejectchanges");
    $('#dg').datagrid('reload');
    addflags = true;
  }
  function dbsave(row) {
    var name = row.username;
    var uid = row.id;
    var pwd = row.pwd;
    var dname = row.displayname;
    $.post("servlet/userservlet?action=update", {
      id : uid,
      username : name,
      pwd : pwd,
      displayname : dname
    }, function(data) {
      if (data == "1") {
        alert("修改成功");
      } else {
        alert("修改失敗");
      }
    });
    alert(row.username + "-" + row.pwd + "-" + row.displayname);
  }
    function dbadd(row) {
    var name = row.username;
    var pwd = row.pwd;
    var dname = row.displayname;
    $.post("servlet/userservlet?action=add", {
      username : name,
      pwd : pwd,
      displayname : dname
    }, function(data) {
      if (data == "1") {
        alert("添加成功");
      } else {
        alert("添加失敗");
      }
    });
  }
</script>
<body>
  <%-- ${sessionscope.user.username}
  ${sessionscope.user.dislayname} --%>
  <table class="easyui-datagrid" id="dg">
  </table>
</body>
</html><span style="font-size:18px;color:#990000;">
</span>

6.各個操作具體圖片:

6.1添加:添加(張三 666 學生 這條數據)默認顯示五條數據

JavaWeb連接數據庫MySQL的操作技巧

JavaWeb連接數據庫MySQL的操作技巧
 

JavaWeb連接數據庫MySQL的操作技巧

6.2 刪除剛剛插入的數據

JavaWeb連接數據庫MySQL的操作技巧

6.3 修改數據(修改的id主鍵為10的數據)

JavaWeb連接數據庫MySQL的操作技巧

JavaWeb連接數據庫MySQL的操作技巧

JavaWeb連接數據庫MySQL的操作技巧

JavaWeb連接數據庫MySQL的操作技巧

JavaWeb連接數據庫MySQL的操作技巧

以上所述是小編給大家介紹的javaweb連接數據庫mysql的操作技巧,希望對大家有所幫助

原文鏈接:http://blog.csdn.net/qq_34122768/article/details/53006759

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人精品视频在线 | 欧美1 | 一级一级一级一级毛片 | 欧美成年性h版影视中文字幕 | 在线看三级 | 午夜天堂在线视频 | 在线免费观看麻豆 | 一本免费视频 | 久久99精品国产99久久6男男 | 精品一区二区三区中文字幕老牛 | 成人精品免费在线观看 | 九九热在线视频观看这里只有精品 | 久久久久久99 | 91看片网页版| gogo全球大胆高清人露出91 | 丰满年轻岳中文字幕一区二区 | 天天干天天透 | 久久久一区二区三区四区 | 国产高清自拍一区 | 免费日韩片 | 国产一级aa大片毛片 | 免费午夜视频在线观看 | 久久久国产精品免费观看 | 日韩视频区 | 91精品观看91久久久久久国产 | 国产精品99久久久久久久vr | 极品五月天 | 日本网站在线看 | 亚洲无av| 久久久久国产成人免费精品免费 | 龙的两根好大拔不出去h | 亚洲一区二区在线 | 精品一区二区三区在线观看国产 | 中国国语毛片免费观看视频 | 成人毛片av在线 | 久久国产精品久久久久久久久久 | 亚洲精品在线观看免费 | 日本aaaa片毛片免费观蜜桃 | 二区三区偷拍浴室洗澡视频 | 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 亚洲精品久久久久久久久久久 |