Java学习-Day08-MySQL与JDBC编程(2)

2018-03-31  本文已影响0人  Indomi

1.SQL语句

1.1 索引

索引是存放在模式中的一个数据库对象,虽然索引总是从属于数据表,但它也和数据表一样属于数据库对象.创建索引的唯一作用就是加速对表的查询,索引通过使用快速路径访问方法来快速定位数据,从而减少了磁盘的I/O

create index index_name
on table_name (column[, column]...);
#对多列建立索引
create index emp_last_name_idx2
on employees(first_name, last_name);
drop index 索引名 on 表名
1.2 视图

视图看上去像数据表,但是它并不能存储数据,视图只是一个或多个数据表中数据的逻辑显示

create or replace view 视图名
as subquery;
drop view 视图名;
1.3 DML语句

DML主要完成增删改的功能,由insert into,update,delete from三个命令组成

1.3.1 insert into
insert into table_name [(column [, column...])]
values(value [, value...]);
1.3.2 update语句
update table_name
set column1 = value[, column2 = value2]...
[WHERE condition];
1.3.3 delete from语句
delete from table_name
[WHERE condition];
1.4 单表查询
select column1, column2 ... 
from 数据源
[where condition];
order by column_name1 [desc],column_name2...
1.5 数据库函数

每个数据库都会在标准的SQL基础上扩展一些函数,这些函数用于进行数据处理或复杂运算,它们通过对一组数据进行计算,得到最终需要的输出结果

(暂时不研究,需要时回来补充)

1.6 分组和组函数
1.7 集合运算
1.7.1 union运算(并集)
1.7.2 minus运算(差集)
1.7.3 interesect运算(交集)

2.JDBC的典型用法

2.1 JDBC4.2常用接口和类简介

Java 8支持JDBC4.2标准

2.2 JDBC编程步骤

1.加载数据库驱动,通常使用Class类的forName()静态方法来加载驱动

//加载驱动
Class.forName(driverClass)

上面代码中的driverClass就是数据库驱动类所对应的字符串

//例如,加载MySQL的驱动采用如下代码:
Class.forName("com.mysql.jdbc.Driver")

2.通过DriverManager获取数据库连接,DriverManager提供了如下方法

//获取数据库连接
DriverManager.gerConnection(String url,String user,String pass);

当使用DriverManager获取数据库连接时,通常需要传入三个参数:数据库URL,登录数据库用户名和密码
数据库URL通常遵循:jdbc:subprotocol:other stuff
例子:jdbc:mysql://hostname:port/databasename
3.通过Connection对象创建Statement对象,创建Statement对象的方法有三个

4.使用Statement执行SQL语句,所有Statement都有如下三个方法来执行SQL语句

5.操作结果集,如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果,程序可以通过操作该ResultSet对象来取出查询结果,ResultSet对象主要提供了吐下两类方法

6.回收数据库资源,包括关闭ResultSet,Statement和Connection等资源
下面程序简单示范JDBC编程:

import java.sql.*;

public class ConnMySql {
    public static void main(String[] args)throws Exception{
        //1.加载驱动,使用反射知识
        Class.forName("com.mysql.jdbc.Driver");
        try {
            //2.使用DriverManager获取数据库连接
            //其中返回的Connection就代表了Java程序和数据库的连接
            //不同数据库的URL写法需要查驱动文档,用户名,密码由DBA分配
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://127.0.0.1:3306/demo1",
                    "root",".aA123456"
            );
            //3.使用Connection来创建一个Statement对象
            Statement stmt = conn.createStatement();
            //4.执行SQL语句
            /*
            Statement有三种执行SQL语句的方法
            1.execute()可执行任何SQL语句,返回一个Boolean值
                如果执行后第一个结果是ResultSet,则返回true,否则返回false
            2.executeQuery()执行select语句 返回查询到的结果集
            3.executeUpdate()用于执行DML语句 返回一个整数
                代表被SQL语句影响的记录条数
             */
            ResultSet rs = stmt.executeQuery("select s.*, teacher_name" + "from student_table s, teacher_table t" + "where t.teacher_id = s.java_teacher");{
                //ResultSet有一系列的getXxx(列索引 | 列名)方法,用于获取记录指针
                //指向行,特定列的值,不断地只用next()将记录指针下一行
                //如果移动之后记录指针依然指向有效行,则next()方法返回true
                while (rs.next()){
                    System.out.println(rs.getInt(1) + "\t"
                        + rs.getString(2) + "\t"
                        + rs.getString(3) + "\t"
                        + rs.getString(4)
                    );
                }
            }
        }catch (Exception e){
            System.out.println(e);
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读