JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库
利用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连接到数据库,让我们不再恐惧操作数据库的更多相关文章
- 一、JDBC的概述 二、通过JDBC实现对数据的CRUD操作 三、封装JDBC访问数据的工具类 四、通过JDBC实现登陆和注册 五、防止SQL注入
一.JDBC的概述###<1>概念 JDBC:java database connection ,java数据库连接技术 是java内部提供的一套操作数据库的接口(面向接口编程),实现对数 ...
- jdbc之工具类DBUtil的使用
首先回顾一下jdbc的使用方法: 1. 注册驱动 2. 建立连接 3. 建立statement 4. 定义sql语句 5. 执行sql语句,如果执行的是查询需遍历结果集 6. 关闭连接 其中建立连接和 ...
- JDBC深度封装的工具类 (具有高度可重用性)
首先介绍一下Dbutils: Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List. 补充一下,传统操作数据库的类指的是JDBC(java ...
- JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生
一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...
- 线程池-连接池-JDBC实例-JDBC连接池技术
线程池和连接池 线程池的原理: 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客 ...
- MySQL JDBC常用知识,封装工具类,时区问题配置,SQL注入问题
JDBC JDBC介绍 Sun公司为了简化开发人员的(对数据库的统一)操作,提供了(Java操作数据库的)规范,俗称JDBC,这些规范的由具体由具体的厂商去做 对于开发人员来说,我们只需要掌握JDBC ...
- java基础之JDBC三:简单工具类的提取及应用
简单工具类: public class JDBCSimpleUtils { /** * 私有构造方法 */ private JDBCSimpleUtils() { } /** * 驱动 */ publ ...
- 一、工具类DBUtil——数据库连接
这个工具类完成的工作如下: 1.第一个static方法,完成数据库初始化的工作 2.第二个static方法,完成与数据库建立连接的工作. package util; import java.sql.C ...
- Jdbc工具类(连接及释放)
package cn.gdpe.jdbc; import java.io.File;import java.io.FileInputStream;import java.io.FileNotFound ...
随机推荐
- TCP半连接和syn攻击(转)
TCP半连接和syn攻击 转载 2014年04月06日 21:36:10 4243 摘自:http://blog.sina.com.cn/s/blog_54b5ea250100g2r8.html SY ...
- 学习 KJFrameForAndroid
简介 KJFrameForAndroid 又叫KJLibrary,是一个android的orm 和 ioc 框架.同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用:KJF ...
- Unity3.x游戏开发经典教程 书例 100%完毕~
大家都公布自己的作品,作为一个新人,我也发点什么.刚刚做完了Unity3.x游戏开发经典教程书例不久,假如有同学想学这本书入门U3D,我的作品也能让新人參考一下...脚本都是C#写的.以下附上链接~ ...
- 很酷的C语言技巧
C语言常常让人觉得它所能表达的东西非常有限.它不具有类似第一级函数和模式匹配这样的高级功能.但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了. 指定的初始化 很多人都知道 ...
- C#读写txt文件的两种方法介绍[转]
C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...
- Handler Thread 内部类引起内存泄露分析
非静态内部类引起内存泄漏的原因 内部类的实现其实是通过编译器的语法糖(Syntactic sugar)实现的,通过生成相应的子类即以OutClassName$InteriorClassName命名的C ...
- 不要再使用JS框架了
停止编写Javascript框架吧. Javascript框架就好像死亡和税收一样:终究不可避免它的存在.我确信如果我是那面墙上的一只苍蝇,每次有人开始一个新的网页项目时,第一个问题肯定是我们用的是哪 ...
- 通过小实例谈谈javascript的间隔调用和延时调用
用 setInterval方法可以以指定的间隔实现循环调用函数,直到clearInterval方法取消循环 用clearInterval方法取消循环时,必须将setInterval方法的调用赋值给一个 ...
- 页面的缓存设置与meta的作用详细解释
网上转的,来自JSP的,但是原理大同小异哦,有时间 写个asp.net版的 HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息,包括浏览器端,中间缓存服务器端(如:squid等),Web服务 ...
- ExcelReader(解析Excel的工具类)
package cn.com.css.common.util; import java.io.IOException; import java.io.InputStream; import java. ...