JDBC
Posted javaxiaobu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC相关的知识,希望对你有一定的参考价值。
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注入;内部会预编译,效率高
3若sql中存在强制的“ ”则通过转义字符实现转换
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的主要内容,如果未能解决你的问题,请参考以下文章