国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - JDBC 使用說明(流程、架構(gòu)、編程)

JDBC 使用說明(流程、架構(gòu)、編程)

2020-01-03 14:32mdxy-dxy JAVA教程

這篇文章主要介紹了JDBC 使用說明,需要的朋友可以參考下

JDBC API 允許用戶訪問任何形式的表格數(shù)據(jù),尤其是存儲在關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。

執(zhí)行流程:

•連接數(shù)據(jù)源,如:數(shù)據(jù)庫。

•為數(shù)據(jù)庫傳遞查詢和更新指令。

•處理數(shù)據(jù)庫響應(yīng)并返回的結(jié)果。

JDBC 架構(gòu)
分為雙層架構(gòu)和三層架構(gòu)。

雙層

JDBC 使用說明(流程、架構(gòu)、編程)

作用:此架構(gòu)中,Java Applet 或應(yīng)用直接訪問數(shù)據(jù)源。

條件:要求 Driver 能與訪問的數(shù)據(jù)庫交互。

機制:用戶命令傳給數(shù)據(jù)庫或其他數(shù)據(jù)源,隨之結(jié)果被返回。

部署:數(shù)據(jù)源可以在另一臺機器上,用戶通過網(wǎng)絡(luò)連接,稱為 C/S配置(可以是內(nèi)聯(lián)網(wǎng)或互聯(lián)網(wǎng))。

三層

JDBC 使用說明(流程、架構(gòu)、編程)

側(cè)架構(gòu)特殊之處在于,引入中間層服務(wù)。

流程:命令和結(jié)構(gòu)都會經(jīng)過該層。

吸引:可以增加企業(yè)數(shù)據(jù)的訪問控制,以及多種類型的更新;另外,也可簡化應(yīng)用的部署,并在多數(shù)情況下有性能優(yōu)勢。

歷史趨勢: 以往,因性能問題,中間層都用 C 或 C++ 編寫,隨著優(yōu)化編譯器(將 Java 字節(jié)碼 轉(zhuǎn)為 高效的 特定機器碼)和技術(shù)的發(fā)展,如EJB,Java 開始用于中間層的開發(fā)這也讓 Java 的優(yōu)勢突顯出現(xiàn)出來,使用 Java 作為服務(wù)器代碼語言,JDBC隨之被重視。

JDBC 編程步驟

加載驅(qū)動程序:

?
1
2
3
4
5
Class.forName(driverClass)
//加載MySql驅(qū)動
Class.forName("com.mysql.jdbc.Driver")
//加載Oracle驅(qū)動
Class.forName("oracle.jdbc.driver.OracleDriver")

獲得數(shù)據(jù)庫連接:

 

復(fù)制代碼 代碼如下:

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root");

 

創(chuàng)建Statement\PreparedStatement對象:

 

復(fù)制代碼 代碼如下:

conn.createStatement();
conn.prepareStatement(sql);

 

完整實例

?
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
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class DbUtil {
 
 public static final String URL = "jdbc:mysql://localhost:3306/imooc";
 public static final String USER = "liulx";
 public static final String PASSWORD = "123456";
 
 public static void main(String[] args) throws Exception {
  //1.加載驅(qū)動程序
  Class.forName("com.mysql.jdbc.Driver");
  //2. 獲得數(shù)據(jù)庫連接
  Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
  //3.操作數(shù)據(jù)庫,實現(xiàn)增刪改查
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
  //如果有數(shù)據(jù),rs.next()返回true
  while(rs.next()){
   System.out.println(rs.getString("user_name")+" 年齡:"+rs.getInt("age"));
  }
 }
}

增刪改查

?
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
public class DbUtil {
 public static final String URL = "jdbc:mysql://localhost:3306/imooc";
 public static final String USER = "liulx";
 public static final String PASSWORD = "123456";
 private static Connection conn = null;
 static{
  try {
   //1.加載驅(qū)動程序
   Class.forName("com.mysql.jdbc.Driver");
   //2. 獲得數(shù)據(jù)庫連接
   conn = DriverManager.getConnection(URL, USER, PASSWORD);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 
 public static Connection getConnection(){
  return conn;
 }
}
 
//模型
package liulx.model;
 
import java.util.Date;
 
public class Goddess {
 
 private Integer id;
 private String user_name;
 private Integer sex;
 private Integer age;
 private Date birthday; //注意用的是java.util.Date
 private String email;
 private String mobile;
 private String create_user;
 private String update_user;
 private Date create_date;
 private Date update_date;
 private Integer isDel;
 //getter setter方法。。。
}
 
//---------dao層--------------
package liulx.dao;
 
import liulx.db.DbUtil;
import liulx.model.Goddess;
 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
 
public class GoddessDao {
 //增加
 public void addGoddess(Goddess g) throws SQLException {
  //獲取連接
  Connection conn = DbUtil.getConnection();
  //sql
  String sql = "INSERT INTO imooc_goddess(user_name, sex, age, birthday, email, mobile,"+
   "create_user, create_date, update_user, update_date, isdel)"
    +"values("+"?,?,?,?,?,?,?,CURRENT_DATE(),?,CURRENT_DATE(),?)";
  //預(yù)編譯
  PreparedStatement ptmt = conn.prepareStatement(sql); //預(yù)編譯SQL,減少sql執(zhí)行
 
  //傳參
  ptmt.setString(1, g.getUser_name());
  ptmt.setInt(2, g.getSex());
  ptmt.setInt(3, g.getAge());
  ptmt.setDate(4, new Date(g.getBirthday().getTime()));
  ptmt.setString(5, g.getEmail());
  ptmt.setString(6, g.getMobile());
  ptmt.setString(7, g.getCreate_user());
  ptmt.setString(8, g.getUpdate_user());
  ptmt.setInt(9, g.getIsDel());
 
  //執(zhí)行
  ptmt.execute();
 }
 
 public void updateGoddess(){
  //獲取連接
  Connection conn = DbUtil.getConnection();
  //sql, 每行加空格
  String sql = "UPDATE imooc_goddess" +
    " set user_name=?, sex=?, age=?, birthday=?, email=?, mobile=?,"+
    " update_user=?, update_date=CURRENT_DATE(), isdel=? "+
    " where id=?";
  //預(yù)編譯
  PreparedStatement ptmt = conn.prepareStatement(sql); //預(yù)編譯SQL,減少sql執(zhí)行
 
  //傳參
  ptmt.setString(1, g.getUser_name());
  ptmt.setInt(2, g.getSex());
  ptmt.setInt(3, g.getAge());
  ptmt.setDate(4, new Date(g.getBirthday().getTime()));
  ptmt.setString(5, g.getEmail());
  ptmt.setString(6, g.getMobile());
  ptmt.setString(7, g.getUpdate_user());
  ptmt.setInt(8, g.getIsDel());
  ptmt.setInt(9, g.getId());
 
  //執(zhí)行
  ptmt.execute();
 }
 
 public void delGoddess(){
  //獲取連接
  Connection conn = DbUtil.getConnection();
  //sql, 每行加空格
  String sql = "delete from imooc_goddess where id=?";
  //預(yù)編譯SQL,減少sql執(zhí)行
  PreparedStatement ptmt = conn.prepareStatement(sql);
 
  //傳參
  ptmt.setInt(1, id);
 
  //執(zhí)行
  ptmt.execute();
 }
 
 public List<Goddess> query() throws SQLException {
  Connection conn = DbUtil.getConnection();
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
 
  List<Goddess> gs = new ArrayList<Goddess>();
  Goddess g = null;
  while(rs.next()){
   g = new Goddess();
   g.setUser_name(rs.getString("user_name"));
   g.setAge(rs.getInt("age"));
 
   gs.add(g);
  }
  return gs;
 }
 
 public Goddess get(){
  Goddess g = null;
  //獲取連接
  Connection conn = DbUtil.getConnection();
  //sql, 每行加空格
  String sql = "select * from imooc_goddess where id=?";
  //預(yù)編譯SQL,減少sql執(zhí)行
  PreparedStatement ptmt = conn.prepareStatement(sql);
  //傳參
  ptmt.setInt(1, id);
  //執(zhí)行
  ResultSet rs = ptmt.executeQuery();
  while(rs.next()){
   g = new Goddess();
   g.setId(rs.getInt("id"));
   g.setUser_name(rs.getString("user_name"));
   g.setAge(rs.getInt("age"));
   g.setSex(rs.getInt("sex"));
   g.setBirthday(rs.getDate("birthday"));
   g.setEmail(rs.getString("email"));
   g.setMobile(rs.getString("mobile"));
   g.setCreate_date(rs.getDate("create_date"));
   g.setCreate_user(rs.getString("create_user"));
   g.setUpdate_date(rs.getDate("update_date"));
   g.setUpdate_user(rs.getString("update_user"));
   g.setIsDel(rs.getInt("isdel"));
  }
  return g;
 }
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品视频在线观看 | 毛片在线一区二区观看精品 | av天天操| 亚洲综合色视频在线观看 | 久久精品在线视频 | 欧美成人综合在线 | 成人免费小视频 | 国产精品国产精品国产专区不片 | 国产精品一区二区av | 欧美成人精品一区二区男人看 | 另类视频网站 | av网站推荐| 成人免费视频亚洲 | 日韩一区在线视频 | 久久av网站 | 特级淫片日本高清视频免费 | 日本精品久久 | 中日韩一线二线三线视频 | 一大道一二三区不卡 | 精品欧美乱码久久久久久 | 国产在线精品一区 | 亚洲视频在线不卡 | 免费人成黄页网站在线一区二区 | 97久久精品午夜一区二区 | 99久久亚洲一区二区三区青草 | 欧美亚洲在线 | 久久久久高清视频 | 久久综合导航 | 日韩国产欧美视频 | 在线视频a| 亚洲精品国产a久久久久久 99热少妇 | 欧美日韩国产精品 | www久久久久久久 | 玖玖综合网 | 香蕉视频成人在线观看 | 中文学幕专区 | 蜜桃成人在线 | 国产视频网 | 久久久国产一区 | 久久久久久综合 | 天天射影院 |