【CXY】JAVA基础 之 JDBC
提示:阅读本文之前您至少具备:
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相关推荐
- java jdbc_详解Java基础知识——JDBC
JDBC Java DataBase Connectivity,java数据库连接,为了降低操作数据的难度,java提供jdbc,按照java面向对象特点,对操作进行了很多封装. JDBC提供了很多接 ...
- 【Java基础】JDBC
JDBC核心技术 第1章:JDBC概述 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数 ...
- 一篇文章教你学会Java基础JDBC
文章目录 一.搭建JDBC开发环境 1.搭建工程 2.连接数据库工具类JdbcConnectionUtil 3.main方法测试 二.创建Statement或PreparedStatement接口,执 ...
- 【CXY】JAVA基础 之 异常概述
概述: 1.异常给初学者的感觉(笔者当时就是这个感觉,不知道其他人是否有共鸣?) 1.异常是个什么东西?理解不了 2.很复杂 3.异常很"简陋",没什么用 4.我保证我写的程序正确 ...
- 【CXY】JAVA基础 之 异常
讲述: 1.五个关键字 1.try:尝试捕获异常,具体的下面讲述 2.catch:当try捕获到异常了,系统会自动生成一个异常信息,这个异常信息就给catch,形象的说我抓住了这个异常. 3.thro ...
- 【CXY】JAVA基础 之 Collections
概述: 1.Collections(注意不是Collection,而是Collections,多了一个s) 2.它是一个集合工具类 3.方法分类:常规操作(查找,最大,最小等).排序.线程安全(同步) ...
- 【CXY】JAVA基础 之 Set
概述: 1.Set不允许重复数据,判断重复标准:equals方法 2.HashSet 1.无序(序号的序),允许存在null 2.hashCode值决定它在HashSet中的位置,通过hashCode ...
- 【CXY】JAVA基础 之 Map
概述: 1.键值对,key-value,具有映射关系的数据 2.Map的key不允许重复,value可以重复 3.Map里的key类似一个Set,甚至可以通过map.keySet()拿到key的Set ...
- 【CXY】JAVA基础 之 List
概述: 1.有序的(序号(索引)的序,不是顺序的序,相对Set对比产生的说法),可重复集合 2.List是Collection的子接口,所以List可以使用Collection全部方法.(见本人博客相 ...
最新文章
- 神秘粒子可让硬盘体积缩至花生米大小
- 本周ASP.NET英文技术文章推荐[03/11 - 03/17]
- Web 设计中的 5 个最具争议性的话题
- java 用户控件_C#自定义控件VS用户控件
- 5G高频段频谱规划启动 大国博弈加剧
- php 递归函数中静态变量,php递归,静态变量,匿名函数使用
- php转换编码去掉bom,UTF-8编码怎么去掉BOM头?
- jsp,servlet中文乱码问题
- 地图分析--广度搜索
- 源码分析--SDWebImage
- VAssistX使用
- 使用百度云OCR识别文字
- shx文件怎么导入cad_「设计师必备技能」打开cad图纸缺少shx字体,图纸乱码怎么办?...
- php在线画图,详细介绍HTML5简易在线画图工具的实现案例
- 计算机如何寻找ppt文件,如何快速找到电脑里的文件ppt课件
- 知乎热议:35岁,你要逃离北上广?
- Mysql学习日记:L13-distinct关键字
- Pytorch 深度学习结果无法复现的解决办法
- 加密市场的牛熊周期;NFT 定义的争论
- Html和Markdown中的空格, nbsp; ensp; emsp; 以及 thinsp; zwnj; zwj;