码迷,mamicode.com
首页 > 数据库 > 详细

JDBC

时间:2019-06-22 10:19:30      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:rod   body   boolean   border   stream   ott   转义   文件   rac   

JDBC

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

1使用准备

A 导入数据库资源包

Oracle    app\Administrator\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.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

JDBC

标签:rod   body   boolean   border   stream   ott   转义   文件   rac   

原文地址:https://www.cnblogs.com/javaxiaobu/p/11067670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!