<一>获取数据库连接
一、JDBC_通过Driver接口获取数据库连接
1、 Driver是一个接口:数据库厂商必须提供实现的接口,可以从其中 获取数据库连接。
2、JDBC URL由三部分组成,各部分用冒号隔开,格式:jdbc:<子协议>:<子名称>
协议:JDBC URL中的协议总是jdbc jdbc
子协议:子协议用于标识一个数据库驱动程序 mysql
子 名称:一种标识数据库的方法,子名称可以依不同的子协议而变化,用自名称的目的是为了定位数据库,提供足够的信息。 localhost:3306/test
3、Properties类
JAVA的包中,有提供专门的操作属性文件的类,java.uitl.Properties类,该类是一个集合类,所以,Properties会将属性以集合的方式读写;
该类的详细介绍参考: http://blog.csdn.net/qinpeng100423/article/details/9125857
4、代码实现
@Test
public void test() throws SQLException {
Driver driver=new Driver();
String url="jdbc:mysql://192.168.56.1:3306/test";
Properties info=new Properties();
info.put("user", "root");
info.put("password", "kk");
Connection connection=driver.connect(url, info);
System.out.println(connection);
}
5、编写一个通用的方法,在不修改原程序的情况下,可以获取任何数据库的连接?
---将数据库驱动Driver实现类的全类名、url、user、password放入一个配置文件中,通过修改配置文件的方式实现和具体的数据库解耦。
实现如下:
1>准备连接数据库的4个字符串
2>获取jdbc.properties对应的输入流
3>创建Properties对象
4>加载对应的输入流
5>具体决定以上4个字符串
6>加载数据库驱动程序
7>获取数据库连接
public Connection getConnection() throws Exception{
String driverClass=null;
String jdbcUrl=null;
String user=null;
String password=null;
//读取类路径下的jdbc.properties文件
InputStream in=getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties=new Properties();
//加载输入流
properties.load(in);
driverClass=properties.getProperty("driver");
jdbcUrl=properties.getProperty("jdbcUrl");
user=properties.getProperty("user");
password=properties.getProperty("password");
//通过反射创建Driver对象
Driver driver=(Driver)Class.forName(driverClass).newInstance();
Properties info=new Properties();
info.put("user", user);
info.put("password", password);
Connection connection=driver.connect(jdbcUrl,info);
return connection;
}
jdbc.properties配置文件:
driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://192.168.56.1:3306/test
user=root
password=kk
二、通过DriverManager的getConnection()方法获取数据库连接
1、DriverManager是驱动的管理类:
1>可以通过重载的getConnection()方法获取数据库连接,较为方便
2>可以同时管理多个驱动程序:若注册了多个数据库连接,则调用getConnection()方法时传入的参数不同,即返回不同的数据库连接。
2、代码实现
1>准备连接数据库的4个字符串
2>获取jdbc.properties对应的输入流
3>创建Properties对象
4>加载对应的输入流
5>具体决定以上4个字符串
6>加载数据库驱动程序(对应的Driver实现类中有注册驱动的静态代码块)
7>获取数据库连接
@Test
public void testDriverManager() throws Exception{
//1、准备数据库连接的4个字符串
String driverClass=null; //驱动的全类名
String jdbcUrl=null; //JDBC URL
String user=null;
String password=null;
//读取类路径下的jdbc.properties文件
InputStream in=getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties=new Properties();
properties.load(in);
driverClass=properties.getProperty("driver");
jdbcUrl=properties.getProperty("jdbcUrl");
user=properties.getProperty("user");
password=properties.getProperty("password");
//加载数据库驱动程序
Class.forName(driverClass);
//通过DriverManager的getConnection()方法获取数据库连接
Connection connection=DriverManager.getConnection(jdbcUrl,user,password);
System.out.println(connection);
}
@Test
public void testDriverManager1() throws Exception{
//1、准备数据库连接的4个字符串
String driverClass="com.mysql.jdbc.Driver"; //驱动的全类名
String jdbcUrl="jdbc:mysql:///test"; //JDBC URL
String user="root";
String password="kk";
//加载数据库驱动程序
Class.forName(driverClass);
//通过DriverManager的getConnection()方法获取数据库连接
Connection connection=DriverManager.getConnection(jdbcUrl,user,password);
System.out.println("向日葵:"+connection);
}
三、数据库连接释放工具类
JDBCTools.java
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JDBCTools {
public static Connection getConnection() throws Exception {
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null;
// 读取类路径下的jdbc.properties文件
InputStream in = JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in);
driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password");
// 加载数据库驱动程序
Class.forName(driverClass);
// 通过DriverManager的getConnection()方法获取数据库连接
Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
return connection;
}
public static void release(Statement st,Connection conn){
if (st!=null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
<一>获取数据库连接的更多相关文章
- JAVA jdbc获取数据库连接
JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...
- 使用DriverManager获取数据库连接的一个小改进
由于使用DriverManager获取数据库连接时,由于DriverManager实现类中有一段静态代码块,可以直接注册驱动,且可以同时管理多个驱动程序 所以当换数据库连接时需要指定不同的数据库,那么 ...
- 使用DriverManager获取数据库连接
DriverManager 是驱动的管理类 * 1).可以通过重载的getConnection() 方法获取数据库连接,较为方便 * 2).可以同时管理多个驱动程序,若注册了多个数据库连接,则调用ge ...
- 通过Driver获取数据库连接
先看一下文件,在当前包下有一个properties配置文件,在根目录下有一个lib文件夹,里面放的是mySql的驱动jar包 Driver :是一个接口,数据库厂商必须提供实现的接口,能从其中获取数据 ...
- JDBC_获取数据库连接
<span style="font-size:24px;">package src.com.jdbc.java; import java.io.IOException; ...
- 获取数据库连接对象Connection
2018-11-04 19:50:52 开始写 public Connection getConn() {//返回类型为Connection try { Class.forName("co ...
- JDBC编程:获取数据库连接
JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本 ...
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...
- 获取数据库连接的方式 & Statement操作数据库的弊端
1.获取数据库连接的方式 TestConnection package com.aff.connection; import java.io.InputStream; import java.sql. ...
随机推荐
- Android ListView 的基本应用,包括缓存
class MyAdapter extends BaseAdapter { //返回要显示的条目的数量 @Override public int get ...
- 禁用PHP函数,可以对php.ini进行配置
php.ini 里有个 disable_functions 开关选项,此选项可关闭一些危险的函数,比如system,exec 等.比如: disable_functions = phpinfo , 如 ...
- Linux C 字符串输出函数 puts()、fputs()、printf() 详解
一.puts() 函数详解 puts()函数用来向 标准输出设备 (屏幕)写字符串并换行,调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针). puts()函数的作用与语 ...
- Go - 函数/方法 的 变参
变参 本质上就是一个切片.只能接收一个或多个同类型参数,且 必须放在参数列表的 尾部. func test(s string, a ...int) { fmt.Printf("%T, %v\ ...
- DB2表的重组
DB2在存储大数据的时候,遇到一个问题,将数据导入表中保存不了,最后是重组后才解决. 下面是从IBM官网上搜集的资料: 官网地址:http://publib.boulder.ibm.com/infoc ...
- Form 详细属性--2016年12月4日
属性 名称 说明 AcceptButton 获取或设置当用户按 Enter 键时所单击的窗体上的按钮. AccessibilityObject 获取分配给该控件的 Accessib ...
- Python3实现简单的爬虫功能
python3简单实现一个爬去网站图片的小功能: 有时候想要下载自己喜欢的多个图片时,不需要一个个点击来下载,使用python脚本批量拉取,并保存到本地. 1. 首先找到自己要下载图片的url 2. ...
- Centos7设置关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙,要想使用iptables必须重新设置一下. 1.关闭防火墙 [root@localhost ~]# systemctl stop firew ...
- Ubuntu防火墙设置
转载自:http://baisongfly.blog.163.com/blog/static/30135117200923005956159/ 1.安装 sudo apt-get install uf ...
- 在.NET Core中使用MEF
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软的可托管扩展框架也移植到.NET Core上了. 可托管扩展框架(Managed ...