JDBC-Query
代码语言:javascript复制Java连接数据库,并执行查询操作具体步骤如下(需要注意的是要导入相关的包): 1、声明连接参数 2、注册驱动 3、利用驱动管理器,建立连接 4、定义sql语句 5、创建发送器(statement、prestatement) 6、执行sql语句(ResultSet) 7、处理结果集 8、关闭相关对象
package cn.bjsxt.jdbc;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc连接
* @author chy
*
*/
public class TestJdbcQuery {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、声明连接参数
String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 数据库的路径
String user ="scott";
String password="tiger";
//2、注册驱动
Class.forName("oracle.jdbc.OracleDriver");
//3、使用驱动管理器,与数据库建立连接
Connection conn=DriverManager.getConnection(url, user, password);
// System.out.println(conn);
//4、定义sql语句
String sql="select empno,ename,hiredate from emp";
//5、创建sql发送器,是由连接对象创建的
Statement statm =conn.createStatement();
//6、发送并执行SQL语句,得到结果
ResultSet rs=statm.executeQuery(sql);
//7、处理结果集
while (rs.next()) {
//取出该行的每一列,依据数据类型取值
int emp=rs.getInt(1);
String ename=rs.getString("ename");
Date hiredate=rs.getDate(3);
System.out.println(emp "t" ename "t" hiredate "t");
}
rs.close();
statm.close();
conn.close();
}
}
JDBC-Update
Java连接数据库,并执行DML操作,即数据的增删改,具体步骤如下:
- 定义连接参数
- 注册驱动
- 建立连接
- 定义sql语句
- 创建发送器
- 执行更新操作(executeUpdate(sql))
- 处理结果
- 关闭对象
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* jdbc执行DML操作
* @author chy
*
*/
public class JdbcUpdate {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1、 定义连接参数
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
//2、声明连接对象
//3、注册驱动
Class.forName("oracle.jdbc.OracleDriver");
//4、建立连接
Connection conn=DriverManager.getConnection(url, user, password);
System.out.println(conn);
//5、定义sql语句
//String sql = "insert into emp values (1234, '小伟', 'SALESMAN', 7782, sysdate, 500, 200, 20)";
//String sql = "update emp set sal=sal*2 where empno=1234";
String sql = "delete from emp where empno=1234";
//6、创建发送器
Statement stat=conn.createStatement();
System.out.println("执行发送器");
//7、执行更新操作
int rowCount=stat.executeUpdate(sql);
//7、处理结果
if (rowCount>0) {
System.out.println("操作成功");
}else {
System.out.println("操作失败");
}
System.out.println("执行操作完毕");
stat.close();
conn.close();
}
}
JDBC-Transaction
Java连接数据,并进行事务处理操作,具体步骤如下:
代码语言:javascript复制1、声明连接参数 2、定义连接对象1 3、定义sql语句2 4、注册驱动 6、建立连接 7、关闭自动提交功能 8、执行创建事务操作(createStatement(sql)) 9、处理数据、异常 10、关闭对象
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTransaction {
public static void main(String[] args) {
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
Connection conn=null;
Statement stam1=null;//有几条SQL语句,将创建几个发送器对象
Statement stam2=null;
String sql1="update t_account set money=money-1000 where id=1";
String sql2="update t_account set money=money 1000 where id=3";
try {
Class.forName("oracle.jdbc.OracleDriver");
conn =DriverManager.getConnection(url, user, password);
//关闭jdbc自动提交功能
conn.setAutoCommit(false);
stam1=conn.createStatement();
stam2=conn.createStatement();
int num=stam1.executeUpdate(sql1);
num =stam2.executeUpdate(sql2);
if (num==2) {
System.out.println("转账成功");
conn.commit();
System.out.println("提交事务");
}else {
System.out.println("转账失败");
conn.rollback();
System.out.println("事务回滚");
}
} catch (Exception e) {
System.out.println("提交失败,异常信息" e.getMessage());
if (conn!=null) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}finally {
if (conn!=null) {//重新开始自动回滚
try {
conn.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stam2!=null) {
try {
stam2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stam1!=null) {
try {
stam1.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
- 两个对象:conn和stat1、stat2,且需要进行初始化。和前两个步骤不同的原因是前两个代码块采用的是throws的方法抛出异常,而本代码采用try…catch的方法处理异常。需要将连接对象声明在该语句块外 ↩︎
- 该步骤后开始使用try…catch语句处理异常 ↩︎