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

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

jdbc的用法

2019-11-14 10:11:47
字體:
來源:轉載
供稿:網友
一,JDBC基本操作  為了簡單起見,與數據庫相關的操作、命令、參數都被硬編碼了。有興趣的讀者可以對這些進行探索,降低數據與操作的耦合性?! ∠瓤淳唧w代碼并實踐,本文第五部分對用到的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)連接的獲取  在操作前必須先獲取與數據庫的連接?! river、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手冊可以了解其具體的意義和方法?! ∠旅嬉玫腏ava 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 語句。    ResultSet  java.sql 接口 ResultSet所有超級接口:Wrapper所有已知子接口:CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, RowSet, SyncResolver, WebRowSetpublic interface ResultSetextends Wrapper表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲午夜视频在线观看| 成人黄色免费在线观看| 欧美大奶子在线| 久久激情视频免费观看| 日韩国产一区三区| 97在线视频免费播放| 欧美日韩aaaa| 亚洲香蕉av在线一区二区三区| 一区二区三区回区在观看免费视频| 国产精品h片在线播放| 欧美色欧美亚洲高清在线视频| 97精品一区二区视频在线观看| 91亚洲国产成人久久精品网站| 国产精品视频公开费视频| 一区二区三区天堂av| 久久婷婷国产麻豆91天堂| 日本精品视频在线| 性欧美办公室18xxxxhd| 欧美激情乱人伦一区| 国产精品一区av| 久久99国产精品久久久久久久久| 91超碰caoporn97人人| 欧美性精品220| 日韩欧美黄色动漫| 国产日韩一区在线| 欧美一级高清免费播放| 亚洲欧洲在线免费| 91免费精品国偷自产在线| 国内精品视频久久| 久久天天躁狠狠躁夜夜躁| www.欧美免费| 91精品久久久久久久| 国产免费一区二区三区在线能观看| 日韩视频欧美视频| 久久久亚洲福利精品午夜| 久久在线精品视频| 26uuu日韩精品一区二区| 日韩免费观看av| www欧美日韩| 亚洲成人网在线| 亚洲国产精品专区久久| 国产精品成人一区二区三区吃奶| 国产又爽又黄的激情精品视频| 亚洲精品一二区| 久久精品亚洲一区| 亚洲欧美日本另类| 欧美日韩福利电影| 亚洲第一男人av| 亚洲激情在线观看| 欧美激情xxxx性bbbb| 亚洲性视频网站| 97不卡在线视频| 日韩电影在线观看永久视频免费网站| 国产福利精品av综合导导航| 一区二区三区 在线观看视| 精品久久久久久久久久久| 久久99视频精品| 亚洲最新av在线网站| 欧美一区二区色| 久热精品视频在线观看| 欧美巨乳美女视频| 日韩电影大片中文字幕| 亚洲性生活视频在线观看| 欧美电影免费观看电视剧大全| 97精品视频在线| 欧美日韩性视频| 亚洲黄页网在线观看| 亚洲91精品在线观看| 日韩一区二区福利| 成人免费视频网| www.美女亚洲精品| 91亚洲精品在线观看| 亚洲综合最新在线| 在线视频日本亚洲性| 欧美裸体xxxx极品少妇| 亚洲三级 欧美三级| 国产精品美女主播在线观看纯欲| 精品国产一区二区三区久久狼黑人| 欧美激情国产高清| 欧美国产日韩xxxxx| 大荫蒂欧美视频另类xxxx| 亚洲天堂精品在线| 影音先锋欧美在线资源| 丝袜亚洲另类欧美重口| 欧美色videos| 91精品国产99| 美女视频黄免费的亚洲男人天堂| 92版电视剧仙鹤神针在线观看| 日韩成人xxxx| 自拍偷拍亚洲在线| 成人a级免费视频| 亚洲无亚洲人成网站77777| 91高清在线免费观看| 亚洲综合日韩中文字幕v在线| 久久99久久99精品中文字幕| 日本高清+成人网在线观看| 成人免费网视频| 亚洲精品91美女久久久久久久| 欧美亚洲第一区| 2023亚洲男人天堂| 亚洲第一页在线| 成人欧美一区二区三区黑人孕妇| 91精品视频一区| 欧美国产日韩xxxxx| 亚洲欧美在线看| 永久免费精品影视网站| 日韩免费在线看| 欧美色欧美亚洲高清在线视频| 91av在线看| 色中色综合影院手机版在线观看| 欧美乱妇高清无乱码| 日韩欧美中文字幕在线观看| 日韩高清电影免费观看完整| 中文字幕精品一区二区精品| 日韩av在线电影网| 亚洲国产精品视频在线观看| 俺去亚洲欧洲欧美日韩| 在线日韩中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲免费中文字幕| 欧美黄色性视频| 欧美大全免费观看电视剧大泉洋| 亚州av一区二区| 久久久免费观看视频| 91精品国产色综合久久不卡98| 欧美大片第1页| xx视频.9999.com| 亚洲va久久久噜噜噜久久天堂| 国产欧美最新羞羞视频在线观看| 国产精品一区二区在线| 91精品视频一区| 国产精品久久久久久久久| 91精品久久久久久久久久久久久| 欧美电影免费观看电视剧大全| 亚洲精品国产欧美| 美女999久久久精品视频| 26uuu亚洲伊人春色| 亚洲欧美自拍一区| 国产日韩精品电影| 欧美成人激情视频免费观看| 欧美日韩不卡合集视频| 日韩中文理论片| 亚洲人成在线观看| 久久人人爽人人爽人人片av高清| 日韩精品在线私人| 欧美色道久久88综合亚洲精品| 国产噜噜噜噜久久久久久久久| 日韩欧美精品免费在线| 成人a免费视频| 欧美不卡视频一区发布| 色偷偷偷亚洲综合网另类| 91精品国产高清久久久久久91| 精品久久久久久久久中文字幕| 亚洲精品网站在线播放gif| 欧美精品一二区| 一本一道久久a久久精品逆3p| 国产精品偷伦免费视频观看的| 日韩**中文字幕毛片| 日韩电影免费在线观看| 亚洲欧美日韩国产中文| 3344国产精品免费看| 国产精品视频专区| 777777777亚洲妇女| 成人女保姆的销魂服务|