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.文章反映个人愚见,如有异议欢迎讨论指正
上一篇: JAVA基础 之 Iterator