JDBC

java 连接oracle 步骤

1. 导入jdbc驱动jar(驱动包)
2. 注册jdbc驱动
-参数:"驱动程序类名"
Class.forName("驱动程序类名")
3. 获得Connection对象
需要3个参数:url,username,password
连接到数据库
4. 创建statement(语句)对象
--conn.createStatement()方法创建对象
--用于执行SQL语句
- execute(ddl)执行任何sql,常用执行ddl,dcl
-executeUpdate(dml)执行DML语句,如 insert update delete
-executeQuery(dql)执行DQL语句,如select
5.处理SQL执行结果:
-execute(ddl)如果没有异常则成功
-executeUpdate(dml)返回数字,表示跟新“行”数量,抛出异常则失败
-executeQuery(dql)返回resultset(结果集)对象,代表2维查询结果,
使用遍历while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println(id+","+name);
}处理,如果查询失败抛出异常
6. 关闭数据连接!
- conn.close();


public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.OracleDriver");
//连接到数据库

* 通过DriverManager获取数据库连接
* 注意:
* 导入的包都在java.sql.*
*
* DriverManager连接ORACLE时的路径格式
* jdbc:oracle:thin:@<host>:<port>:<sid>
*
* Mysql的路径 端口号通常是:3306
* jdbc:mysql://<host>:<port>/<dbname>
*/
String url="jdbc:oracle:thin:@192.168.1.10:1521:xe";
String user="system";
String password="123";
//System.out.println("OK");
//连接到数据库,如果不成功出现异常
Connection conn=DriverManager.getConnection(url, user, password);
//输出conn引用对象的实际类型
//证明:驱动程序提供了connection接口的实现类
System.out.println(conn.getClass());
//创建 "语句"对象
Statement st=conn.createStatement();
//执行SQL语句
String ddl="create table dahua_demo"
+"(id number(5),"
+"name varchar2(100))";
boolean b=st.execute(ddl);
//返回结果: true 表示有结果集
// false 表示没有结果集
// 创建失败抛出异常
System.out.println(b);
Statement st=conn.createStatement();
String dql="select * from dahua_demo ";
String dml="insert into dahua_demo(id,name) values(1,'dahua') ";
st.executeUpdate(dml);
ResultSet rs=st.executeQuery(dql);

while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println(id+","+name);
}
conn.close();


}

//Properties就是为了读取.properties文件设计的API
其底层就是文本文件IO;Properties本身实现了Map接口
内部是散列表,限定了key和value都是String类型

方法:load(流)将文件就读取为散列表, String getPropertykey()查询value

Properties cfg=new Properties();

//利用load方法读取文件
InputStream in=Demo5.class.getClassLoader().
getResourceAsStream("db.properties");
cfg.load(in);
System.out.println(cfg);
System.out.println(cfg.size());
封装连接方法
public class DbUtils {

//静态变量一份就够了
static String driver;
static String url;
static String user;
static String password;
//读取文件中的数据库连接参数
static{
//初始化静态属性
//利用properties读取配置文件
//从配置文件中查找相应参数
try {
Properties cfg=new Properties();
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");
user=cfg.getProperty("jdbc.user");
password=cfg.getProperty("jdbc.password");


} catch (IOException e) {

e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 封装创建数据库连接的过程
*
* @return
*/

public static Connection getConnection(){

try {
//注册
Class.forName(driver);
//创建连接
Connection conn=DriverManager.getConnection(url, user,password);

return conn;
} catch (Exception e) {

e.printStackTrace();
throw new RuntimeException(e);
}

}

}

public class DbUtils {

//静态变量一份就够了
static String driver;
static String url;
static String user;
static String password;
//读取文件中的数据库连接参数
static{
//初始化静态属性
//利用properties读取配置文件
//从配置文件中查找相应参数
try {
Properties cfg=new Properties();
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");
user=cfg.getProperty("jdbc.user");
password=cfg.getProperty("jdbc.password");


} catch (IOException e) {

e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 封装创建数据库连接的过程
*
* @return
*/

public static Connection getConnection(){

try {
//注册
Class.forName(driver);
//创建连接
Connection conn=DriverManager.getConnection(url, user,password);

return conn;
} catch (Exception e) {

e.printStackTrace();
throw new RuntimeException(e);
}

}
//关闭数据库连接方法 封装复杂的关闭过程
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

}
//正规格式
public class Demo6 {

public static void main(String[] args) {
Connection conn=null;
try {
conn=DbUtils.getConnection();
Statement st=conn.createStatement();
String sql="select * from dahua_demo";
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println(id+","+name);
}
} catch (Exception e) {

}finally {
DbUtils.close(conn);
}
}

}

//连接池

原文地址:https://www.cnblogs.com/Bighua123/p/7567354.html