第3天:Java數據庫編程JDBC+MySql

MySql/JDBC
1.數據庫測試:/usr/local/mysql/bin
    啓動:net start mysql
    停止:net stop mysql
    連接:mysql -uroot -p
    顯示:show database;
    創建:create database dbname;
    使用:use database;
    顯示錶:show tables;
    顯示詳細信息:desc table_name;
2.數據庫的數據類型
    分爲三種:數值類、字符串類、和日期時間類型;
    (1)數值類:
        整型
            tinyint:    1字節 非常小的正整數
            smallint:   2字節 小整數
            mediuint:   3字節 中等大小的整數
            int:        4字節 標準整數
            bigint:     8字節 大整數
        浮點型
            float:      4字節     單精度浮點數
            double:     8字節     雙精度浮點數
            decimal:    M+2字節   以字符串形式存放的浮點數
        數值類型數據列的屬性
        unsigned:           不允許數據出現負數
        zerofill:           如果數值小於定義的寬度,則在數值前補0
        null/not null:      設置數據列是否爲空
        default:            指定數據列的默認值
        auto_increment:     該列可產生一個獨一無二的序列
    (2)字符串類:(可以存放任何數值,存放文字、圖片、聲音、壓縮包)
        char:固定長度,存儲數據時不夠長度的右邊補空格
        varchar:可變長類型,存儲數據時按實際長度存儲
        blob:二進制字符串,可存放大容量信息
        text:非二進制字符串,可存放大容量的信息
    (3)時間日期類型:
        date:       "YYYY-MM-DD"
        time:       "hh:mm:ss"
        datetime:   "YYYY-MM-DD hh:mm:ss"
        year:       "YYYY"
3.數據庫中的基本操作:create select insert update delete
    create table t_name(is int(10),...);
    drop table t_name;
    delete from t_name;
    insert into t_name values(...);
    select * from t_name;
    select id,name from t_name;
    update t_name set id=2 where id=1;
    alter t_name add column_name char(5);
    修改字段名和類型:alter t_name change old_column_name new_column_name new_type;
    刪除字段:alter t_name drop column_name;
    修改字段屬性:alter t_name modify column_name date;
    例子:
        drop table if exists user;
        create table if not exists user(
        id int not null primary key auto_increment,
        name varchar(40) not null unique,
        age int,
        sex boolean default false,
        email varchar(50),
        phone int(11),
        idcard char(18),
        qq varchar(10)
        )engine=innoDB;
4.分頁瀏覽
    mysql:(查詢從第m條開始的k個記錄)
        每頁pagesize 第n頁
        m = (n-1)*pagesize;
        k = pagesize;
        select * from t_name limit m,k;
    oracle:
        select id, name, age from(
            select id, name, age, rownum rn from user where rn < m+k
        ) where rn >= m;
5.JDBC
    (1) 註冊驅動
        Class.forName("com.mysql.jdbc.Driver"); 驅動名:mysql-connection-java-bin.jar;
        Class.forName("oracle.jdbc.driver.OracleDriver"); 驅動名:ojdbc14.jar;
    (2) 創建連接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_name", username, password);
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:db_name", username, password);
    (3) 通過連接(Connection)創建Statement對象
        Statement stmt = conn.createStatement();
        PreparedStatement ps = conn.prepareStatement(sql);
    (4) statement執行sql
        stmt.executeQuery();
        ps.executeQuery();
        ps.set(key,value);
        執行sql的三種方法:
            ResultSet executeQuery();   ---select
            int executeUpdate();        ---insert update delete
            boolean execute();          ---可以執行以上兩種
    (5) 處理結果並返回
    (6) 關閉資源
        rs.close();
        stmt.close();
        conn.close();
6.補充(設置編碼問題)
    (1) 創建數據庫時啓動mysql使用參數
        mysql -uroot --default -character  -set utf8;
    (2) 創建數據庫
        create database summer(庫名) default character set utf8;
        執行腳本
    (3) 創建表
        create table emp(表名)(列表……) default character set utf8;
    (4) sql腳本的執行
        source /home/XX.sql
    (5) 修改mysql數據庫連接
        jdbc:mysql://localhost:3306/dy(庫名)?useUnicode=true&characterEncoding=utf8;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章