1.首先说一下需要用到的工具:

  ①我这里用的数据库是MySql5.6 ,MySql6.0开始被Oracle收购需要付费了,6.0以下版本免费。

  ②去Maven仓库下载JDBC的jar包 Maven仓库地址:http://mvnrepository.com/  我使用的版本是5.0.5

  ③将jar包放到项目下的lib目录下

2.接下来给大家上一段简单的使用代码

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.mysql.jdbc.Driver; /**
* 普通的jdbc操作
*
* @author AdminHeJun
*
*/
public class JdbcNomal {
private static PreparedStatement prepareStatement;
private static ResultSet result; public static void main(String[] args) throws Exception {
// 得到数据库连接
Connection connection = getConnection();
// 需要执行的sql
String sql = "select *from info";
prepareStatement = connection.prepareStatement(sql);
result = prepareStatement.executeQuery(); while (result.next()) {
String id = result.getString();
String name = result.getString();
String age = result.getString();
System.out.println("id=" + id + "---name=" + name + "----age="
+ age);
}
// 关闭结果集
result.close();
// 操作完关闭连接
connection.close();
} private static Connection getConnection() {
// 得到数据库连接
Connection connection;
try {
// 注册jdbc驱动
DriverManager.registerDriver(new Driver());
// 参数1:数据库地址 惨数2:数据库用户名 参数3:密码
connection = DriverManager
.getConnection("jdbc:mysql://127.0.0.1:3306/testdb",
"root", "hejun254331");
System.out.println("数据库链接成功!");
return connection;
} catch (SQLException e) {
e.printStackTrace();
return null;
} }
}

3.给大家分享一下我在实际开发中对JDBC操作拿到数据库连接的方法

 import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; import java.sql.PreparedStatement;
/**
* @author AdminHeJun 为了开发的方便起见 我把数据库的连接信息放在了DBConfig.properties配置文件中方便管理
* 此配置文件存储数据的方式与Map的键值对是一样的通过键取相应的值
* 此类中调用了getConnection方法就必须要调用releaseConnection方法释放资源
*/
public class JdbcUtils {
// 数据库用户
private static String user;
// 数据库密码
private static String password;
// 数据库连接地址
private static String conUrl;
// 数据库连接驱动完整包名
private static String driverName;
// 此工具类的实例
private static JdbcUtils instance; // 获取配置信息的静态代码块
static {
try {
// 得到配置文件的输入流 JdbcUtils.class.getResourceAsStream此方法是获取当前类包名下的文件输入流
InputStream inputStream = JdbcUtils.class
.getResourceAsStream("DBConfig.properties");
// 创建一个操作配置文件的对象 见名知意 不多做解释了
Properties properties = new Properties();
// 加载配置文件的输入流
properties.load(inputStream);
// 开始获取配置文件里的信息
user = (String) properties.get("user");
password = (String) properties.get("password");
conUrl = (String) properties.get("connUrl");
driverName = (String) properties.get("driverName");
System.out.println("获取配置信息成功!");
System.out.println("user=" + user + "\npassword=" + password
+ "\nconUrl=" + conUrl + "\ndriverName=" + driverName);
} catch (Exception e) {
System.out.println("获取配置信息出错!");
}
}
// 注册数据库驱动的静态代码块
static {
try {
Class.forName(driverName);
System.out.println("驱动注成功!");
} catch (Exception e) {
System.out.println("驱动注册失败!");
}
} // 私有的构造方法防止外界直接new对象 这里是通过 getInstance方法来获取此类的实例
private JdbcUtils() { } // 获取此类的实例 这种设计方法也就是常说的java单列设计模式
public static JdbcUtils getInstance() {
if (instance == null) {
// 防止多线程同时操作
synchronized (JdbcUtils.class) {
instance = new JdbcUtils();
}
}
return instance;
} // 得到数据库连接对象
public Connection getConnection() {
try {
Connection connection = DriverManager.getConnection(conUrl, user,
password);
System.out.println("数据库连接成功!");
return connection;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
}
return null;
} // 释放连接资源
public void releaseConnection(Connection connection,
PreparedStatement pStatement, ResultSet rSet) {
try {
// 关闭结果集
if (rSet != null) {
rSet.close();
}
// 关闭sql语句执行对象
if (pStatement != null) {
pStatement.close();
}
// 关闭数据库连接
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭资源出错!");
}
}
}

调用演示

 public static void main(String[] args) throws Exception {
// 得到连接
Connection connection = JdbcUtils.getInstance().getConnection();
String sql = "select *from info";
PreparedStatement prepareStatement = connection.prepareStatement(sql);
ResultSet resultSet = prepareStatement.executeQuery();
while (resultSet.next()) {
String id = resultSet.getString();
String name = resultSet.getString();
String age = resultSet.getString();
System.out.println("id=" + id + "---name=" + name + "----age="
+ age);
}
// 释放资源
JdbcUtils.getInstance().releaseConnection(connection, prepareStatement,
resultSet); }

打印结果:

DBConfig.properties文件截图

JDBC的详细使用的更多相关文章

  1. Spring JDBC常用方法详细示例

    Spring JDBC使用简单,代码简洁明了,非常适合快速开发的小型项目.下面对开发中常用的增删改查等方法逐一示例说明使用方法 1 环境准备 启动MySQL, 创建一个名为test的数据库 创建Mav ...

  2. Java学习笔记--JDBC数据库的使用

    参考  hu_shengyang的专栏 : http://blog.csdn.net/hu_shengyang/article/details/6290029 一. JDBC API中提供的常用数据库 ...

  3. spring+struts2+mybatis

    struts2.2.3 + spring3.1.0 + mybatis3.1.0集成简单demo 项目下载地址:http://download.csdn.net/detail/afgasdg/4171 ...

  4. JTA事务管理--配置剖析

    概述    [IT168 专稿]Spring 通过AOP技术可以让我们在脱离EJB的情况下享受声明式事务的丰盛大餐,脱离Java EE应用服务器使用声明式事务的道路已经畅通无阻.但是很大部分人都还认为 ...

  5. python自动化测试入门篇-jemter连接mysql数据库

    jmeter对数据库的操作主要包括以下几个步骤:1.导入mysqlde jdbc的jar包:2.创建数据库连接配置:3.线程组添加jdbc request;4.启动按钮,添加查看结果树 一.准备好驱动 ...

  6. Impala 使用的端口

    下表中列出了 Impala 是用的 TCP 端口.在部署 Impala 之前,请确保每个系统上这些端口都是打开的. 组件 服务 端口 访问需求 备注 Impala Daemon Impala 守护进程 ...

  7. (转载)Android常用的Dialog对话框用法

    Android常用的Dialog对话框用法 Android的版本有很多通常开发的时候对话框大多数使用自定义或是 Google提供的V4, V7 兼容包来开发保持各个版本的对话框样式统一,所以这里使用的 ...

  8. SpringBoot整合MyBatis与MySql8.0

    一.前言 之前已经有一篇文章讨论过SpringBoot整合MyBatis,因而此篇不在重复累赘,本文主要是最新版的SpringBoot2.0与MyBatis.最新MySQL8.0整合过程中遇到的问题进 ...

  9. 《精通Spring4.x企业应用开发实战》第二章

    昨天联系了一下学长,学长说这个项目因为种种原因代码比较混乱,感觉最坏的打算是从头开始写. 大概询问了一下学长和xianhua学姐的建议,又看了看网上的资料,这个项目开发的技术栈基本就是SpringBo ...

随机推荐

  1. Django——4 模板标签 模板的继承与引用

    Django 模板标签 常用标签 模板的继承与引用 模板标签 标签在渲染的过程中提供任意的逻辑 标签语法: 由%}和 {% 来定义的,例如:{%tag%} {%endtag%} 这个定义是刻意模糊的. ...

  2. 洛谷 P2155 BZOJ 2186 codevs 2301 [SDOI2008]沙拉公主的困惑

    题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...

  3. 清北学堂模拟赛d4t1 a

    分析:大模拟,没什么好说的.我在考场上犯了一个超级低级的错误:while (scanf("%s",s + 1)),导致了死循环,血的教训啊,以后要记住了. /* 1.没有发生改变, ...

  4. 单词接龙(codevs 1018)

    2000年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 单词接龙是一个与我们经 ...

  5. POJ 1416 Shredding Company 回溯搜索 DFS

    Shredding Company Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6173   Accepted: 3361 ...

  6. [poj3321]Apple Tree_dfs序_树状数组

    Apple Tree poj-3321 题目大意:给你一个根固定的树,每一个点的点权是0或1,查询子树点权和. 注释:$1\le n \le 10^5$. 想法:刚刚学习dfs序,刷到水题偶哈哈. 什 ...

  7. 任务调度分配题两道 POJ 1973 POJ 1180(斜率优化复习)

    POJ 1973 这道题以前做过的.今儿重做一次.由于每个程序员要么做A,要么做B,可以联想到0/1背包(谢谢N巨).这样,可以设状态 dp[i][j]为i个程序员做j个A项目同时,最多可做多少个B项 ...

  8. 可编辑ztree节点的增删改功能图标控制---已解决

    每文一语:休倚时来势,提防运去时 <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - beforeEd ...

  9. linux各种IPC机制(进程通信)

    linux各种IPC机制 (2011-07-08 16:58:35)      原文地址:linux各种IPC机制(转)作者:jianpengliu 原帖发表在IBM的developerworks网站 ...

  10. 欢聚时代校园招聘java开发一面经历

    收到yy短信通知笔试通过后隔天就一面了,面试时间是下午1点半,跟另外一个同学在1点半的时候已经到了目的酒店,发现面试都集中在一个大厅,摆了非常多桌椅,由不同的面试关在面试.等到2点多的时候才到我.先说 ...