前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JDBC常见操作总结

JDBC常见操作总结

作者头像
时间静止不是简史
发布2020-07-24 17:24:39
发布2020-07-24 17:24:39
36000
代码可运行
举报
文章被收录于专栏:Java探索之路Java探索之路
运行总次数:0
代码可运行

JDBC-Query

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

代码语言:javascript
代码运行次数:0
运行
复制
    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
代码运行次数:0
运行
复制
    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
代码运行次数:0
运行
复制
    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语句处理异常 ↩︎
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDBC-Query
  • JDBC-Update
  • JDBC-Transaction
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档