提示:阅读本文之前您至少具备:

1.sql基础知识

2.Java面向对象编程

3.异常的相关知识

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API

学习JDBC必须知道的几个接口和类:

DriverManager:管理jdbc驱动的服务类(官网api解释)

Connection:代表每一次数据库连接

Statement:执行sql语句的工具接口

PreparedStatement:一个预编译的SQL Statement

ResultSet:结果集,通过sql查询后产生的一张数据表

本文只讲述这些基础的如何使用,除此之外还有很多相关的内容,例如:

ResultSetMetaData、DatabaseMetaData、RowSet、RowSetFactory

事务、分页、存储二进制文件、执行存储过程、连接池(c3p0)等等

在今后的文章讲述,请关注我博客其他的文章。

使用前准备:

下载你对应的数据库驱动包

mysql下载地址:http://www.mysql.com/downloads/connector/j/ (2013-02-26有效)

注意:这里会让你注册,但是仔细查找会发现下面有个 No thanks, just start my download. 点击这个就可以下载

压缩包内有一个mysql-connector-java-5.1.23-bin.jar文件,将它加入到你的bulid path中

package com.cxy.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/*** @author cxy*/
public class JdbcTest
{private static Connection con=null;private static Statement stmt=null;private static ResultSet rs=null;public static void main(String[] args) throws Exception{try{/* jdbc编程可分为5步* 第一步:加载驱动  将指定类加载到jvm中* 第二步:创建数据库连接(Connection)* 第三步:创建一个Statement* 第四步:创建一个结果集(ResultSet)* 第五步:关闭ResultSet、Statement、Connection* * 说明:* 1.良好的编程习惯应该将第五步的关闭操作放到 finally去执行* 2.java7后的新接口可以提供 自动关闭功能 见下文* 3.真实项目中 数据库相关连接信息都应写到配置文件中(xml或者Properties文件中)* 4.使用本例前请先建立对应的数据库:dbtest,然后运行建表语句( 或修改成任意自己的库和表)*/Class.forName("com.mysql.jdbc.Driver");  con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");  //三个参数分别是数据库连接、帐号、密码stmt=con.createStatement();//stmt.execute("CREATE TABLE t_student ( id_ varchar(32) not null,name_  varchar(32),sex  varchar(32))");//stmt.execute("insert into t_student values ('1','小明','男')");//stmt.execute("insert into t_student values ('2','小白','女')");//stmt.execute("delete from t_student");stmt.executeQuery("select * from t_student");rs=stmt.getResultSet();System.out.println("id\t姓名\t 性别");while(rs.next()){System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));}System.out.println("操作成功");}catch (Exception e) {System.out.println("数据库操作出现异常");}finally{if(rs!=null){//5.关闭结果集rs.close();}if(stmt!=null){//6.关闭状态集stmt.close();}if(con!=null){//7.关闭数据库连接con.close();}System.out.println("数据库各种资源已经关闭");}System.out.println("=====================================");/* Ok 我们已经看到了 其实我们只想操作一下数据库而已!难道那些烦人的关闭操作 java就不能自动执行?* java7开始这个梦想成真了!java7开始出现了一个AutoCloseable接口,并且大部分的需要关闭资源的类都实现了这个接口* 下面我们就来写一个和上面类似的程序看看吧* 注意:这个只能在安装了java7之后的版本才能使用*/try(Connection con1=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");Statement stmt1=con1.createStatement();ResultSet rs1=stmt1.executeQuery("select * from t_student");){System.out.println("id\t姓名\t 性别");while(rs1.next()){System.out.println(rs1.getString(1)+"\t"+rs1.getString(2)+"\t"+rs1.getString(3));}}catch(SQLException e){System.out.println("数据库操作出现异常");}/** ok 简单吗?神奇吗?这就是传说中的try-with-resource,不仅仅是jdbc可以这样用哦~* 更多扩展阅读请看:http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html*/}
}

声明:

1.原创文章,转载请标明并加本文连接。

2.更详尽的API请参见  http://docs.oracle.com/javase/7/docs/api/

3.文章反映个人愚见,如有异议欢迎讨论指正

【CXY】JAVA基础 之 JDBC相关推荐

  1. java jdbc_详解Java基础知识——JDBC

    JDBC Java DataBase Connectivity,java数据库连接,为了降低操作数据的难度,java提供jdbc,按照java面向对象特点,对操作进行了很多封装. JDBC提供了很多接 ...

  2. 【Java基础】JDBC

    JDBC核心技术 第1章:JDBC概述 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数 ...

  3. 一篇文章教你学会Java基础JDBC

    文章目录 一.搭建JDBC开发环境 1.搭建工程 2.连接数据库工具类JdbcConnectionUtil 3.main方法测试 二.创建Statement或PreparedStatement接口,执 ...

  4. 【CXY】JAVA基础 之 异常概述

    概述: 1.异常给初学者的感觉(笔者当时就是这个感觉,不知道其他人是否有共鸣?) 1.异常是个什么东西?理解不了 2.很复杂 3.异常很"简陋",没什么用 4.我保证我写的程序正确 ...

  5. 【CXY】JAVA基础 之 异常

    讲述: 1.五个关键字 1.try:尝试捕获异常,具体的下面讲述 2.catch:当try捕获到异常了,系统会自动生成一个异常信息,这个异常信息就给catch,形象的说我抓住了这个异常. 3.thro ...

  6. 【CXY】JAVA基础 之 Collections

    概述: 1.Collections(注意不是Collection,而是Collections,多了一个s) 2.它是一个集合工具类 3.方法分类:常规操作(查找,最大,最小等).排序.线程安全(同步) ...

  7. 【CXY】JAVA基础 之 Set

    概述: 1.Set不允许重复数据,判断重复标准:equals方法 2.HashSet 1.无序(序号的序),允许存在null 2.hashCode值决定它在HashSet中的位置,通过hashCode ...

  8. 【CXY】JAVA基础 之 Map

    概述: 1.键值对,key-value,具有映射关系的数据 2.Map的key不允许重复,value可以重复 3.Map里的key类似一个Set,甚至可以通过map.keySet()拿到key的Set ...

  9. 【CXY】JAVA基础 之 List

    概述: 1.有序的(序号(索引)的序,不是顺序的序,相对Set对比产生的说法),可重复集合 2.List是Collection的子接口,所以List可以使用Collection全部方法.(见本人博客相 ...

最新文章

  1. 神秘粒子可让硬盘体积缩至花生米大小
  2. 本周ASP.NET英文技术文章推荐[03/11 - 03/17]
  3. Web 设计中的 5 个最具争议性的话题
  4. java 用户控件_C#自定义控件VS用户控件
  5. 5G高频段频谱规划启动 大国博弈加剧
  6. php 递归函数中静态变量,php递归,静态变量,匿名函数使用
  7. php转换编码去掉bom,UTF-8编码怎么去掉BOM头?
  8. jsp,servlet中文乱码问题
  9. 地图分析--广度搜索
  10. 源码分析--SDWebImage
  11. VAssistX使用
  12. 使用百度云OCR识别文字
  13. shx文件怎么导入cad_「设计师必备技能」打开cad图纸缺少shx字体,图纸乱码怎么办?...
  14. php在线画图,详细介绍HTML5简易在线画图工具的实现案例
  15. 计算机如何寻找ppt文件,如何快速找到电脑里的文件ppt课件
  16. 知乎热议:35岁,你要逃离北上广?
  17. Mysql学习日记:L13-distinct关键字
  18. Pytorch 深度学习结果无法复现的解决办法
  19. 加密市场的牛熊周期;NFT 定义的争论
  20. Html和Markdown中的空格, nbsp; ensp; emsp; 以及 thinsp; zwnj; zwj;

热门文章

  1. 科研入门-国际期刊会议
  2. 笔记本电脑wlan+开启移动热点+手机转圈圈【已解决】
  3. Python项目-Day26-数据加密-hash加盐加密-token-jwt
  4. python判断火车票座位号分布图_火车票怎么看车厢号和座位号
  5. 怎么压缩gif图片大小?如何压缩gif又不影响画质
  6. SingleChildScrollView内容不超出屏幕时下拉回弹
  7. 如何从零开始设计一款小程序原型?
  8. Java GUI编写一个简单的抽奖机
  9. centos通过nmcli设置静态ip及设置开机自动连接
  10. 常见的字符编码(ASCII码,unicode,utf-8,gbk)