JDBC总结

JDBC

1.Import java.sql.*;

2.加载驱动class.ForName();

3.获取链接Connection

conn=DrivreManager.getConnection();

4.获取PrepareStatement/Statement对象

第一种方式:ps=conn.PrepareStatementString sql

PreparedStatement ps = conn.prepareStatement("select * from emp");

ResultSet rs = ps.executeQuery();

第二种方式:ps=conn.createStatement();

ResultSet rs = ps.executeQuery(select * from emp);

5.执行语句,获取结构集ResultSet=ps.execute(String sql);


Sql 包中的

接口:ConnectionStatementPrepareStatementResultSet

类:DriverManager

Connection与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。

void

close() 
立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。

void

commit() 
使所有上一次提交/回滚后进行的更改成为持久更改,并释放此 Connection 对象当前持有的所有数据库锁。

Statement

createStatement() 
创建一个 Statement 对象来将 SQL 语句发送到数据库。

Statement

createStatement(int resultSetType, int resultSetConcurrency) 
创建一个 Statement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象。

Statement

createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) 
创建一个 Statement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象。

PreparedStatement

prepareStatement(String sql) 
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

PreparedStatement

prepareStatement(String sql, int autoGeneratedKeys) 
创建一个默认 PreparedStatement 对象,该对象能获取自动生成的键。

PreparedStatement

prepareStatement(String sql, int[] columnIndexes) 
创建一个能返回由给定数组指定的自动生成键的默认 PreparedStatement 对象。

PreparedStatement

prepareStatement(String sql, int resultSetType, int resultSetConcurrency) 
创建一个 PreparedStatement 对象,该对象将生成具有给定类型和并发性的 ResultSet 对象。

PreparedStatement

prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) 
创建一个 PreparedStatement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象。

PreparedStatement

prepareStatement(String sql, String[] columnNames) 
创建一个能返回由给定数组指定的自动生成键的默认 PreparedStatement 对象。

Statement用于执行静态 SQL 语句并返回它所生成结果的对象。 

在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它

boolean

execute(String sql) 
执行给定的 SQL 语句,该语句可能返回多个结果。

boolean

execute(String sql, int autoGeneratedKeys) 
执行给定的 SQL 语句(该语句可能返回多个结果),并通知驱动程序所有自动生成的键都应该可用于获取。

Connection

getConnection() 
获取生成此 Statement 对象的 Connection 对象。

PrepareStatementSQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句

ResultSet

executeQuery() 
在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。

boolean

execute() 
在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句

void

clearParameters() 
立即清除当前参数值。

ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

int

findColumn(String columnLabel) 
将给定的 ResultSet 列标签映射到其 ResultSet 列索引。

boolean

first() 
将光标移动到此 ResultSet 对象的第一行。

Date

getDate(String columnLabel) 
以 Java 编程语言中的 java.sql.Date 对象的形式获取此 ResultSet 对象的当前行中指定列的值。

int

getInt(String columnLabel) 
以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。

String

getString(int columnIndex) 
以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。

String

getString(String columnLabel) 
以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。

DriverManager管理一组 JDBC 驱动程序的基本服务。

static Connection

getConnection(String url) 
试图建立到给定数据库 URL 的连接。

static Connection

getConnection(String url, String user, String password) 
试图建立到给定数据库 URL 的连接。

static Connection

getConnection(String url, Properties info) 
试图建立到给定数据库 URL 的连接。

 普通方式:

public class DBUtils {

public static void main(String[] args) {

//---创建连接

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

String url="jdbc:oracle:thin:@10.25.129.168:1521:orcl"

String user="scott"

String password="tiger"

Connection conn= DriverManager.getConnection(url,user,password);

//System.out.println(conn);

//创建数据库的连接对象

//预编译对象,作用是:将sql进行预编译,送到数据库进行执行,并且能获得到返回的结果集

//PreparedStatement ps = conn.prepareStatement("select * from emp");

//查询数据库的信息;

//ResultSet rs = ps.executeQuery();

//while(rs.next()){

//System.out.println("员工编号是:"+rs.getInt("empno")+"员工姓名"+rs.getString("ename"));

//}

//向数据库中插入数据

//PreparedStatement ps = conn.prepareStatement("insert into emp(empno,ename)values(?,?)");

//ps.setInt(1, 1245);

//ps.setString(2, "doudou");

//int i = 0;

//i = ps.executeUpdate();

//if(i!=0){

//System.out.println("插入成功");

//}else{

//System.out.println("插入失败");

//}

//修改数据库中的数据

//PreparedStatement ps = conn.prepareStatement("update emp set ename=? where empno=?");

//ps.setString(1, "wahaha");

//ps.setInt(2, 1245);

//ps.executeUpdate();

//int i = 0;

//i = ps.executeUpdate();

//if(i!=0){

//System.out.println("修改成功");

//}else{

//System.out.println("修改失败");

//}

//删除数据库中的数据

//PreparedStatement ps = conn.prepareStatement("delete emp where empno=?");

//ps.setInt(1,9527);

//int i = 0;

//System.out.println(i);

//if(i!=0){

//System.out.println("删除成功");

//}else{

//System.out.println("删除失败");

//}

//conn.close();

//数据持久化

PreparedStatement ps = conn.prepareStatement("select * from emp");

List<Emp> l = new ArrayList<Emp>();

ResultSet rs = ps.executeQuery();

while(rs.next()){

Emp e = new Emp();

e.setEmpno(rs.getInt("empno"));

e.setEname(rs.getString("ename"));

l.add(e);

}

conn.close();

ps.close();

rs.close();

//PreparedStatement pss = conn.prepareStatement("select * from emp");

for(int i=0;i<l.size();i++){

Emp e = l.get(i);

System.out.println("员工编号:"+e.getEmpno()+",员工姓名:"+e.getEname());

}

catch (Exception e) {

System.out.println("驱动没有连接上");

e.printStackTrace();

}

}

}

 配置文件方式:

package com.neusoft.utils;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Properties;

public class DBUtils {

private static Properties p = new Properties();

static{

try {

p.load(DBUtils.class.getResourceAsStream("init.properties"));

catch (IOException e) {

System.out.println("配置文件没有找到");

}

}

//创建连接数据库方法

public static Connection getConnection(){

Connection conn = null;

String ip = p.getProperty("ip").trim().toLowerCase();

String port = p.getProperty("port").trim().toLowerCase();

String dbname = p.getProperty("dbname").trim().toLowerCase();

String dbtype = p.getProperty("dbtype").trim().toLowerCase();

String username = p.getProperty("username").trim().toLowerCase();

String password = p.getProperty("password").trim().toLowerCase();

if(dbtype.equals("oracle")){

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

catch (ClassNotFoundException e) {

System.out.println("驱动类没找到");

}

//获取连接

StringBuffer url = new StringBuffer();

url.append("jdbc:oracle:thin:@");

url.append(ip);

url.append(":");

url.append(port);

url.append(":");

url.append(dbname);

try {

conn = DriverManager.getConnection(url.toString(),username,password);

catch (SQLException e) {

System.out.println("数据库的连接项错误");

}

}

if(dbtype.equals("mysql")){

}

if(dbtype.equals("sqlserver")){

}

return conn;

}

//关闭数据库中的连接对象

public static void colse(Connection conn,PreparedStatement ps,ResultSet rs){

if(conn!=null){

try {

conn.close();

catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(ps!=null){

try {

ps.close();

catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(rs!=null){

try {

rs.close();

catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

猜你喜欢

转载自blog.csdn.net/briup_qiuqiu/article/details/49849459