主要内容

  • MySQL的基本操作和基本SQL语法
  • 使用JDBC进行MySQL数据库的开发
  • 使用DriverManager、Connection、PreparedStatement、ResultSet对数据库进行增删改查操作

JDBC简介

  JDBC(Java Database Connectivity)提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便地实现多种关系型数据库的统一操作,它由一组用Java语言编写的接口和类组成。

  JDBC本身提供的是一套数据库操作标准,而这些标准又需要数据库厂商实现,所以针对每一个数据库厂商都会提供一个JDBC驱动程序,目前比较常见的JDBC驱动程序可分为以下4类:

  1. JDBC-ODBC桥驱动。直接利用微软的ODBC(Open Database Connectivity)进行数据库的连接操作,但是这种操作性能较低。
  2. JDBC本地驱动。直接使用各个数据库生产商提供的JDBC驱动程序,但是因为其只能应用在特定的数据库上,会丧失程序的可移植性,不过这样操作的性能较高。
  3. JDBC网络驱动。将JDBC转换为与DBMS无关的网络协议,之后又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者。通常,这是最灵活的JDBC驱动程序。
  4. 本地协议纯JDBC驱动。将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机器上直接调用DBMS服务器。

MySQL数据库

  MySQL是一个小型关系型数据库管理系统。在MySQL官网下载安装包,安装好之后配置好环境变量就可以使用了。

MySQL常用命令
连接MySQL数据库 mysql -u 用户名 -p;然后输入密码
创建数据库 create database 数据库名称;
删除数据库 drop database 数据库名称;
使用数据库 use 数据库名称;
创建数据库表 create table 表名称(字段名称 字段类型 默认值 约束…………);
删除数据库表 drop table 表名称;
查看表结构 desc 表名称;
查看全部数据库 show databases;
查看一个数据库的全部表 show tables;

SQL语法基础

  SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常用于与数据库的通信。SQL功能强大,概括起来可以分成以下几组:DML(Data Manipulation Language,数据操作语言),用于检索或者修改数据;DDL(Data Definition Language,数据定义语言),用于定义数据的结构,如创建、修改或者删除数据库对象;DCL(Data Control Language,数据控制语言),用于定义数据库用户的权限。

SQL常用语法
增加数据 insert into 表名称【(字段1,字段2,……,字段n)】 values(值1,值2,……,值n);(【】表示可选项)
删除数据 delete from 表名称 【删除条件】;
更新数据 update 表名称 set 字段1=值1,……,字段n=值n 【where 更新条件】;
查询数据

select {*|column alias}

from 表名称 别名

【where 条件】

【limit 开始行,取出的数据个数】;

  需要注意的是,在增加数据时,如果是字符串,则一定要用“‘”括起来;如果是日期,则按照标准的日期格式进行插入(MySQL中的日期使用yyyy-mm-dd的格式保存,所以在插入数据时,必须按照此种格式插入)。

  在删除数据时,最好指定删除的条件,如果没有指定,则表示删除一张表中的全部数据。

  与删除语句一样,修改时也需要指定修改条件,否则数据表的全部记录都将被修改。


连接数据库

  要使用MySQL数据库进行开发,首先去官网下载驱动,然后将MySQL数据库的驱动程序配置到classpath中。

  加载数据库驱动程序是JDBC操作的第一步,由于已经将数据库的驱动程序直接配置到了classpath中,所以,此时可以直接进行加载。MySQL中的数据库驱动路径是com.mysql.jdbc.Driver。得到驱动程序路径之后,即可利用Class类进行驱动程序的加载。

  连接及关闭数据库。如果数据库驱动程序可以正常加载,就可以利用DriverManager类连接数据库。在DriverManager中,提供的主要操作就是得到一个数据库的连接,getConnection()方法就是取得连接对象,此方法返回的是Connection对象,不管使用哪种方式连接,都必须提供一个数据库的连接地址。

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class ExampleDatabase {
//定义MySQL的数据库驱动程序
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
//定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
//MySQL数据库的连接用户名
public static final String DBUSER = "root";
//MySQL数据库的连接密码
public static final String DBPASS = "root";
public static void main(String[] args) {
Connection con = null;
try {
//加载驱动程序
Class.forName(DBDRIVER);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//连接MySQL数据库时,要写上连接的用户名和密码
con = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println(con);
try {
//关闭数据库
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}

执行数据库的更新操作

  数据库连接后,就可以进行数据库的具体操作,要使用Statement接口完成,此接口可以使用Connection接口中提供的createStatement()方法实例化。

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement; public class ExampleDatabase {
//定义MySQL的数据库驱动程序
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
//定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
//MySQL数据库的连接用户名
public static final String DBUSER = "root";
//MySQL数据库的连接密码
public static final String DBPASS = "root";
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
//数据库插入语句
String insertSQL = "insert into user (id, name, age) values (3, 'key', 23)";
//数据库修改语句
String alterSQL = "update user SET name='jon' where id=8";
//数据库删除语句
String deleteSQL = "delete from user where id=5";
try {
//加载驱动程序
Class.forName(DBDRIVER);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//连接MySQL数据库时,要写上连接的用户名和密码
con = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
//实例化Statement对象
stmt = con.createStatement();
//执行数据库更新操作
stmt.executeUpdate(insertSQL);
stmt.executeUpdate(alterSQL);
stmt.executeUpdate(deleteSQL);
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println(con);
try {
//关闭操作
stmt.close();
//关闭数据库
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}

数据库查询操作

  使用SQL的select语句可以查询出数据库的全部结果,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet显示内容。要进行数据库查询操作,需要使用Statement接口定义的executeQuery()方法,此方法返回值类型就是一个ResultSet的对象,此对象中存放了所有的查询结果。

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet; public class ExampleDatabase {
//定义MySQL的数据库驱动程序
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
//定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/test";
//MySQL数据库的连接用户名
public static final String DBUSER = "root";
//MySQL数据库的连接密码
public static final String DBPASS = "root";
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
//数据库查询语句
String sql = "select id , name, age from user";
try {
//加载驱动程序
Class.forName(DBDRIVER);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
//连接MySQL数据库时,要写上连接的用户名和密码
con = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
//实例化Statement对象
stmt = con.createStatement();
//执行数据库查询操作
rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString(2);
int age = rs.getInt("age");
System.out.print("id:" + id + " ");
System.out.print("name:" + name + " ");
System.out.println("age:" + age);
}
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println(con);
try {
//关闭结果集
rs.close();
//关闭操作
stmt.close();
//关闭数据库
con.close();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}

  ResultSet中的所有数据都可以通过getString()方法获得。

PreparedStatement

  PreparedStatement是Statement的子接口,属于预处理操作。与直接使用Statement不同的是,PreparedStatement在操作时,是先在数据表中准备好了一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后再进行设置。由于PreparedStatement对象已预编译过,所以其执行速度要高于Statement对象。在开发中不建议使用Statement,而是使用PreparedStatement。

JDBC连接MySQL数据库基础的更多相关文章

  1. ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库

    1.MySQL存储过程   1.1.什么是存储过程 带有逻辑的sql语句:带有流程控制语句(if  while)等等 的sql语句   1.2.存储过程的特点 1)执行效率非常快,存储过程是数据库的服 ...

  2. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  3. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  4. JDBC连接MySQL数据库及示例

      JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一 ...

  5. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  6. Crystal Reports 2008(水晶报表) JDBC连接mysql数据库

    在本blog中,主要介绍的是Crystal Reports 2008使用JDBC连接mysql数据库. 在连接之间,首先要确认你电脑上面都安装了mysql数据库. 其次,就是jdbc连接数据时候所使用 ...

  7. java用JDBC连接MySQL数据库的详细知识点

    想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...

  8. JDBC 连接mysql数据库

    JDBC 连接mysql数据库jar包:mysql-connector-java-5.1.47.jar 下载:mysql-connector-java-5.1.47.jar jdbc:java dat ...

  9. 分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)

             分页查询信息       使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目 ...

随机推荐

  1. DB Query Analyzer has been downloaded more than 100,000 times

                           DB Query Analyzer has been downloaded more than 100,000 times Today I am very ...

  2. The 12th tip of DB Query Analyzer, powerful in text file process

    MA Gen feng ( Guangdong Unitoll Services incorporated, Guangzhou 510300) Abstract   It's very powerf ...

  3. 操作json数据

    删除: delete json[key] 把json字符串转成jsonObject : eval(+'('+json+')'+) 把jsonObject 转换成json字符串 :json.toJSON ...

  4. mq常用命令

    IBM MQ常用命令   常用命令 创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrNam ...

  5. 在vs2013下手把手创建/调用dll

    body { font: 16px } 参考了大佬的文章 首先,体会一下静态编译: 创建Win32Project,选DLL,添加一个.h和.cpp文件 点击生成解决方案,然后去debug目录下拷贝.l ...

  6. 第一章 python介绍、变量、数据类型、流程控制语句等

    一.python介绍 1.python的诞生 python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(龟叔)于1989年发明,第一个公开发行版发行于1991年. ...

  7. Scala编程入门---面向对象编程之Trait

    Scala中Trait是一种特殊概念 首先我们可以将Triat做为接口来使用,此时的Triat就与java中的接口非常相似 在Triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出具体的 ...

  8. angular2项目如何使用sass

    angular/cli支持使用sass 新建工程: 如果是新建一个angular工程采用sass: ng new My_New_Project --style=sass 这样所有样式的地方都将采用sa ...

  9. 架构之微服务(etcd)

    1. ETCD是什么 ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统.该项目目前最新稳定版本为2.3.0. 具体信息请参考[项目首页]和[Github].ETCD是CoreOS公司发起 ...

  10. thinkphp实现文件上传

    文件上传详细讲解 http://www.thinkphp.cn/info/194.html 上传根目录不存在问题解决方法 http://www.thinkphp.cn/topic/10779.html