一、JDBC编程步骤
1、加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
2、通过DriverManager获取数据库连接
Connection conn=DriverManager.getConnection(url,username,password);
3、使用Connection来创建一个Statement对象
Statement createment()
PreparedStatement prepareStatement(String sql):预编译
CallableStatement prepareCall(String sql):调用存储过程
这里调用存储过程格式:{call 过程名(?,?,....,?)}
4、使用Statement执行SQL语句
4.1、Statement
ResultSet executeQuery(String sql):查询语句
int executeUpdate(String sql):执行DML、DDL语句
4.2、PreparedStatement
setXxx(int index,Xxx value):传入参数
executeUpdate()
4.3、CallableStatement
传入参数设置值:setXxx(int index,value);
传出参数设置值:registerOutParameter(int index,输出参数类型)
5、操作结果集
处理Blob类型数据:对于图片、声音文件,使用BLOB类型表示
6、回收数据库资源
二、JDBC编程问题
1.数据库连接,使用时创建,不用时立即释放,对数据库进行频繁连接与关闭,造成数据库资源浪费,不利于数据库的性能(使用数据库连接池).
2.将sql语句硬编码到java代码中,如果sql语句修改,需要重新修改java代码,不利于系统维护(将sql语句配置在xml文件中).
3.使用preparedStatement设置参数值,将占位符位置和参数值硬编码到java代码中,不利于系统维护(将sql语句配置在xml文件中).
4.从resultSet结果集中遍历数据时,存在硬编码,不利于系统维护(将结果集自动映射为java对象)