利用JDBC连接到数据库一般需要几个步骤:

1.装载驱动程序。

2.建立连接。

3.发送和执行SQL语句。

4.释放资源

首先建立一个数据库:

脚本如下:

 create database csdn;
use csdn;
-- 创建用户表
CREATE TABLE USERS
(
ID INT(7) NOT NULL AUTO_INCREMENT,
NAME VARCHAR(50) ,
PWD VARCHAR(50),
PHONE VARCHAR(50) ,
PRIMARY KEY (id),
-- 登录用户名唯一约束
constraint name_unique unique(name)
); -- 向数据库插入模拟数据
insert into Users (id, name, pwd, phone) values ( 1,'Tom', '', '');
insert into Users (id, name, pwd, phone) values (2,'Jerry', 'abc', '');
insert into Users (id, name, pwd, phone) values ( 3,'Andy', '', ''); select * from users;

java连接代码如下:

新建一个项目并导入需要的jar包,完整代码如下:

 package com.daliu.jdbc;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; /**
* 测试使用JDBC连接mysql数据库
*
* @author Administrator
*/
public class DBUtil { public static void main(String[] args) { Connection conn = null;
Statement stmt = null;
ResultSet rs = null; /*
* 1.装载驱动程序。 当出现了: java.lang.ClassNotFoundException:
* oracle.jdbc.driver.OracleDriver
*
* 这个异常时,说明数据库的驱动jar包没有 导入到项目中。 若导入了jar包还报这个错误,大部分原因是 书写的驱动有错误
*/ try {
Class.forName("com.mysql.jdbc.Driver"); /*
* 2.建立连接。
*
* 通过调用DriverManager的getConnection方法,获取Connection类的对象,建立连接。
*/
String URL = "jdbc:mysql://localhost:3306/csdn"; conn = DriverManager.getConnection(URL, "root", "123456"); // 测试一下是否连接成功
System.out.println(conn); /*
* 3.通过Connection的createStatement()方法获取数据库操作对象Statement。
* 通过调用Statement对象的executeQuery方法来执行SQL语句。
*/
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM csdn.users"); /*
* 4.
* Statement的executeQuery方法的返回值为ResultSet对象。ResultSet表示数据库查询操作的结果集。
* 它具有指向其当前数据行的光标。最初,光标被置于第一行之前,调用其next 方法将光标移动到下一行,该方法在 ResultSet
* 对象没有下一行时返回 false,因此可以在 while 循环中使用它来迭代结果集。
*/
while (rs.next()) {
System.out.println(rs.getInt("ID") + ","
+ rs.getString("NAME") + ","
+ rs.getString("PWD") + ","
+ rs.getString("PHONE"));
} /*
* ResultSet提供了getXXX(String column)方法,例如:getInt(String
* column)等,获取当前ResultSet 对象的当前行中指定列名的值,其中参数column表示数据库表中的列名字。
*/
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("驱动类无法找到!");
throw new RuntimeException(e); } catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库访问异常!");
throw new RuntimeException(e);
} finally { /*
*5. 在finally块中,依次关闭ResultSet对象、Statement对象以及Connection对象。
*/
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
System.out.println("关闭连接时发生异常");
} } } }

效果如下:

JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库的更多相关文章

  1. 一、JDBC的概述 二、通过JDBC实现对数据的CRUD操作 三、封装JDBC访问数据的工具类 四、通过JDBC实现登陆和注册 五、防止SQL注入

    一.JDBC的概述###<1>概念 JDBC:java database connection ,java数据库连接技术 是java内部提供的一套操作数据库的接口(面向接口编程),实现对数 ...

  2. jdbc之工具类DBUtil的使用

    首先回顾一下jdbc的使用方法: 1. 注册驱动 2. 建立连接 3. 建立statement 4. 定义sql语句 5. 执行sql语句,如果执行的是查询需遍历结果集 6. 关闭连接 其中建立连接和 ...

  3. JDBC深度封装的工具类 (具有高度可重用性)

    首先介绍一下Dbutils:    Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List. 补充一下,传统操作数据库的类指的是JDBC(java ...

  4. JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生

    一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...

  5. 线程池-连接池-JDBC实例-JDBC连接池技术

    线程池和连接池   线程池的原理:     来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客 ...

  6. MySQL JDBC常用知识,封装工具类,时区问题配置,SQL注入问题

    JDBC JDBC介绍 Sun公司为了简化开发人员的(对数据库的统一)操作,提供了(Java操作数据库的)规范,俗称JDBC,这些规范的由具体由具体的厂商去做 对于开发人员来说,我们只需要掌握JDBC ...

  7. java基础之JDBC三:简单工具类的提取及应用

    简单工具类: public class JDBCSimpleUtils { /** * 私有构造方法 */ private JDBCSimpleUtils() { } /** * 驱动 */ publ ...

  8. 一、工具类DBUtil——数据库连接

    这个工具类完成的工作如下: 1.第一个static方法,完成数据库初始化的工作 2.第二个static方法,完成与数据库建立连接的工作. package util; import java.sql.C ...

  9. Jdbc工具类(连接及释放)

    package cn.gdpe.jdbc; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFound ...

随机推荐

  1. VS 2010快捷键

    1 注释选中的部分  Ctrl+K,C 2 取消注释的部分  Ctrl+K,U 3 设置断点            F9            取消此行的断点就再按一次F9 4 取消全部断点      ...

  2. IOS在一个程序中启动另一个程序

    尽管iPhone不允许同时运行两个应用程序,我们可以从自己的应用程序中启动另一个应用程序,并且可以在应用程序之间共享数据.我们可以使用UIApplication类的openURL:方法从一个应用程序来 ...

  3. Android Activity的四种LaunchMode!!!

    本文转自: http://marshal.easymorse.com/archives/2950. 写的非常好,分享给大家!!! 在多Activity开发中,有可能是自己应用之间的Activity跳转 ...

  4. 解决sqoop 导入oracle表时 --split-by参数为日期类型时的报错:ORA-01861: literal does not match format string

    报错栈: -- ::, INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Executing query: select " ...

  5. coco游戏android.mk

    LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := game_shared LOCAL_MODULE_FILENAME ...

  6. 如何判断某版本的.NET Framework是否安装

    1..NET Framework .NET Framework2.0    键:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\N ...

  7. Informatica 常用组件Source Qualifier之八 会话前和会话后 SQL

      可以在源限定符转换的"属性"选项卡中添加会话前和会话后 SQL 命令.您可能要使用会话前 SQL 以在会话开始时将时间标识行写入源表. PowerCenter 在读取源之前对源 ...

  8. Java实现对Mysql的图片存取操作

    1.MySQL中的BLOB类型 Mysql中可以存储大文件数据,一般使用的BLOB对象.如图片,视频等等. BLOB是一个二进制大对象,可以容纳可变数量的数据.因为是二进制对象,所以与编码方式无关.有 ...

  9. SCSI contrller的几种类型的区别

    在VMware vSphere Web Client中, 可以为虚拟机添加一个新的SCSI controller, 选项中包含如下的类型, 那么他们有什么区别呢? 如何选择呢?   BusLogic ...

  10. 关于opacity的思考

    今天在封装图片轮播的插件的时候,产生了这个opacity的小小思考. 我这个轮播的思路不是以前baidu输入法官网的设置外层容器overflow为hidden,position为relative用se ...