jdbc连接数据库六步走
来源:互联网 发布:手机装windows系统上网 编辑:程序博客网 时间:2024/06/05 12:00
这几天正好在学oracle数据库,而且我发现我已经忘了jdbc连接数据库的步骤了,所以写篇博客记录一下。这里使用Oracle数据库驱动,MySQL类似。
jdbc连接数据库六步:
- 加载驱动
- 获取数据库连接
- 创建statement
- 执行SQL语句
- 获取结果集
- 释放资源(关闭statement和连接)
贴上代码:
//1、加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//2、获取数据库连接String url = "jdbc:oracle:thin:@localhost:1521:XE";String user = "xiaojie119120";String password = "xiaojie119120";Connection conn = DriverManager.getConnection(url,user,password);//3、创建statementStatement st = conn.createStatement();//4、执行SQL语句String sql = "select * from db_test";ResultSet rs = st.executeQuery(sql);//5、获取结果集List<User> users = new ArrayList<User>();User u = null;while (rs.next()){ u = new User(); u.setId(rs.getInt("id")); u.setInfo(rs.getString("info")); users.add(u);}System.out.println(users);//6、释放资源(关闭statement和连接)st.close();conn.close();
以上是使用Statement执行SQL语句,Statement传递参数是靠拼接字符串的,这会导致sql注入,所以最好采用PreparedStatement,代码如下:
//1、加载驱动Class.forName("oracle.jdbc.driver.OracleDriver");//2、获取数据库连接String url = "jdbc:oracle:thin:@localhost:1521:XE";String user = "xiaojie119120";String password = "xiaojie119120";Connection conn = DriverManager.getConnection(url,user,password);//3、创建statementString sql = "select * from db_test where id=?";PreparedStatement pst = conn.prepareStatement(sql);pst.setString(1, "1");//4、执行SQL语句ResultSet rs = pst.executeQuery();//5、获取结果集List<User> users = new ArrayList<User>();User u = null;while (rs.next()){ u = new User(); u.setId(rs.getInt("id")); u.setInfo(rs.getString("info")); users.add(u);}System.out.println(users);//6、释放资源(关闭statement和连接)pst.close();conn.close();
两者区别如下:
1>PreparedStatement用于处理动态SQL语句,在执行前会有一个预编译过程,这个过程是有时间开销的,虽然相对数据库的操作,该时间开销可以忽略不计,但是PreparedStatement的预编译结果会被缓存,下次执行相同的预编译语句时,就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行,所以,对于批量处理可以大大提高效率。
2>Statement每次都会执行SQL语句,相关数据库都要执行SQL语句的编译。
作为开发者,应该尽可能以PreparedStatement代替Statement,其原因如下:
(1)可以提高代码的可读性和可维护性。;
(2)PreparedStatement能够尽最大可能提高性能。
(3)PreparedStatement极大的提高了安全性(防止SQL注入)。
阅读全文
0 0
- jdbc连接数据库六步走
- jdbc入门、jdbc连接数据库
- jdbc-odbc连接数据库
- JDBC连接MySQL数据库
- JDBC连接MySQL数据库
- JDBC之连接数据库
- [JDBC] 如何连接数据库
- JDBC连接数据库技巧
- jdbc连接数据库
- JDBC连接常用数据库
- jdbc连接数据库
- JDBC连接SqlServer2005数据库
- jdbc连接各种数据库
- JDBC连接各种数据库
- JDBC连接数据库参考
- JDBC连接数据库
- JDBC连接数据库小结
- JDBC连接MYSQL数据库
- spring4.1 请求rest接口406问题解决(转换JSON)
- offsetX, clientX, pageX, screenX, layerX,
- cookie的使用方法
- 【NIO引入】BIO、AIO与NIO的区别
- 计算机网络-运输层
- jdbc连接数据库六步走
- JAVA ActiveMQ 详解
- CenTos 7上开端口号
- 一个困扰了我三天的SQL优化问题。(多条数据取最近的数据)
- vue 常用ui组件
- 导航条的制作
- 关于ffmpeg的知识点
- Suricata 3.2.1 源码阅读笔记:数据包队列
- python 文件常用的读写操作