JDBC全称Java Database Connectivity,即Java数据库连接。(以下以MySQL为例,使用MySQL语句)

Sun公司提供了标准JDBC API接口,没有实现具体类。各个数据库厂商实现了各自的具体类。我们与不同数据库连接,只需要调用不同的数据库驱动程序就可以,即调用了数据库JDBC API的具体类。(这部分属于Java多态)

JDBC API可完成以下3个任务  

 1.建立与数据库的连接

 2.执行SQL语句

 3.获得SQL语句的执行结果

安装MySQL数据库:

首先我们要在自己电脑上安装MySQL数据库,方法如下:

http://jingyan.baidu.com/article/f79b7cb35c0f439144023e38.html(百度经验,自己没有试过,具体安装细节搜索百度)。

MySQL基本语句:

    1.创建新的数据库:

  create database [IF NOT EXISTS] 数据库名; (注意每条语句结尾都要带上一个分号,并且语句必须使用英文输入,数据库名根据自己想定义的名字替换,以下相同)

 2.删除指定数据库:

  drop database 数据库名;

 3.对某数据库进行操作:

  use 数据库名;

 4.查询该数据库下包含多少个数据表:

  show tables;

 5.查看数据表的表结构:

  desc 表名;

语句分类:

 1.DML(Data Manipulation Language,数据操作语言) 语句:主要有insert、update和delete三个关键字构成。

 2.DDL(Data Definition Language,数据定义语言)语句:主要有create、alter、drop和truncate四个关键字构成。

 3.DCL(Data Control Language,数据控制语言)语句:主要有grant和revoke两个关键字构成。

其中,要掌握create、drop、insert、update、delete简单语句格式。最重要的要掌握select语句。增删改查。

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

 DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的功能是获取Connection对象。

 Connection:数据库连接对象,每个connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接。

Statement:用于执行SQL语句的工具接口。

 PreparedStatement:预编译的Statement对象。PreparedStatement是Statement的子接口。它允许数据库预编译SQL语句(这些SQL语句通常带有参数),相对于Statement而言,使用PreparedStatement执行SQL语句是,无需再传入SQL语句,只要为预编译的SQL语句传入参数值即可。

 ResultSet:结果集对象。该对象包含访问查询结果的方法。

JDBC编程步骤:

 1.加载驱动:(使用Class类的静态方法来加载驱动),想使用哪个数据库,就查询要加载的驱动名称。

  //加载MySQL的驱动

  Class.forName("com.mysql.jdbc.Driver“); //这里因为加载驱动不同,即调用的具体类不同,可以连接不同的数据库。

  //加载Oracle的驱动

  Class.forName("oracle.jdbc.driver.OracleDriver");

 2.通过DriverManager获取数据库连接:

  DriverManager.getConnection(String url, String user, String pass);//数据库URL,登录数据库的用户名,登录数据库的密码

  URL写法规则:

  //MySQL写法:

jdbc:subprotocol:other stuff  //subprotocol指定连接到特定数据库的驱动

  例如:jdbc:mysql://hostname:port/databasename

  //Oracle写法

  jdbc:oracle:thin:@hostname:port:databasename

 3.通过Connection对象创建Statement对象:

    3种方法:

      createStatement():创建基本的Statement对象

      prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象

      prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象,该对象可调用存储过程

 4.使用Statement执行SQL语句:

  1.execute():可以执行任何SQL语句但是比较麻烦

  2.executeUpdate():主要执行DML和DDL语句。执行DML语句返回受SQL语句影响的行数,执行DDL语句返回0。

  3.executeQuery():只能执行查询语句(select),执行后返回代表查询结果的ResultSet对象。

 5.操作查询结果集:

  1.next()、previous()、first()、last()、beforeFirst()、afterLast()、absolute()等移动记录指针的方法

  2.getXxx():获得记录指针指向行、特定列的值。

 6.回收数据库资源:

    关闭ResultSet、Statement和Connection的资源。

 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.gerConnection(
"jdbc:mysql://127.0.0.1:3306/select_test"
, "root", "54321"); //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语句影响的记录条数
*/ //5.返回结果集,并对其进行操作
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));
} //6.回收数据库资源,关闭时候有要求,先建的引用最后关闭。和栈的执行顺序一样。
rs.close();
stmt.close();
conn.close(); }
}
} }

参考链接:

MySQL数据库安装:http://jingyan.baidu.com/article/f79b7cb35c0f439144023e38.html(百度经验,自己没有试过,具体安装细节搜索百度)。

1.JDBC基础的更多相关文章

  1. jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用

    一.连接池的概念和使用 在实际应用开发中,特别是在WEB应用系统中,如果JSP.Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接.打开数据库.存取数 ...

  2. jdbc基础 (四) 批处理

    批处理,就是字面上的意思,一次性处理一批sql语句. 直接看例子吧: package com.cream.ice.jdbc; import java.sql.Connection; import ja ...

  3. jdbc基础 (三) 大文本、二进制数据处理

    LOB (Large Objects)   分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...

  4. jdbc基础 (二) 通过properties配置文件连接数据库

    csdn博文地址:jdbc基础 (二) 通过properties配置文件连接数据库 上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用. 因为jdbc对数据库的驱动加载.连接 ...

  5. JDBC基础教程

    本文实例讲述了JDBC基础知识与技巧.分享给大家供大家参考.具体分析如下: 1.什么是JDBC? 通俗来讲JDBC技术就是通过java程序来发送SQL语句到数据库,数据库收到SQL语句后执行,把结果返 ...

  6. Java 中 JDBC 基础配置

    Java 中 JDBC 基础配置 <resource auth="Container" driverclassname="oracle.jdbc.driver.Or ...

  7. Unit01: JDBC原理 、 JDBC基础编程

    Unit01: JDBC原理 . JDBC基础编程 这个文件里面有两块内容: 1.用比较麻烦的方式连接数据库,test1(),test4() 2.创建DBTool,测试DBTool连接数据库 ,tes ...

  8. Java应用程序连接数据库--JDBC基础

    Java应用程序连接数据库--JDBC基础   Java应用程序连接数据库–JDBC基础 <!-- MySQL驱动,连接数据库用,由数据库厂商提供 --> <dependency&g ...

  9. JDBC基础教程:tutorialspoint-jdbc

    来自turorialspoint的JDBC基础教程(英文),官网:https://www.tutorialspoint.com/jdbc/index.htm 这个教程在国内已经被翻译成中文(不过是属于 ...

  10. JDBC基础:JDBC快速入门,JDBC工具类,SQL注入攻击,JDBC管理事务

    JDBC基础 重难点梳理 一.JDBC快速入门 1.jdbc的概念 JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以 ...

随机推荐

  1. React Native 一些事

    ReactJS 是否准备好 有时候我们常常需要监听 ReactJS 的的加载情况. 比如说,当获取一条推送,应用还没有起来,通过点击推送启动应用后,而推送中包含一些我们感兴趣的字段需要处理,我们如果直 ...

  2. P4850 [IOI2009]葡萄干raisins 记忆化搜索

    $ \color{#0066ff}{ 题目描述 }$ 普罗夫迪夫的著名巧克力大师Bonny需要切开一板带有葡萄干的巧克力.巧克力是一个包含许多相同的方形小块的矩形.小块沿着巧克力的边排列成n行m列,即 ...

  3. 几个常见用于解决nginx负载均衡的session共享问题的办法

    查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享: PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果sessio ...

  4. HTML-常用标签与表格标签

    超链接标签: <a href="超链接地址" target="_blank">超链接的文字</a> _blank或new是在新网页中打开 ...

  5. Ubuntu14.04安装libusb

    https://www.cnblogs.com/ettie999/p/8142973.html libuvc是一个跨平台的USB视频设备库,建立在libusb之上. 它能够对导出标准USB视频类(UV ...

  6. Go语言命名

    Go语言关键字 1.Go语言有25个关键字 2.关键字用途 var :用于变量的声明const :用于常量的声明type :用于声明类型func :用于声明函数和方法package :用于声明包文件i ...

  7. Go语言字符串

    Go语言的字符串是一个用UTF-8编码的变宽字符序列,它的每一个字符都用一个或多个字节表示 . 在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称.可使用 []byte() ...

  8. Vue 1-- ES6 快速入门、vue的基本语法、vue应用示例,vue基础语法

    一.ES6快速入门 let和const let ES6新增了let命令,用于声明变量.其用法类似var,但是声明的变量只在let命令所在的代码块内有效. { let x = 10; var y = 2 ...

  9. Git版本回退和撤销修改

    版本回退: 在实际工作中,我们会不断对文件进行修改,然后不断提交修改到版本库里,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失. ...

  10. android 报错: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;

    在使用SmartRefreshLayout时,报 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/a ...