JDBC常见操作总结

2020-07-24 17:24:39 浏览数 (1)

JDBC-Query

Java连接数据库,并执行查询操作具体步骤如下(需要注意的是要导入相关的包): 1、声明连接参数 2、注册驱动 3、利用驱动管理器,建立连接 4、定义sql语句 5、创建发送器(statement、prestatement) 6、执行sql语句(ResultSet) 7、处理结果集 8、关闭相关对象

代码语言:javascript复制
    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操作,即数据的增删改,具体步骤如下:

  1. 定义连接参数
  2. 注册驱动
  3. 建立连接
  4. 定义sql语句
  5. 创建发送器
  6. 执行更新操作(executeUpdate(sql))
  7. 处理结果
  8. 关闭对象
代码语言:javascript复制
    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连接数据,并进行事务处理操作,具体步骤如下:

1、声明连接参数 2、定义连接对象1 3、定义sql语句2 4、注册驱动 6、建立连接 7、关闭自动提交功能 8、执行创建事务操作(createStatement(sql)) 9、处理数据、异常 10、关闭对象

代码语言:javascript复制
    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();
    				}
    			}
    		}
    		
    	}
    }

  1. 两个对象:conn和stat1、stat2,且需要进行初始化。和前两个步骤不同的原因是前两个代码块采用的是throws的方法抛出异常,而本代码采用try…catch的方法处理异常。需要将连接对象声明在该语句块外 ↩︎
  2. 该步骤后开始使用try…catch语句处理异常 ↩︎

0 人点赞