传统数据库访问方法及弊端

来源:互联网 发布: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();

}

}

 

}

 

}


0 0