第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;

你可能感兴趣的:(java,编程,mysql,数据库,jdbc,database)