JDBC连接数据库_通过调用一个连接管理方法去创建连接
2018-03-01 00:01
661 查看
综合DDL,DML,DQL的连接数据库的语句,我们要从中抽象出共同的方法来创建一个连接管理方法。该方法仅仅适用于单线程的情况下使用!创建一个工具类(Dbutils.java):
package cn.tedu.jdbc.day01;import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;public class DbUtils {
//改成静态变量,在方法区中只存储一份变量,是所有对象
//共有的。
//目前还有一个问题,就是数据库的数据不能写死,需要弄一个配置文件
static String driver;
static String url;
static String username;
static String password;
//读取文件中的数据库连接参数(消除软件中的硬编码)
//把四个参数写到文件中去(一般我们习惯把配置文件放到resource中去
//创建db.properties,java中用的扩展名,尾部不能有空格分号。)
//一句话将db.properties读成map,
//读取文件中的数据库连接参数
static {
try {
//初始化静态属性
//1.利用Properties读取配置文件
Properties cfg = new Properties();
//2.从配置文件中查找相应参数值
InputStream in = DbUtils.class.
getClassLoader().getResourceAsStream("db.properties");
cfg.load(in);
System.out.println(cfg);
//初始化连接参数
driver = cfg.getProperty("jdbc.driver");
url = cfg.getProperty("jdbc.url");
username = cfg.getProperty("jdbc.username");
password = cfg.getProperty("jdbc.password");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
//DbUtils.java
/*
* 严格的关闭数据库的方法
* 关闭数据库的连接方法,封装复杂的关闭过程
*/
public static void close(Connection conn) {
if(conn!=null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 封装创建数据库连接的过程
* 简化数据库连接
* @return
* @throws
*
* 写成当前这个样子是有点缺点的
*/
public static Connection getConnection(){
/* //调一次方法创建4个变量,很浪费
String driver = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String user = "zqk";
String password = "zqk123";*/
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,username,password);
return conn;
}catch(Exception e) {
e.printStackTrace();
//数据库连接不上得到一个异常,对调用者负责
throw new RuntimeException(e);
}
}
}
——————————————————————————————————————————————————————————————
resource下面创建一个db.properties文件#db.propertiesjdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc.username=zqk
jdbc.password=zqk123# paramter for BasicDataSource
initSize=2
maxActive=2————————————————————————————————————————————————————此时,通过调用连接管理方法来创建一个数据库的连接,来执行DQL语句package cn.tedu.jdbc.day01;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class Demo04 {
public static void main(String[] args) throws Exception {
//调用连接管理方法创建连接
Connection conn = DbUtils.getConnection();
Statement st = conn.createStatement();
String sql = "select * from robin_demo_zqk";
ResultSet rt = st.executeQuery(sql);
while(rt.next()) {
int id = rt.getInt("id");
String name = rt.getString("name");
System.out.println(id+":"+name);
}
conn.close();
}
}
package cn.tedu.jdbc.day01;import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;public class DbUtils {
//改成静态变量,在方法区中只存储一份变量,是所有对象
//共有的。
//目前还有一个问题,就是数据库的数据不能写死,需要弄一个配置文件
static String driver;
static String url;
static String username;
static String password;
//读取文件中的数据库连接参数(消除软件中的硬编码)
//把四个参数写到文件中去(一般我们习惯把配置文件放到resource中去
//创建db.properties,java中用的扩展名,尾部不能有空格分号。)
//一句话将db.properties读成map,
//读取文件中的数据库连接参数
static {
try {
//初始化静态属性
//1.利用Properties读取配置文件
Properties cfg = new Properties();
//2.从配置文件中查找相应参数值
InputStream in = DbUtils.class.
getClassLoader().getResourceAsStream("db.properties");
cfg.load(in);
System.out.println(cfg);
//初始化连接参数
driver = cfg.getProperty("jdbc.driver");
url = cfg.getProperty("jdbc.url");
username = cfg.getProperty("jdbc.username");
password = cfg.getProperty("jdbc.password");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
//DbUtils.java
/*
* 严格的关闭数据库的方法
* 关闭数据库的连接方法,封装复杂的关闭过程
*/
public static void close(Connection conn) {
if(conn!=null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 封装创建数据库连接的过程
* 简化数据库连接
* @return
* @throws
*
* 写成当前这个样子是有点缺点的
*/
public static Connection getConnection(){
/* //调一次方法创建4个变量,很浪费
String driver = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String user = "zqk";
String password = "zqk123";*/
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,username,password);
return conn;
}catch(Exception e) {
e.printStackTrace();
//数据库连接不上得到一个异常,对调用者负责
throw new RuntimeException(e);
}
}
}
——————————————————————————————————————————————————————————————
resource下面创建一个db.properties文件#db.propertiesjdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc.username=zqk
jdbc.password=zqk123# paramter for BasicDataSource
initSize=2
maxActive=2————————————————————————————————————————————————————此时,通过调用连接管理方法来创建一个数据库的连接,来执行DQL语句package cn.tedu.jdbc.day01;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class Demo04 {
public static void main(String[] args) throws Exception {
//调用连接管理方法创建连接
Connection conn = DbUtils.getConnection();
Statement st = conn.createStatement();
String sql = "select * from robin_demo_zqk";
ResultSet rt = st.executeQuery(sql);
while(rt.next()) {
int id = rt.getInt("id");
String name = rt.getString("name");
System.out.println(id+":"+name);
}
conn.close();
}
}
相关文章推荐
- Java工程通过JDBC连接数据库方法(SQL Server)
- 通过Jdbc执行sql在数据库中创建一个视图
- jdbc连接数据库,并查询,调用存储方法
- mini学生管理系统。。。全部代码,4个java文件放在同一个包下面即可。用JDBC调用数据库取出数据。
- java 和 JavaScript都可以在创建一个对象时,就可以通过这个对象调用相应方法
- Java中通过方法创建一个http连接并请求(服务器间进行通信)
- 关于“如何做到在一个类内不通过创建另一个类的对象,却调用另一个类的方法”的问题
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- Java_jdbc 基础笔记之八 数据库连接(写一个查询Student对象的方法)
- 代码调用DruidDataSource来管理conn连接,同时声明了ThreadLocal对象来保存每次线程请求所获取的连接,这样可以避免每个new一个JDBC
- Java 通过JDBC连接orcal数据库的方法和实例
- 通过jdbc创建连接池连接数据库
- ASP.NET通过配置Web.config文件提高手动绑定数据库效率的一个简单方法,不用每次手动连接数据库地址,或者数据库地址变更时只改一处即可。
- BaseDao加强版,可连接sqlserver和mysql,使用时直接在main类调用即可,需在src目录下创建一个properties后缀的文件夹,用来存放数据库名称和地址,具体如下
- servlet层调用biz业务层出现浏览器 500错误,解决方法 dao数据访问层 数据库Util工具类都可能出错 通过新建一个测试类复制代码逐步测试查找出最终出错原因
- 如何用C#创建一个类并在其他Web页中调用该类的方法(1)
- 一个JDBC连接数据库的例子
- JDBC连接各种数据库方法-JSP教程,数据库相关
- JDBC连接各种数据库方法
- JSP初级系列--Eclipse3.21+SQl 2005 JDBC数据库连接配置方法