oracle JDBC连接数据库
来源:互联网 发布:办公平台软件 编辑:程序博客网 时间:2024/05/19 22:47
一:JDBC是什么
JDBC全称:java database connectivity ,是sun公司提供的Java连接数据库的标准规范。
二:怎么连接数据库
连接数据库有5步:
1.加载驱动
2.得到与数据库的连接
3.创建执行sql语句的对象
4.执行sql语句
5.处理得到的结果集(只有查询语句才有)
6.关闭资源
1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
2.得到与数据库的连接
在加载好驱动后,DriverManager的getConnection方法就可以获得与数据库的连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","scott","123456");
第一个参数:jdbc与数据库连接的协议,第一个统一都是jdbc,第二个数据库的名字,第三个oracle数据库有,mysql数据库没有,第四个是ip地址,端口号,数据库标志
第二个参数:用户名
第三个参数;密码
数据库的连接有三种方式:上面是第一种方式,
第二种方式,此方式使用properties类,该类可以存储配置文件。
使用getConnection(String url,Properties info)
方法得到connection对象
public static Connection getConnection() throws ClassNotFoundException,SQLException{Properties info=new Properties();Class.forName("oracle.jdbc.driver.OracleDriver");info.setProperty("user", "scott");info.setProperty("password", "123456");Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL",info);return conn;}
第三种方式;
使用getConnection(String url)
试图建立到给定数据库 URL 的连接。
这种url的格式是: jdbc:oracle:<drivertype>:<user>/<password>@<database>
public static Connection getConnection() throws ClassNotFoundException,SQLException{Properties info=new Properties();Class.forName("oracle.jdbc.driver.OracleDriver");Connection conn = DriverManager.getConnection("jdbc:oracle:thin:scott/123456@localhost:1521:ORCL");return conn;}
3.得到执行sql语句的对象
执行sql语句的对象是statement
Statement stmt=conn.createStatement();
4.执行sql语句
stmt.execute("select ename,job from emp where empno=7839");
5.得到结果集并处理结果(对于查询语句而言
我们得到的结果集,里面相当于一个指针的东西,初始是指向第一行的前列
ResultSet rs=stmt.getResultSet();while(rs.next()){System.out.println(rs.getObject("ename"));System.out.println(rs.getObject("job"));}
6.关闭资源
rs.close();stmt.close();conn.close();
整体代码如下:
package testjdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class TestJdbc {public static void main(String[] args) throws SQLException,ClassNotFoundException {// TODO Auto-generated method stub// 1.注册驱动Class.forName("oracle.jdbc.driver.OracleDriver");// 2.获取与数据库的连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "123456");// 3.创建可操作的数据库对象Statement stmt = conn.createStatement();// 4.操作sql语句stmt.execute("select ename,job from emp where empno=7839");// 5.得到结果集ResultSet rs = stmt.getResultSet();while (rs.next()) {System.out.println(rs.getObject("ename"));System.out.println(rs.getObject("job"));}// 6.关闭资源rs.close();stmt.close();conn.close();}}
三:优化代码
1.基本优化
Statement中有executeQuery方法,在执行查询语句的时候可以直接使用这个方法,就直接返回结果集。
ResultSet rs = stmt.executeQuery("select ename,job from emp where empno=7839");
对于DMl语句,可以直接使用statement中的executeupdate方法
int b= stmt2.executeUpdate("insert into emp(empno,ename) values(1104,'是')"); System.out.println(b);返回值表示它影响的行数
2.深度优化
我们之前执行的查询和更改语句都是sql语句国定的,如果再次准备执行sql语句,就得重新写,很麻烦,有没什么简单的方法了,我们可以多次执行,只写一次。
PreparedStatement
实现了statement接口,它可以是sql语句预编译在PreparedStatement中,可以根据我们的需要更改其sql语句的条件等。
PreparedStatement stmt = conn.prepareStatement("select ename,job from emp where empno=?");//问号表示一个占位符,相当于参数,问号是什么类型,相对应的stmt的set方法就使用什么类型,set方法的第一个参数表第几个占位符stmt.setInt(1, 7839);//执行该语句stmt.execute();所有代码:
package testjdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class TestJdbc {public static void main(String[] args) throws SQLException,ClassNotFoundException {// TODO Auto-generated method stub// 1.注册驱动Class.forName("oracle.jdbc.driver.OracleDriver");// 2.获取与数据库的连接Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "123456");// 3.创建可操作的数据库对象PreparedStatement stmt = conn.prepareStatement("select ename,job from emp where empno=?");// 问号表示一个占位符,相当于参数,问号是什么类型,相对应的stmt的set方法就使用什么类型,set方法的第一个参数表第几个占位符stmt.setInt(1, 7839);// 执行该语句stmt.execute();// 得到结果集ResultSet rs = stmt.getResultSet();while (rs.next()) {System.out.println(rs.getObject("ename"));System.out.println(rs.getObject("job"));}// 6.关闭资源rs.close();stmt.close();conn.close();}}
- jdbc连接oracle数据库
- oracle数据库jdbc连接
- Jdbc连接Oracle数据库
- JDBC连接Oracle数据库
- JDBC 连接 Oracle数据库
- JDBC连接Oracle数据库
- JDBC连接Oracle数据库
- Oracle JDBC连接数据库
- JDBC连接oracle数据库
- Oracle数据库JDBC连接
- JDBC连接Oracle数据库
- JDBC连接Oracle数据库
- JDBC连接Oracle数据库
- JDBC连接Oracle数据库
- JDBC连接oracle数据库
- JDBC连接ORACLE数据库
- ORACLE数据库JDBC连接
- Oracle数据库JDBC连接
- 中断
- Linux硬件信息命令大全
- 从深度学习选择什么样的gpu来谈谈gpu的硬件架构
- http协议详解
- golang 中sync.WaitGroup以及select简单实用
- oracle JDBC连接数据库
- java抽象类和接口的区别(自己总结,方便记忆版)
- VIJOS 1321 魔塔
- MarkDown Usage
- Redis学习笔记(5)-SpringDataRedis的使用
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- jar包学习
- 常用vim快捷键 (未包括折叠
- cocos2dx-深度解析plist文件(一)(游戏对象的数据如何从plist创建获取)