传统数据库访问方法及弊端
来源:互联网 发布:linux mongodb安装 编辑:程序博客网 时间:2024/05/19 16:28
传统数据库的访问方法:
步骤1:加载数据库驱动
步骤2:获取数据库连接,
步骤3::创建jdbc statement对象
步骤4:设置sql语句
步骤5:使用preparedStatement 设置sql语句中的参数
步骤6:通过statement执行sql并获取结果
步骤7:对sql结果进行解析处理
步骤8:释放资源(resultSet,preparedstatement,connection)
jdbc问题总结:
1.数据库连接,释放频繁造成系统资源浪费,从而影响系统性能,如果使用数据库连接池可解决此问题
2.sql语句在代码中硬编码,而在实际应用中sql语句变化的较大
3.使用preparedStatement 向占有位符号传参数存在硬编码,
4.结果集存在硬编码,sql变化导致解析代码变化,系统难以维护
jdb访问数据库代码如下图
Public static void main(String[] args) {
Connection connection =null;
PreparedStatement preparedStatement =null;
ResultSet resultSet =null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理类获取数据库链接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root", "mysql");
//定义sql语句?表示占位符
String sql = "select * from user where username= ?";
//获取预处理statement
preparedStatement = connection.prepareStatement(sql);
//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
preparedStatement.setString(1,"王五");
//向数据库发出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) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
- 传统数据库访问方法及弊端
- TThread.Synchronize同步方法及弊端
- 传统的JDBC数据库访问技术-事务处理
- oracle中使用wm_concat函数的方法及弊端(解决办法)
- 传统微信营销的弊端
- Access数据库的弊端
- 多线程弊端及解决办法
- UIColor initWithPatternImage方法弊端
- UIColor initWithPatternImage方法弊端
- UIColor initWithPatternImage方法弊端
- Android 数据库编程——传统方法
- 通过web.xml访问数据库及实现方法
- ADO数据库访问技术使用的基本步骤及方法:
- R数据导入方法及访问数据库管理系统
- 多态特点及弊端
- JS使用传统的方法访问DOM对象
- 传统登录方式弊端尽显,作为运营该如何解
- 常见防网站数据采集策略方法和它的弊端及采集对策
- 常用Git命令
- C++ 学习基础篇(一)—— C++与C 的区别
- 17、RedHat5 LB集群(LVS)-NAT模式
- javascript中闭包的工作原理
- Pods 更新后提示Bundle资源找不到
- 传统数据库访问方法及弊端
- android-R.string
- C++学习基础篇 —— 引用(&)的用法和应用
- PHP中最容易忘记的一些知识点总结
- 【leetcode】111. Minimum Depth of Binary Tree
- mysql经典查询
- C++基础知识(一)—— C++程序结构
- 11个基础的HTML5动画工具
- Binder入门