JAVA操作ORACLE数据库_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA操作ORACLE数据库

JAVA操作ORACLE数据库

 2014/10/10 6:51:12  Y_1746119035  程序员俱乐部  我要评论(0)
  • 摘要:用JAVA操作数据库,内部并没有直接可以使用的类,所以必须引入外部的jar包,首先网上下载一个jdbc的包,将其添加进所需要进行数据库操作的java工程,这样便可以用JAVA使用jdbc来操作数据库了..在上面的准备工作完成之后,便需要进行以下几步操作来实现JAVA程序与数据库的连接。1.装载驱动类:用Class类调用forName()方法,方法内的参数为OracleDriver这个jdbc包中类的相对路径.2.定义连接字符串:格式为jdbc:oracle:thin:@IP地址:1521
  • 标签:ORA Java 数据库 数据 操作 Oracle Oracle数据库

用JAVA操作数据库,内部并没有直接可以使用的类,所以必须引入外部的jar包,首先网上下载一个jdbc的包,将其添加进所需要进行数据库操作的java工程,这样便可以用JAVA使用jdbc来操作数据库了..

在上面的准备工作完成之后,便需要进行以下几步操作来实现JAVA程序与数据库的连接。

1.装载驱动类:用Class类调用forName()方法,方法内的参数为OracleDriver这个jdbc包中类的相对路径.

2.定义连接字符串:格式为jdbc:oracle:thin:@IP地址:1521:ORCL(其中1521为ORACLE的默认端口)

3.连接数据库并且获得连接对象conn:Connection conn = DriverManager.getConnection(url, 用户名, 密码);

4.获得数据库SQL语言的编译和执行对象:连接对象conn调用createStatement()方法,得到一个Statement对象stm。

5.获得结果集对象(查询操作):ResultSet rs = stm.executeQuery(sql);其中的sql参数为一个字符串,内容便是我们在数据库中进行操作常用的SQL语言,获得的结果集便是我们直接在数据库中执行这个sql语句所得到的结果集.

?

(由于要进行增删改查便牵扯到一个事物的概念,在java中如果不改默认设置的话,每执行一句SQL语句就会直接提交给数据库进行保存了,所以我们修改掉这个默认,在我们想要保存我们对数据库的操作时再进行保存,使用conn.setAutoCommit(false);来设置成不自动提交的状态...当我们想要提交的时候便使用conn.commit();来更新我们的数据库数据)

?

6.修改操作:int num = stm.executeUpdate(sql1);其中返回的int变为受到SQL语句sql1的影响改变的数据的行数。

代码:

class="java" name="code">public class DBUtil {
	
	public static void main(String[] args) {
		
		try {
			//装载驱动类
			Class.forName("oracle.jdbc.driver.OracleDriver");
			//定义连接字符串
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
			//连接数据库,获得连接对象
			Connection conn = DriverManager.getConnection(url, "scott", "scott");
			System.out.println(conn);
			//取得数据库SQL语句的编译和执行对象
			Statement stm = conn.createStatement();
			//___________________________________________________________________________
			//定义要执行的SQL语句
			String sql = "select empno,ename,sal,comm from emp";
			//执行SQL语句,获得查询到的结果集
			ResultSet rs = stm.executeQuery(sql);
			//遍历结果集
			while(rs.next()){//如果结果集中有数据,就循环取出
				int empno = rs.getInt("empno");
				String ename = rs.getString("ename");
				float sal = rs.getFloat("sal");
				float comm = rs.getFloat("comm");
				System.out.println(empno+"\t"+ename+"\t"+sal+"\t"+comm);
			}
			//___________________________________________________________________________
			
			
			//设置禁止自动提交事物
			conn.setAutoCommit(false);
			
			try{
			//定义要执行的SQL语句
			String sql1 = "update emp set sal=1200.00 where ename='SMITH'";
			//执行SQL语句,返回一个int,代表了几行数据收到了影响
			int num = stm.executeUpdate(sql1);
			System.out.println(num+"条语句受到了影响");
			//___________________________________________________________________________
			//定义要执行的SQL语句
			String sql2 = "update emp set sal=1300.00 where ename='ADAMS'";
			//执行SQL语句,返回一个int,代表了几行数据收到了影响
			int num2 = stm.executeUpdate(sql2);
			System.out.println(num+"条语句受到了影响");
			
			//提交事物
			conn.commit();
			}catch(Exception e){
				conn.rollback();
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		
	}
	
	
}

?

上一篇: c3p0 连接池使用 下一篇: 没有下一篇了!
发表评论
用户名: 匿名