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

首頁 > 編程 > Java > 正文

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

2019-11-26 15:00:52
字體:
來源:轉載
供稿:網友

JDBC API 允許用戶訪問任何形式的表格數據,尤其是存儲在關系數據庫中的數據。

執行流程:

•連接數據源,如:數據庫。

•為數據庫傳遞查詢和更新指令。

•處理數據庫響應并返回的結果。

JDBC 架構
分為雙層架構和三層架構。

雙層

作用:此架構中,Java Applet 或應用直接訪問數據源。

條件:要求 Driver 能與訪問的數據庫交互。

機制:用戶命令傳給數據庫或其他數據源,隨之結果被返回。

部署:數據源可以在另一臺機器上,用戶通過網絡連接,稱為 C/S配置(可以是內聯網或互聯網)。

三層

側架構特殊之處在于,引入中間層服務。

流程:命令和結構都會經過該層。

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

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

JDBC 編程步驟

加載驅動程序:

Class.forName(driverClass)//加載MySql驅動Class.forName("com.mysql.jdbc.Driver")//加載Oracle驅動Class.forName("oracle.jdbc.driver.OracleDriver")

獲得數據庫連接:

復制代碼 代碼如下:

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

創建Statement/PreparedStatement對象:

復制代碼 代碼如下:

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

完整實例

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.加載驅動程序  Class.forName("com.mysql.jdbc.Driver");  //2. 獲得數據庫連接  Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);  //3.操作數據庫,實現增刪改查  Statement stmt = conn.createStatement();  ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");  //如果有數據,rs.next()返回true  while(rs.next()){   System.out.println(rs.getString("user_name")+" 年齡:"+rs.getInt("age"));  } }}

增刪改查

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.加載驅動程序   Class.forName("com.mysql.jdbc.Driver");   //2. 獲得數據庫連接   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(),?)";  //預編譯  PreparedStatement ptmt = conn.prepareStatement(sql); //預編譯SQL,減少sql執行  //傳參  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());  //執行  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=?";  //預編譯  PreparedStatement ptmt = conn.prepareStatement(sql); //預編譯SQL,減少sql執行  //傳參  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());  //執行  ptmt.execute(); } public void delGoddess(){  //獲取連接  Connection conn = DbUtil.getConnection();  //sql, 每行加空格  String sql = "delete from imooc_goddess where id=?";  //預編譯SQL,減少sql執行  PreparedStatement ptmt = conn.prepareStatement(sql);  //傳參  ptmt.setInt(1, id);  //執行  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=?";  //預編譯SQL,減少sql執行  PreparedStatement ptmt = conn.prepareStatement(sql);  //傳參  ptmt.setInt(1, id);  //執行  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网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产99国产精品澳门| 97精品伊人久久久大香线蕉| 久久精品99久久久久久久久| 色综合视频网站| 色悠悠久久久久| 国产91久久婷婷一区二区| 国产精品三级网站| 国产精品视频免费在线| 亚洲国产精品成人av| 国产午夜精品免费一区二区三区| 日产精品99久久久久久| 亚洲网在线观看| 国产精品wwww| 美女久久久久久久久久久| 久久久久久av| 国产日韩在线一区| 日韩av中文字幕在线| 欧美日韩电影在线观看| 国产一区二区在线播放| 亚洲91av视频| 日韩中文字幕在线| 一本色道久久88精品综合| 亚洲精品电影网在线观看| 日韩中文字幕在线视频播放| 九九久久久久久久久激情| 欧美贵妇videos办公室| 久久精品中文字幕一区| 97香蕉超级碰碰久久免费软件| 黄色一区二区在线| 国产亚洲免费的视频看| 亚洲在线免费观看| 亚洲大胆人体在线| 中文字幕亚洲一区在线观看| 亚洲成人教育av| 91精品国产色综合久久不卡98| 日本久久91av| 欧美男插女视频| 亚洲国产精品嫩草影院久久| 中文综合在线观看| 日本精品性网站在线观看| 亚洲一区二区三区久久| 日韩美女av在线| 黑人巨大精品欧美一区免费视频| 亚洲成色777777在线观看影院| 欧美激情精品久久久久久黑人| 俺去了亚洲欧美日韩| 久久九九亚洲综合| 国产亚洲人成网站在线观看| 一区二区三区无码高清视频| 精品久久久久久中文字幕一区奶水| 日韩免费不卡av| 久久久国产91| 成人动漫网站在线观看| 日韩精品中文字幕在线观看| 国语自产精品视频在免费| 欧美专区在线播放| 国产美女久久精品| 亚洲激情国产精品| 国产精品极品美女粉嫩高清在线| 国产视频精品免费播放| 国产欧美一区二区白浆黑人| 久久久久久久久久国产| 日韩国产精品一区| 69视频在线播放| 午夜精品视频网站| 亚洲xxxx做受欧美| 欧美午夜女人视频在线| 亚洲三级 欧美三级| 亚洲欧美日韩直播| 亚洲肉体裸体xxxx137| 黑人巨大精品欧美一区免费视频| 久久久欧美精品| 51午夜精品视频| 国产精品专区一| 日韩av快播网址| 成人av番号网| 精品伊人久久97| 91成人国产在线观看| 国产精品一区二区久久国产| 久久久精品免费视频| 国产福利视频一区二区| 在线精品高清中文字幕| 色妞色视频一区二区三区四区| 欧美在线观看日本一区| 91高潮精品免费porn| 日韩中文字幕在线播放| 91精品国产91久久久久久久久| 91精品国产自产91精品| 2024亚洲男人天堂| 国产精品欧美一区二区三区奶水| 久久av红桃一区二区小说| 亚洲欧洲黄色网| 亚洲黄页网在线观看| 国产亚洲精品久久久久久| 日韩视频―中文字幕| 久久精品男人天堂| 亚洲国产精品国自产拍av秋霞| 日韩中文字幕免费视频| 黑人狂躁日本妞一区二区三区| 国产www精品| 中文字幕精品影院| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲情综合五月天| 日产日韩在线亚洲欧美| 亚洲国产一区自拍| 欧美性感美女h网站在线观看免费| 日韩视频第一页| 亚洲免费电影一区| 日本视频久久久| 久久精品色欧美aⅴ一区二区| 韩国三级电影久久久久久| 欧美二区乱c黑人| 欧美日韩国产成人高清视频| 91最新在线免费观看| 亚洲欧美自拍一区| 亚洲free性xxxx护士白浆| 亚洲天堂色网站| 欧美重口另类videos人妖| 亚洲国产精品久久久久久| 精品一区二区亚洲| 国产精品爽爽ⅴa在线观看| 亚洲欧美一区二区三区情侣bbw| 欧美精品激情在线观看| 26uuu另类亚洲欧美日本老年| 欧美黑人巨大精品一区二区| 深夜精品寂寞黄网站在线观看| 亚洲国产天堂久久综合网| 欧美在线视频观看| 欧美激情精品久久久久久蜜臀| 国内伊人久久久久久网站视频| 久久资源免费视频| 欧美性开放视频| 色狠狠av一区二区三区香蕉蜜桃| 久久影视电视剧免费网站清宫辞电视| 5566日本婷婷色中文字幕97| 欧美国产乱视频| 久久夜色精品亚洲噜噜国产mv| 日韩亚洲一区二区| 免费不卡在线观看av| 久久91亚洲精品中文字幕奶水| 一区二区欧美日韩视频| 91av在线播放视频| 国产精品观看在线亚洲人成网| 永久555www成人免费| 日韩av在线电影网| 日韩视频免费中文字幕| 亚洲天堂免费视频| 一区二区在线视频| 在线成人中文字幕| 亚洲第一页中文字幕| 亚洲自拍偷拍福利| 秋霞成人午夜鲁丝一区二区三区| 欧美在线观看网址综合| 日韩精品免费在线视频观看| 国产精品久久久久久久久久久新郎| 国产美女91呻吟求| 91黄色8090| 欧美激情中文字幕乱码免费| 亚洲男人天堂网站| 欧美精品xxx| 日本午夜在线亚洲.国产| 色噜噜久久综合伊人一本| 亚洲精品免费av| 日韩www在线|