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

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

jdbc的用法

2019-11-14 11:02:00
字體:
來源:轉載
供稿:網友
一,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)連接的獲取  在操作前必須先獲取與數據庫的連接?! 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。    Connectionjava.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
亚洲有声小说3d| 久久香蕉国产线看观看av| 色多多国产成人永久免费网站| 亚洲第一网站免费视频| 97超级碰碰碰| 欧美寡妇偷汉性猛交| 在线日韩第一页| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕日韩在线观看| 精品亚洲一区二区三区在线播放| 欧美高清不卡在线| xxx欧美精品| 久热国产精品视频| 欧美成年人视频网站欧美| 91美女福利视频高清| 久久99精品国产99久久6尤物| 国产精品夜间视频香蕉| 日韩欧美在线视频日韩欧美在线视频| 亚洲精品永久免费| 91美女片黄在线观| 亚洲91精品在线| 热99精品里视频精品| 中文字幕一区日韩电影| 欧美性黄网官网| 亚洲成人网在线| 国产精品久久精品| 欧美国产视频日韩| 北条麻妃一区二区三区中文字幕| 538国产精品视频一区二区| 国产美女高潮久久白浆| 欧美肥婆姓交大片| 日韩电影在线观看永久视频免费网站| 国产欧美日韩专区发布| 亚洲乱码国产乱码精品精天堂| 久久国产精品久久久| 国产丝袜一区视频在线观看| 欧美高清第一页| 性色av一区二区咪爱| 成人乱人伦精品视频在线观看| 亚洲精品狠狠操| 欧美激情综合色综合啪啪五月| 自拍亚洲一区欧美另类| 自拍偷拍亚洲区| 日韩中文字幕视频| 日韩成人xxxx| 成人av电影天堂| 亚洲最大福利网站| 欧美性videos高清精品| 色偷偷88888欧美精品久久久| 中文字幕最新精品| 欧美综合在线观看| 91色中文字幕| 正在播放国产一区| 欧美大码xxxx| 亚洲成人教育av| 国产精品久久久久久久久粉嫩av| 欧美日韩成人在线播放| 亚洲最大成人免费视频| 色99之美女主播在线视频| 国产成人福利夜色影视| 成人有码视频在线播放| 一本色道久久88亚洲综合88| 国产精品久久久久久亚洲调教| 国产精品视频xxx| 一二美女精品欧洲| 一区二区三区 在线观看视| 亚洲激情自拍图| 欧美极品少妇与黑人| 亚洲自拍偷拍在线| 精品久久久国产| 亚洲精品影视在线观看| 欧美极品xxxx| 久久精品国产精品亚洲| 亚洲成人a**站| 日本亚洲欧洲色| 欧美另类69精品久久久久9999| 成人免费网视频| 亚洲小视频在线| 在线精品高清中文字幕| 久久久久久久久国产| 91麻豆桃色免费看| 欧美日韩在线视频首页| 国产成人一区二区在线| 欧美整片在线观看| 亚洲三级黄色在线观看| 欧美日韩国产一区中文午夜| 高跟丝袜一区二区三区| 日韩中文字在线| 亚洲午夜未删减在线观看| 欧美激情日韩图片| 国产日韩欧美视频在线| 亚洲情综合五月天| 国产做受69高潮| 国产91精品久久久久| 国产精品高清免费在线观看| 欧美成在线视频| 亚洲欧美一区二区精品久久久| 亚洲欧美日韩高清| 久久久91精品国产一区不卡| 欧美日韩国产一区二区| 国产精品观看在线亚洲人成网| 色妞色视频一区二区三区四区| 国产日韩欧美夫妻视频在线观看| 狠狠干狠狠久久| 中文字幕亚洲在线| 亚洲白虎美女被爆操| 2019国产精品自在线拍国产不卡| 国产精品亚洲网站| 精品久久久久久中文字幕| www.欧美视频| 伊是香蕉大人久久| 亚洲天堂一区二区三区| 欧美理论在线观看| 久久久久国色av免费观看性色| 日本欧美一级片| 欧美亚洲激情在线| 国产精品丝袜久久久久久高清| 性日韩欧美在线视频| 国产精品日韩久久久久| 久久久久国产精品www| 久久久免费高清电视剧观看| 欧美中文字幕第一页| 国产a∨精品一区二区三区不卡| 蜜臀久久99精品久久久无需会员| 在线精品国产成人综合| 一区二区三区天堂av| 性欧美长视频免费观看不卡| 亚洲精品在线91| 亚洲欧洲美洲在线综合| 91精品国产综合久久香蕉922| 一区二区欧美久久| 亚洲人成电影在线播放| 992tv在线成人免费观看| 国产极品jizzhd欧美| 91国内在线视频| 国产精品高清在线| 国产精品久久久久影院日本| 日韩欧美在线视频免费观看| 欧美人与性动交| 亚洲第一视频网| 曰本色欧美视频在线| www.亚洲成人| zzijzzij亚洲日本成熟少妇| 久久夜色精品国产亚洲aⅴ| 日韩最新av在线| www.欧美视频| 日韩国产欧美精品在线| 北条麻妃一区二区在线观看| 国产一区二区三区在线| 欧美视频二区36p| 日韩成人在线观看| 国产91成人在在线播放| 久久国产精品电影| 久久精品中文字幕免费mv| 亚洲午夜精品久久久久久性色| 国外成人在线直播| 亚洲午夜小视频| 日韩av电影院| 国产精品色视频| 亚洲精品视频中文字幕| 亚洲男人天堂网站| 国产精品美乳在线观看| 九九热视频这里只有精品| 在线成人一区二区|