zoukankan      html  css  js  c++  java
  • JDBC

    JDBC

    java连接数据库的连接java database connectivity

    1使用准备

    A 导入数据库资源包

    Oracle    appAdministratorproduct11.2.0dbhome_1jdbclibojdbc6.jar

        放入资源文件夹,将包设置为bulid path->add to build path

    B 创建资源文件

        见数组properties的使用

        内部文件为

    driver==oracle.jdbc.driver.OracleDriver

    url=jdbc:oracle:thin:@localhost:1521:XE

    name=SCOTT

    pwd=TIGER

    2基本步骤

    A连接资源目录

    Properties pro=new Properties();

    Pro.load(Thread.currentThread().get ContextClassLoader().getResourceAsStream("db.properties"))

    B加载驱动

    Class.forName(“oracle.jdbc.driver.OracleDriver”);

    Class.forName(pro.getProperty(“dirver”));

    C获取连接

    Connection conn=DriverManager.getConnection(url,用户名,密码)

    url地址为jdbc:oracle:thin:@licalhost:1521:XE

    其中:thin为版本, licalhost可替换其他ip,XE在正式版为ora

        url,用户名,密码通过db.propertise配置 pro.getproperty(key)

    D处理块和数据准备

        1静态处理块先创建块后加入sql  在执行sql时再将sql传入

    Statement state =conn.createStatement();

    String sql=“select * from emp”;

    2预处理块   先创建sql 后带参获取创建块

    String sql=select * from emp”;

    PreparedStatement state=conn.preparedStatement(sql)

    Sql的数据拼接

    1普通拼接

    sql=“update tb_user set pwd=‘”+外部变量1+“’ where name=‘”+外部变量2+“’”;

    通过字符拼接实现sql语句

    2预处理拼接(只能使用在预处理块中)

    String sql=“update tb_user set pwd=? where name=?”

    PreparedStatement state=conn.preparedStatement(sql);

    state.getString(int index ,String value);

    Sql中传入的变量通过?占位

    在静态块中代用getString方法传入变量,注意索引从1开始

    优点:防止sql注入;内部会预编译,效率高

    3sql中存在强制的“ ”则通过转义字符实现转换

    String sql="select name "name",pwd "pwd" from tb_user"

    ResultSet result= state.executeQuery(sql);

    E执行sql

    预处理块模式

    1增删改sql

      int i=state.executeUpdate()    返回影响行数int

    2查询sql

      Resultset result = state.executeQuery()   返回查询数据

    静态处理块模式

      int i=state.executeUpdate(sql)

      Resultset result = state.executeQuery(sql)   

    F 结果集ResultSet与结果集元信息ResultSetMetaData

      ResultSet的方法

         1判断方法

    next()返回boolean 判断是否有下一条记录用于执行循环

    2获取方法,分别获取对应的数据

    getObject(“列名|别名”)

    getString(“列名|别名”)

    getint(“列名|别名”)

    getDouble(“列名|别名”)

    getDate(“列名|别名”)

    getMetaData() 获取属性列表

        ResultSetMetaData

           通过ResultSet的对象获取

           getColumnCount()         获取总列数

           getColumnName(序号)      返回列名

           getColumnLabel(序号)      返回别名(若无别名返回列名)

           getColumnTypeName(序号)   返回数据类型

          

    G关闭

    ResultSet, PreparedStatement, Statement,connection需要close

  • 相关阅读:
    获得spring代理对象的原对象
    自动注入bean,简化持久化
    java Instrument修改字节码实现aop功能
    c# 笔记
    js 字符串与json互转
    js Deferred的使用
    chrome 插件开发 通讯机制
    ajax 采用XMLHttpRequest post、get 发送数据
    [转]c fscanf 按行读取文件_(Testbench用法总结)1. Testbench中文本数据的存储读取操作对比...
    转:VIVADO使用技巧:设置DCI与内部参考电压
  • 原文地址:https://www.cnblogs.com/javaxiaobu/p/11067670.html
Copyright © 2011-2022 走看看