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. 1.git上手篇总结

    阅读 Git 原理详解及实用指南 记录 上手 1: Git 的最基本的工作模型 从 GitHub 把中央仓库 clone 到本地(使用命令: git clone) 把写完的代码提交(先用 git ad ...

  2. BZOJ 1051 HAOI 2006 受欢迎的牛

    [题解] 先用tarjan缩点,然后如果某个强联通分量的出度为0,则该强联通分量内的点数为答案,否则无解.因为若其他所有的强联通分量都有边连向Ai,则Ai必定没有出边,否则Ai连向的点所属的强联通分量 ...

  3. 第2章 Python序列

    Python序列类似于C或Basic中的一维.多维数组等,但功能要强大很多,使用也更加灵活.方便,Head First Python一书就戏称列表是“打了激素”的数组. Python中常用的序列结构有 ...

  4. Ubuntu | Flask + Gunicorn + Nginx 部署服务器环境

    现在我们手里有一个准备发布的项目,那么如何将他上传到你的服务器,并让外网访问呢? 前提: 1. 安装了Python环境 apt-get install python-dev 2. 安装Flask pi ...

  5. hdu 3657最大点权独立集变形(方格取数变形)

    /* 分奇偶为二部图,s与奇建图,t与偶建图,权值为当前数的值,如果遇到必取的权值置为inf. 奇偶建边为相邻的权值为2*(x&y):所有数的值-最小点全覆盖. 置为inf意为不能割掉.奇偶边 ...

  6. nyoj_283_对称排序_201312051155

    对称排序 时间限制:1000 ms  |           内存限制:65535 KB 难度:1   描述 In your job at Albatross Circus Management (y ...

  7. nyoj_218_Dinner_201312021434

    Dinner 时间限制:100 ms  |           内存限制:65535 KB 难度:1   描述 Little A is one member of ACM team. He had j ...

  8. POJ——T 1160 Post Office

    http://poj.org/problem?id=1160 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20218   ...

  9. Spring MVC-集成(Integration)-集成LOG4J示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_log4j.htm 说明:示例基于Spring MVC 4.1.6. 以下示例说明 ...

  10. [RxJS 6] The Retry RxJs Error Handling Strategy

    When we want to handle error observable in RxJS v6+, we can use 'retryWhen' and 'delayWhen': const c ...