1.原生jdbc实例
来源:互联网 发布:java get请求什么意思 编辑:程序博客网 时间:2024/05/29 09:14
jdbc存在的问题
1、数据库连接频繁的创建和关闭,缺点浪费数据库的资源,影响操作效率
解决方式:使用数据库连接池
2、sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护。
解决方式:将sql语句 统一配置在文件中,修改sql不需要修改java代码。
3、通过preparedStatement向占位符设置参数,存在硬编码( 参数位置,参数)问题。系统不易维护。
解决方式:将sql中的占位符及对应的参数类型配置在配置文件中,能够自动输入 映射。
4、遍历查询结果集存在硬编码(列名)。
解决方式:自动进行sql查询结果向java对象的映射(输出映射)。
public class Jdbc { public static void main(String[] args) { Connection connection = null; //PreparedStatement是预编译的Statement,通过Statement发起数据库的操作 //PreparedStatement防止sql注入,执行数据库效率高(利用缓存如果是相同的sql不会重新编译) PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //通过驱动管理类获取数据库链接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf-8", "root", "admin"); //定义sql语句 ?表示占位符 String sql = "select * from user where username = ?" ; //获取预处理statement preparedStatement = connection.prepareStatement(sql); //设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值 preparedStatement.setString(1, "cjq"); //向数据库发出sql执行查询,查询出结果集 resultSet = preparedStatement.executeQuery(); //遍历查询结果集 while(resultSet.next()){ System.out.println(resultSet.getString("id")+" "+resultSet.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{ //释放资源 if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if(preparedStatement!=null){ try { preparedStatement.close(); } catch (SQLException e) { e.printStackTrace(); } } if(connection!=null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }}
阅读全文
0 0
- 1.原生jdbc实例
- JDBC原生
- 原生JDBC
- 原生JDBC
- 原生JDBC访问数据库
- 原生JDBC的缺点
- 原生jdbc--备忘
- 原生JDBC开发步骤
- 原生jdbc复习
- 原生JDBC连接总结
- jdbc实例
- JDBC实例
- JDBC - 使用原生编写DAO
- 原生js ajax 实例
- Ajax原生实例
- js原生ajax实例详解
- HTML5原生拖放实例分析
- 原生JS字符串拼接实例
- [LeetCode]习题2
- 简单了解JSP
- CentOS7安装图形界面
- phpstorm激活与汉化
- Math 对象方法
- 1.原生jdbc实例
- 第二周学习收获
- Ubuntu下查看是pple64位还是x86_64 fcitx的指令安装
- Servlet在java EE中的结构体系
- Oracle12c通过SQL Developer工具调试procedure报错: ORA-24247解决方法
- HTTP header
- spring4.x前后端分离注意事项(一)请求静态资源
- exe加密
- Quartz.NET 入门