用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(); } } }
?