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. Centos6和7的区别

    1.init系统 Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化.内核初始化的最后一步就是启动 pid 为 1 ...

  2. scrapy框架基于CrawlSpider的全站数据爬取

    引入 提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法 ...

  3. iOS 键盘的监听 调整view的位置

    iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications - (void)vie ...

  4. redis中存储小数

    在做一个活动的需求时,需要往redis中有序的集合中存储一个小数,结果发现取出数据和存储时的数据不一致 zadd test_2017 1.1 tom (integer) zrevrange test_ ...

  5. 使用Git如何优雅的忽略掉一些不必的文件

    熟悉使用Git之后发现,使用sourceTree来管理和开发项目会变得更高效,现在我用bitbucket管理自己的项目,它提供了私有的仓库,用起来还是比较爽,不过刚开始用的时候,只要一打开本地仓库的工 ...

  6. Service与BoardcastReceive

    开发service需要两个步骤: 1.定义一个继承Service的子类 2.在AndroidMainfest.xml文件中配置该Service. Service与Activity都是从Context派 ...

  7. Angular material mat-icon 资源参考_Connection

    ul,li>ol { margin-bottom: 0 } dt { font-weight: 700 } dd { margin: 0 1.5em 1.5em } img { height: ...

  8. SELinux 引起的 Docker 启动失败

    问题描述 Linux OS 版本 CentOS Linux release 7.2.1511 (Core) 启动Docker service docker start 启动失败信息 原因分析 Erro ...

  9. Vue学习笔记 template methods,filters,ChromeDriver,安装sass

    ChromeDriver installation failed Error with http(s) request: Error: connect ETIMEDOUT 172.217.160.80 ...

  10. Spring Roo 想知道源码,怎么实现自动生成枯燥的有规律的文件

    简介   似乎是社区在维护的,不在 Spring 官网的 main projects 列表里,而是在 社区projects 列表里   是工具,不是像Spring Boot 一样的框架 http:// ...