本文主要讲解:

  1. JDBC的概念

  2. JDBC的原理

  3. 创建用于测试的数据库

  4. 使用JDBC操作数据库

  5. 思考与分析

  1. 关于JDBC

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。

2.JDBC原理:

JDBC说白了就是一套AIP接口,一套规范.然后各大数据库的驱动都实现并遵守了这套接口.

3.准备数据库:

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test              |

+--------------------+

4 rows in set (0.00 sec)

mysql> create database xinsz08; mysql> use xinsz08;Database changedmysql> create table category(   -> cid int primary key auto_increment,   -> cname varchar(100)   -> );Query OK, 0 rows affected (0.36 sec) mysql>mysql> set names gbk;Query OK, 0 rows affected (0.27 sec) mysql> INSERT INTO category (cname)VALUES('家电');Query OK, 1 row affected (0.08 sec) mysql> INSERT INTO category (cname)VALUES('服饰');Query OK, 1 row affected (0.03 sec) mysql> INSERT INTO category (cname)VALUES('化妆品');Query OK, 1 row affected (0.03 sec) mysql> select * from category;+-----+--------+| cid | cname  |+-----+--------+|   1| 家电      ||   2| 服饰       ||   3| 化妆品     |+-----+--------+3 rows in set (0.00 sec)

导入驱动包

创建lib目录,用于存放当前项目需要的所有jar包

选择jar包,右键执行build path / Add to Build Path

4.使用JDBC实现数据库增删改查的步骤:

  • 注册驱动

  • 获得连接

  • 获得执行sql语句的对象

  • 执行SQL语句,并返回结果

  • 处理结果

  • 释放资源

代码示例1:

使用JDBC插入数据到数据库:

package cn.xinsz.boke01;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;publicclass demo1 {    publicstaticvoid main(String[] args) throws Exception {       Class.forName("com.mysql.jdbc.Driver");       String url = "jdbc:mysql://localhost:3306/xinsz08";       String user="root";       String password="root";       Connection conn = DriverManager.getConnection(url,user,password);              Statement stat = conn.createStatement();       String sql="insert into category (cname)values('玩具')";       introw=stat.executeUpdate(sql);       System.out.println(row);       stat.close();       conn.close();    } }

mysql> select * from category;

+-----+--------+

| cid | cname  |

+-----+--------+

|   1| 家电      |

|   2| 服饰       |

|   3| 化妆品     |

|   4| 玩具       |

|

+-----+--------+

6 rows in set (0.00 sec)

可以看到插入了一行数据,第4条.

使用JDBC对数据进行查看和删除

package cn.xinsz.boke01;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; publicclass demo1 {    publicstaticvoid main(String[] args) throws Exception {       Class.forName("com.mysql.jdbc.Driver");       String url = "jdbc:mysql://localhost:3306/xinsz08";       String user = "root";       String password = "root";       Connection conn = DriverManager.getConnection(url, user, password);        Statement stat = conn.createStatement();       select(stat);//查询数据       delete(stat);       stat.close();       conn.close();    }     privatestaticvoid delete(Statement stat) throws Exception {       String sql= "delete from  category where cid=5";       introw = stat.executeUpdate(sql);       if(row>0){           System.out.println("执行成功");       }else{           System.out.println("执行失败");       }                        }     privatestaticvoid select(Statement stat) throws Exception {       String sql = "select * from category";       ResultSet rs = stat.executeQuery(sql);       while (rs.next()) {            System.out.println(rs.getString("cid") + rs.getString("cname"));        }       rs.close();     } }

代码分析:

使用JDBC时,最常打交道的是Connection、PreparedStatement这两个类,以及select中的ResultSet类。

Connection

java.sql 
接口 Connection

  • 所有超级接口:

  • Wrapper


public interface Connectionextends Wrapper

与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。

Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、存储过程、此连接功能等等的信息。此信息是使用 getMetaData 方法获得的。

  PreparedStatemnt

java.sql 
接口 PreparedStatement

  • 所有超级接口:

  • Statement, Wrapper

  • 所有已知子接口:

  • CallableStatement


public interface PreparedStatementextends Statement

表示预编译的 SQL 语句的对象。

SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

常用方法

boolean  execute()

在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。

ResultSet  executeQuery()

在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。

int  executeUpdate()

在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。

  

  ResultSet  

java.sql 
接口 ResultSet

  • 所有超级接口:

  • Wrapper

  • 所有已知子接口:

  • CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, RowSet, SyncResolver, WebRowSet


public interface ResultSetextends Wrapper

表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

5.思考与分析

  • 每次SQL的操作都需要建立和关闭连接,我们是否可以考虑对JDBC进行封装?

    答:事实上很多对JDBC的封装已经这么做了.

  • JDBC在整个java开发中占了很大的比重,是务必要学会的内容,当然原生态JDBC的增删改查比较简单.

    总结: JDBC技术,可以理解为是一门基于Java语言的数据库连接与开发技术,通过使用JDBC技术,可以利用Java语言更好更快地进行数据库开发。

特别喜欢李小龙的一句话:"我不怕会一万种招式的对手,我怕把一种招式练一万遍的对手."

本文出自 “xinsz08の平行时空” 博客,请务必保留此出处http://xinsz08.blog.51cto.com/10565212/1947929

JDBC实现数据库的增删改查相关推荐

  1. JDBC对数据库进行增删改查【面向对象版】

    写在前面的话: 参考资料:尚硅谷视频 本章内容:使用面向对象的思想,进行对数据库的增删改查 IDE:eclipse JDK:Java8 MySQL:mysql  Ver 8.0.26 for Win6 ...

  2. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. jdbc增删改查有哪些步骤_用Mybatis如何实现对数据库的增删改查步骤

    使用Mybatiss实现对数据库的增删改查 文件目录 1.导入jar包,这里使用maven <dependencies><!--mybatis依赖--><!-- org. ...

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

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

  5. DAO模式设计-JDBC连接Mysql数据库实现增删改查及JunitTest单元测试

     概念介绍 JDBC JDBC(Java数据库连接,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC ...

  6. jdbc如何对mysql数据库进行查询_【转载】通过JDBC对MySQL数据库的增删改查

    目录 前言:什么是JDBC 维基百科的简介: Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接 ...

  7. 通过JDBC进行简单的增删改查(二)

    本章笔记更易理解和学习,也是我第一次初学的笔记. 1 package javastudy; 2 3 import java.sql.Connection; 4 import java.sql.Driv ...

  8. JDBC进行简单的增删改查

    一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 (3)insert (4)up ...

  9. 通过JDBC进行简单的增删改查(以MySQL为例)

    目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操作 (1)定义记录的类(可选) (2)连接的获取 ( ...

最新文章

  1. Linux crontab 命令格式与具体样例
  2. python语言需要英语非常好吗-Python用不好英语水平不够?这里有官方中文文档你看不看...
  3. 无法访问python官网_python写的网站,云服务器经常无法访问
  4. Linux/Unix下tar命令详解
  5. 可以方便的将SQL语句的执行结果显示成表格结果的JAVA类,可以用于不同的数据显示
  6. 【Hadoop Summit Tokyo 2016】一小时之内使用Apache Nifi从零到数据流
  7. 使用Presto SQL一些常见问题总结
  8. Android更改包名
  9. ESXI安装网卡或HBA卡驱动
  10. 学计算机专业开学要买笔记本电脑吗,大一开学需要买电脑吗 大学开学电脑买什么好...
  11. Caution: request is not finished yet
  12. ​PDF怎么转换成Word?试试这几种好用的转换方法
  13. 设计模式--静态工厂、简单工厂方法案例分析
  14. 嵌入式系统求职回忆录1
  15. 网络安全-网站漏洞扫描器
  16. android 页面默认不弹软键盘_Android 软键盘的全面解析,让你不再怕控件被遮盖!...
  17. 让百度快速收录新网站的方法是什么 让百度快速收录新网站的方法有哪些
  18. 时间弥散谱成像和IMPULSED
  19. Junit-对涉及数据库操作的服务进行单元测试
  20. Python进行数据分析探索

热门文章

  1. php cms多城市版,[转载]齐博CMS多城市版改为单城市版以及设置伪静态规则
  2. easyuefi只能在基于uefi启动的_关于UEFI安装的普遍误区
  3. python django ORM null blank choices help_text verbose_name
  4. 苹果助手开发随笔系列:1、需要加载的DLL
  5. matlab 飞机,飞机系统matlab建模
  6. log4j-over-slf4j工作原理详解
  7. 浪潮服务器 虚拟光驱,浪潮英信服务器NF5280M5
  8. python 常用代码段汇总(一) 判断数据类型 判断是否为整数(包括负数)
  9. c语言教学系统设计报告,C语言在线教学系统的设计与实现
  10. 我c测了瑜伽老师一节课