博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库连接
阅读量:6841 次
发布时间:2019-06-26

本文共 2820 字,大约阅读时间需要 9 分钟。

连接数据库模板(Oracle、MySql)

抬头看见月光,却记不起来时的路
一、链接数据库步骤
1、加载驱动程序
Oracle代码块:

Clas.forname("oracle.jdbc.driver.OracleDriver");//加载驱动包

说明:Class.forName()为反声明

MySql代码块:

Clas.forname("com.mysql.jdbc.Driver");

2、创建指定的数据库的URL

Oracle代码块

String url = "jdbc:oracle:thin:@localhost:1521/ORCL";

MySql代码块

String url = "jdbc:mysql://localhost:3306/student"

3、建立数据库连接

代码块:

DriverManager.getConnection(url,"userId","password");

标准模板(Oracle):

package Jdbc;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class jdbc {

private Connection conn = null;//创建数据库链接
private PreparedStatement pre= null;//创建预编译语句对象,可进行批处理
ResultSet result = null;//创建结果集对象
//连接数据库的URL
private String url = "jdbc:oracle:thin:@localhost:1521/ORCL";
private String user = "userId";
private String password = "password";
/加载驱动,写在静态代码中,只加载一次/
static{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("---Oracle驱动加载成功---");
}catch(ClassNotFoundException e){
System.out.println("----Oracle驱动加载失败---");
e.printStackTrace();
}
}
/获得数据库连接/
public Connection getConn(){
try{
conn = DriverManager.getConnection(url,user,password);
System.out.println("---连接成功---");
}catch(SQLException e){
e.printStackTrace();
}
return conn;
}
/更新操作/
public boolean executeSQL(String sql){
System.out.println("执行SQL为:"+sql );
try {
conn = getConn();
pre = conn.prepareStatement(sql);
if(pre.executeUpdate(sql) > 0){
return true;
}else{
System.out.println("\n更新SQL执行结果为0!");
return false;
}
} catch (SQLException e) {
e.printStackTrace();
return false;
} finally{
release();
}
}
/查询操作/
public ArrayList<Map<String, Object>> query(String sql) {
System.out.println("执行SQL : "+sql);
ArrayList<Map<String, Object>> rsList = null;
try {
rsList = new ArrayList<Map<String, Object>>();
pre = getConn().prepareStatement(sql);
result = pre.executeQuery();//不需要写参数
//取出查询sql所有的列名
ResultSetMetaData rsmd = result.getMetaData();
while (result.next()) {
Map<String, Object> rsMap = new HashMap<String, Object>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
//获取每一列的列名
String columnName = rsmd.getColumnName(i);
//获取每一列的列值
//rs.getstring(String columnLabel) 通过列名获取列值
String columnValue = result.getString(columnName);
rsMap.put(columnName, columnValue);
}
rsList.add(rsMap); //将存储好信息的map存储到list中
}
} catch (Exception e) {
e.printStackTrace();
} finally {
release();
}
return rsList;
}
/释放资源/
public void release(){
try{
if(result != null)
result.close();
if(pre !=null)
pre.close();
if(conn != null)
conn.close();
System.out.println("数据库连接已关闭!");
}catch(Exception e){
e.printStackTrace();
}
}
}
放不下的放不下,得不到的得不到

转载于:https://www.cnblogs.com/Keven02/p/6081639.html

你可能感兴趣的文章
[Asp.net]使用flexpaper+swftools大文件分页转换实现在线预览
查看>>
遇见requestAnimationFrame
查看>>
DB2 runstats、reorgchk、reorg 命令【转载】
查看>>
到底该如何理解DevOps这个词
查看>>
PHP 时区报错
查看>>
MySQL报错解决方案:2013-Lost connection to MySQL server
查看>>
C# DES 加密 解密
查看>>
linux 与 window 对比式理解与应用
查看>>
SEO中的DIV CSS样式的命名规则
查看>>
一些随笔,我有故事,你有酒吗
查看>>
SELECT子句顺序
查看>>
Mac 终端便利工具: 管理工具-Homebrew 和提示工具oh my zsh
查看>>
《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
查看>>
SAP 应用服务负载均衡的实现
查看>>
C# 生成二维码
查看>>
php闭包研究
查看>>
ruby Encoding
查看>>
牛客练习赛7 E 珂朵莉的数列
查看>>
登录mysql出现/var/lib/mysql/mysql.sock不存在
查看>>
升级vue-cli为 cli3 并创建项目
查看>>