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. 关于Spring的69个问题

    Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring ...

  2. 6.range filter进行范围过虑

    主要知识点 掌握range filter的用法     range filter就是查找一个范围内的数据,相当于sql中的betwen语法,以下是几个示例:     1.为帖子数据增加浏览量的字段   ...

  3. Problem 42

    Problem 42 https://projecteuler.net/problem=42 The nth term of the sequence of triangle numbers is g ...

  4. 小白神器 - 一篇博客学会CSS

    一. 简介 1. css定义 CSS是Cascading Style Sheets的简称,中文称为层叠样式表. 属性和属性值用冒号隔开,以分号结尾. 2. 四种引入方式 1.行内式   行内式是在标签 ...

  5. 使用JQUERY的flexselect插件来实现将SELECT下拉菜单变成自动补全输入框

    这也是下拉列表太长了之后,使用的同事提出来的意见, 然后,本来开始想将DJANGO的那个后台下拉菜单移植过来的,但发现不现实,也麻烦, 就找了几个JQUERY的插件测试了一下,最后选中了flexsel ...

  6. kendo Grid json解析的问题

    新建立了一个 页面,在grid中使用了dropdownlist,总是显示companyId is not defined ,以前这个问题解决过了,忘记记录了额,现在不知道怎么办了 下面的这个解决方法是 ...

  7. 对于Linux内核tty设备的一点理解

    http://blog.chinaunix.net/uid-7828352-id-3233064.html

  8. DotNetBar.Bar作为容器使用的方法及Text更新原理

    DotNetBar.Bar作为容器使用的方法及Text更新原理                          老帅    一.容器用法   控件DevComponents.DotNetBar.Ba ...

  9. jQuery总结04

    1 JavaScript 中的 AJAX 的四个实现步骤分别是? 2 如何处理 XMLHttpRequest 对象的兼容问题? 3 jQuery 中的 AJAX 4 jQuery 选择器包括哪些? 5 ...

  10. 【Cocos2dx】Windows平台下Cocos2dx 2.x的下载、安装、配置,打造自己的Helloworld

    Cocos2dx就不废话介绍了, 很火的游戏引擎.关键是它开源.能够免费下载.学习.开发.不用搞这么多激活的东西. 以下以Cocos2dx 2.x为例说明这个平台的一些基本东西.尽管如今Cocos2d ...