Oracle学习笔记(六)——JDBC

今天的内容很多,但是大多数都是复习以前的知识,总体来说还是不难的,重点的知识就是如何在JAVA中调用函数,过程.

    以前没学不知道,学了才知道,原来JDBC连接Oracle的方法和连接SQL SERVER的方法完全一样,首先要加载驱动,用Class.forName("oracle.jdbc.driver.OracleDriver"),完了就要建立连接了,和连接SQL SERVER一样,使用DriverManager("jdbc:oracle:thin:@127.0.0.1:1521:数据库名字","数据库帐号","数据库密码"),所以完全没的难度的,就是记忆下这两个字符串就好了,不过话说只要导入了Oracle的包就能在JAVA点出来的.

    JAVA中调用函数时,只需要在SQL语句中写:select Max(xxxxx) FROM xxx类型的代码即可,用发和以前学的完全一样,但是需要注意的是对自定义的过程的调用:

    SQL语句我们需要这样写:"{call 过程名(参数)}",同时我们不再使用PrepareStatement了,而使用连接对象conn.prepare获得一个CallableStatement对象,其用法和PrepareStatement一样,对过程的调用有3种情况:

    1、无返回,这种情况属于傻瓜型,不需要任何的操作,执行完了就了事。

    2、返回一个值

       我们知道如果一个过程要有一个返回值,那必定过程中会有一个out参数,那么我们在JAVA中传入参数的时候也需要给一个与OUT参数同类型的参数,我们称为绑定参数,做一定的解释:如果该参数是第4个参数,则我们绑定第4个参数,cst.registerOutParameter(4,java.sql.Types.类型),这样,在提交执行完SQL语句后,我们可以通过使用cst.getObject(4)来得到返回来的值。

    3、返回结果集

       这种类型,没的悬念肯定要用游标,同样需要我们绑定参数,但绑定的类型为:Oracle.jdbc.OracleTypes.CURSOR

       在执行完SQL后,我们需要一个ResultSet对象来接收,注意这里cst.getObject(num)是个Object对象,需要我们强行转换为ResultSet对象,接下来的操作和过去完全一样。

 

补充:

    JAVA中批处理:

       建立连接后,用st = conn.createStatement();创建一个编译对象,并且将事务提交设置为手动,conn.setAutoCommit(false),接下来就可以写我们需要执行的SQL语句字符串了,将写好的字符串传入st.addBatch(sql)中,当语句足够多时(自己控制),执行st.executeBatch()和conn.commit()语句即可实现一次编译全部SQL语句的效果

    注:以上内容为本人mind Stream,难免会有错误,但基本流程应该不会错,希望大家谨慎对待~~~

 

每日一问:

   SQL注入的危害:

    答:主要两点:绕过验证和操纵数据库执行恶意代码。

你可能感兴趣的:(oracle,sql,jdbc,SQL Server)