JDBC程序回顾

程序代码:

package cn.ztc.mybatis.jdbc;
import java.sql.*;

public class JdbcTest01 {
    
    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:8010/test?characterEncoding=utf-8","root","wazl2012");
            //创建preparedStatement,?为占位符
            String sql="select * from user where username = ?";
            preparedStatement=connection.prepareStatement(sql);
            //通过setString设置参数
            preparedStatement.setString(1, "王五");
            resultSet=preparedStatement.executeQuery();
            while(resultSet.next()){
                //操作结果集,通过getString获得该列的值
                System.out.println(resultSet.getString("id")+" "+resultSet.getString("username")+" "+resultSet.getString("sex"));
            }
        }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();
                }
            }
        }
    }
}

JDBC问题总结:

1.数据库连接,使用时就创建,不使用就立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库的性能
解决方案:使用数据库的连接池

2.将sql语句硬编码到java代码中,如果sql语句修改,需要重新编写java代码,不利于系统维护
解决方案:将sql语句配置在xml配置文件中,即使sql变化,也不需要对重新编写java代码

3.在向preparedStatement中设置参数时,占位符位置和对应值硬编码在java代码中,不利于系统维护
解决方案:将sql语句、占位符、参数全配置在xml配置文件中

4.从resultSet中遍历结果集数据时,将获取表的字段进行硬编码
解决方案:将查询的结果集自动映射成java对象

你可能感兴趣的:(JDBC程序回顾)