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

首頁 > 學院 > 開發設計 > 正文

jdbc的用法

2019-11-14 10:16:40
字體:
來源:轉載
供稿:網友
一,JDBC基本操作  為了簡單起見,與數據庫相關的操作、命令、參數都被硬編碼了。有興趣的讀者可以對這些進行探索,降低數據與操作的耦合性。  先看具體代碼并實踐,本文第五部分對用到的API稍作了研究?! ∠旅娴乃蟹椒ê蛿祿蓡T都在public class JDBCOperation內部。(1)定義記錄的類(可選)  這樣做主要是為了便于操作和接口定義,是非必須的。復制代碼static class Student {        PRivate String Id;        private String Name;        private String Sex;        private String Age;        Student(String Name, String Sex, String Age) {            this.Id = null; //default            this.Name = Name;            this.Sex = Sex;            this.Age = Age;        }        public String getId() {            return Id;        }        public void setId(String Id) {            this.Id = Id;        }        public String getName() {            return Name;        }        public void setName(String Name) {            this.Name = Name;        }        public String getSex() {            return Sex;        }        public void setSex(String Sex) {            this.Sex = Sex;        }        public String getAge() {            return Age;        }        public void setage(String Age) {            this.Age = Age;        }}復制代碼 (2)連接的獲取  在操作前必須先獲取與數據庫的連接。  driver、url的格式同樣可以參考各種數據庫對應的jar包、驅動類名和URL格式。復制代碼private static Connection getConn() {    String driver = "com.MySQL.jdbc.Driver";    String url = "jdbc:mysql://localhost:3306/samp_db";    String username = "root";    String passWord = "";    Connection conn = null;    try {        Class.forName(driver); //classLoader,加載對應驅動        conn = (Connection) DriverManager.getConnection(url, username, password);    } catch (ClassNotFoundException e) {        e.printStackTrace();    } catch (SQLException e) {        e.printStackTrace();    }    return conn;}復制代碼 (3)insert復制代碼private static int insert(Student student) {    Connection conn = getConn();    int i = 0;    String sql = "insert into students (Name,Sex,Age) values(?,?,?)";    PreparedStatement pstmt;    try {        pstmt = (PreparedStatement) conn.prepareStatement(sql);        pstmt.setString(1, student.getName());        pstmt.setString(2, student.getSex());        pstmt.setString(3, student.getAge());        i = pstmt.executeUpdate();        pstmt.close();        conn.close();    } catch (SQLException e) {        e.printStackTrace();    }    return i;}復制代碼 (4)update復制代碼private static int update(Student student) {    Connection conn = getConn();    int i = 0;    String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'";    PreparedStatement pstmt;    try {        pstmt = (PreparedStatement) conn.prepareStatement(sql);        i = pstmt.executeUpdate();        System.out.println("resutl: " + i);        pstmt.close();        conn.close();    } catch (SQLException e) {        e.printStackTrace();    }    return i;}復制代碼 (5)select  以select * from XXX為例。復制代碼private static Integer getAll() {    Connection conn = getConn();    String sql = "select * from students";    PreparedStatement pstmt;    try {        pstmt = (PreparedStatement)conn.prepareStatement(sql);        ResultSet rs = pstmt.executeQuery();        int col = rs.getMetaData().getColumnCount();        System.out.println("============================");        while (rs.next()) {            for (int i = 1; i <= col; i++) {                System.out.print(rs.getString(i) + "/t");                if ((i == 2) && (rs.getString(i).length() < 8)) {                    System.out.print("/t");                }             }            System.out.println("");        }            System.out.println("============================");    } catch (SQLException e) {        e.printStackTrace();    }    return null;}復制代碼 (6)delete復制代碼private static int delete(String name) {    Connection conn = getConn();    int i = 0;    String sql = "delete from students where Name='" + name + "'";    PreparedStatement pstmt;    try {        pstmt = (PreparedStatement) conn.prepareStatement(sql);        i = pstmt.executeUpdate();        System.out.println("resutl: " + i);        pstmt.close();        conn.close();    } catch (SQLException e) {        e.printStackTrace();    }    return i;}復制代碼 二、測試  在測試前,需要在系統中打開對應數據庫的服務。MySQL在Windows下的啟動命令為net start mysql   測試代碼復制代碼public static void main(String args[]) {    JDBCOperation.getAll();    JDBCOperation.insert(new Student("Achilles", "Male", "14"));    JDBCOperation.getAll();    JDBCOperation.update(new Student("Bean", "", "7"));    JDBCOperation.delete("Achilles");    JDBCOperation.getAll();}復制代碼   Eclipse中的輸出復制代碼============================1    Ender        male    8    2    Bean        male    6    3    Petra        fema    9    4    Peter        male    9    5    _Graff        male    40    6    GOD        fema    255    ========================================================1    Ender        male    8    2    Bean        male    6    3    Petra        fema    9    4    Peter        male    9    5    _Graff        male    40    6    GOD        fema    255    7    Achilles    Male    14    ============================resutl: 1resutl: 1============================1    Ender        male    8    2    Bean        male    7    3    Petra        fema    9    4    Peter        male    9    5    _Graff        male    40    6    GOD        fema    255    ============================復制代碼 三、代碼分析  在上述對數據庫進行增刪改查的過程中,可以發現其共性部分,即通用的流程:  (1)創建Connection對象、SQL查詢命令字符串;  (2)對Connection對象傳入SQL查詢命令,獲得PreparedStatement對象;  (3)對PreparedStatement對象執行executeUpdate()或executeQurey()獲得結果;  (4)先后關閉PreparedStatement對象和Connection對象?! 】梢?,使用JDBC時,最常打交道的是Connection、PreparedStatement這兩個類,以及select中的ResultSet類。查閱java API手冊可以了解其具體的意義和方法。  下面引用的Java API的資料出自http://download.Oracle.com/technetwork/java/javase/6/docs/zh/api/index.html?!   onnectionjava.sql 接口 Connection所有超級接口:Wrapperpublic interface Connectionextends Wrapper 與特定數據庫的連接(會話)。在連接上下文中執行 SQL 語句并返回結果。Connection 對象的數據庫能夠提供描述其表、所支持的 SQL 語法、存儲過程、此連接功能等等的信息。此信息是使用 getMetaData 方法獲得的。   PreparedStatemntjava.sql 接口 PreparedStatement所有超級接口:Statement, Wrapper所有已知子接口:CallableStatementpublic interface PreparedStatementextends Statement表示預編譯的 SQL 語句的對象。SQL 語句被預編譯并存儲在 PreparedStatement 對象中。然后可以使用此對象多次高效地執行該語句。 常用方法 boolean  execute()          在此 PreparedStatement 對象中執行 SQL 語句,該語句可以是任何種類的 SQL 語句。 ResultSet  executeQuery()          在此 PreparedStatement 對象中執行 SQL 查詢,并返回該查詢生成的 ResultSet 對象。 int  executeUpdate()          在此 PreparedStatement 對象中執行 SQL 語句,該語句必須是一個 SQL 數據操作語言(Data Manipulation Language,DML)語句,比如 INSERT、UPDATE 或 DELETE 語句;或者是無返回內容的 SQL 語句,比如 DDL 語句?!   esultSet  java.sql 接口 ResultSet所有超級接口:Wrapper所有已知子接口:CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, RowSet, SyncResolver, WebRowSetpublic interface ResultSetextends Wrapper表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美在线一区| 中文字幕久久久av一区| 最近2019中文字幕mv免费看| 91精品国产99| 中文字幕亚洲色图| 精品日韩美女的视频高清| 亚洲无av在线中文字幕| 日本亚洲精品在线观看| 午夜精品久久17c| 午夜精品一区二区三区在线视| 动漫精品一区二区| 欧美亚洲激情视频| 亚洲第一区在线| 激情亚洲一区二区三区四区| 亚洲大胆美女视频| 久久精品免费播放| 久久九九免费视频| 91亚洲精品在线| 久久人91精品久久久久久不卡| 中文字幕欧美国内| 亚洲精品久久7777777| 国产精欧美一区二区三区| 日本一区二区三区在线播放| 最近2019中文字幕mv免费看| 欧美成人一区二区三区电影| 久久久精品欧美| 国产成人综合一区二区三区| 91精品视频大全| 国产精品第3页| 欧美高跟鞋交xxxxxhd| 亚洲精品国产精品国产自| 欧美一级bbbbb性bbbb喷潮片| 国产欧美日韩最新| 中文字幕欧美精品日韩中文字幕| 成人国产精品日本在线| 欧洲成人午夜免费大片| 91国内揄拍国内精品对白| 成人深夜直播免费观看| 一本色道久久综合狠狠躁篇怎么玩| 九九热精品在线| 精品视频在线播放色网色视频| 青青草一区二区| 久久久噜久噜久久综合| 国产欧美日韩专区发布| 亚洲一区二区中文字幕| 国外成人性视频| 久久精品国产2020观看福利| 国产成人高清激情视频在线观看| 日韩最新在线视频| 黄色一区二区在线观看| 日韩欧美中文字幕在线播放| 午夜精品一区二区三区在线| 91国产在线精品| 亚洲护士老师的毛茸茸最新章节| 欧美激情视频三区| 国产69精品久久久久9| 亚洲另类激情图| 第一福利永久视频精品| 亚洲丝袜av一区| 亚洲激情电影中文字幕| 久久精品国产欧美亚洲人人爽| 亚洲欧美激情精品一区二区| 一区二区三区回区在观看免费视频| 亚洲欧美国产一区二区三区| 色综合色综合网色综合| 欧美日韩中文字幕在线| 日韩在线观看免费高清完整版| 久久精品视频一| 欧美精品一区二区免费| 亚洲免费视频观看| 91在线播放国产| 亚洲美女免费精品视频在线观看| 国产精品极品美女在线观看免费| 亚洲在线一区二区| 国产精品免费看久久久香蕉| 日韩动漫免费观看电视剧高清| 亚洲人午夜精品| 国产精品视频久| 欧美精品成人在线| 国产日韩在线精品av| 亚洲精品一区二区久| 亚洲精选中文字幕| 日韩欧美中文第一页| 亚洲影院高清在线| 欧美成人精品一区| 国产精品免费网站| 亚洲夜晚福利在线观看| 亚洲图片制服诱惑| 亚洲第一级黄色片| 精品久久久久久中文字幕大豆网| 黑人与娇小精品av专区| 国产精品6699| 久久久精品视频在线观看| 精品一区精品二区| 亚洲午夜性刺激影院| 亚洲大尺度美女在线| 午夜精品蜜臀一区二区三区免费| 欧美国产日产韩国视频| 欧洲亚洲免费视频| 自拍偷拍亚洲在线| 国产日韩一区在线| 91wwwcom在线观看| 人人做人人澡人人爽欧美| 中文字幕一精品亚洲无线一区| 亚洲精品国精品久久99热一| 日韩免费中文字幕| 亚洲天堂av图片| 国产精品最新在线观看| 精品偷拍各种wc美女嘘嘘| 亚洲美女自拍视频| 欧美专区第一页| 国产精品一区二区久久精品| 亚洲精品999| 大桥未久av一区二区三区| 北条麻妃久久精品| 亚洲自拍中文字幕| 国产国语videosex另类| 亚洲国产精品中文| 欧美日韩国产在线| 中文字幕欧美日韩va免费视频| 97在线视频免费| 久久精品国产清自在天天线| 精品高清美女精品国产区| 精品少妇一区二区30p| 九色成人免费视频| 97超级碰碰人国产在线观看| 亚洲免费av片| 97视频免费观看| www国产精品视频| 国产精品 欧美在线| 国产亚洲激情视频在线| 国产精品一区电影| 亚洲护士老师的毛茸茸最新章节| 一区二区三区视频观看| 国产suv精品一区二区三区88区| 欧美日韩一区二区三区| 中文字幕在线看视频国产欧美在线看完整| 亚洲欧美色婷婷| 在线观看日韩视频| 欧美日韩在线视频观看| 欧美黑人巨大精品一区二区| 亚洲天堂av在线播放| 一区二区中文字幕| 欧美成人免费在线视频| 中文字幕欧美专区| 17婷婷久久www| 欧美大成色www永久网站婷| 日本精品视频在线观看| 26uuu日韩精品一区二区| 一本大道久久加勒比香蕉| 欧美巨乳美女视频| 亚洲电影免费观看高清| 国产精品第1页| 伊人久久综合97精品| 欧美尺度大的性做爰视频| 热re91久久精品国99热蜜臀| 91在线免费网站| 久久精品91久久久久久再现| 在线激情影院一区| 久久99热精品| 91av国产在线| 久久免费国产精品1| 久久91超碰青草是什么| 日韩av网站在线|