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获取连接
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”; |
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
Resultset result = state.executeQuery() 返回查询数据
静态处理块模式
int i=state.executeUpdate(sql)
Resultset result = state.executeQuery(sql)
F 结果集ResultSet与结果集元信息ResultSetMetaData
ResultSet的方法
1判断方法
next()返回boolean 判断是否有下一条记录用于执行循环
getobject(“列名|别名”)
getString(“列名|别名”)
getint(“列名|别名”)
getDouble(“列名|别名”)
getDate(“列名|别名”)
ResultSetMetaData
通过ResultSet的对象获取
getColumnCount() 获取总列数
getColumnName(序号) 返回列名
getColumnLabel(序号) 返回别名(若无别名返回列名)
getColumnTypeName(序号) 返回数据类型
G关闭
ResultSet, PreparedStatement, Statement,connection需要close
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。