这里简单写一下jdbc的CRUD 就是对数据库的增删改查操作
首先我们讲几个对象
Connection对象这个我们上一篇文章讲过这是个连接对象用它来和数据库打开一个连接
Statement 这个我叫他sql解释执行器,我们的所有sql都要由他来解释和执行(这是非常重要的一个接口以后很多的操作我们会用到它,要详细了解下)
ResultSet 这个是一个结果集、用于装载解释执行器返回的结果
他们的详细方法我就不在这里具体罗列了、API里面写的很清楚
下面我贴个例子来演示下Statement的使用
/**
*
*/
package com.dnion.jdbc.example;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
***************************************************************
* 项目名称:JdbcExample
* 程序名称:JdbcCRUD
* 日期:2012-11-13 下午1:47:47
* 作者:白鹏飞
* 模块:
* 描述:
* 备注:
* ------------------------------------------------------------
* 修改历史
* 序号 日期 修改人 修改原因
*
* 修改备注:
* @version
***************************************************************
*/
public class JdbcCRUD {
/**
*
* 方法名:save
* 描述:保存方法
* 作者:白鹏飞
* 日期:2012-11-13 下午2:10:51
* @param @throws SQLException
* @return void
*/
public void save()throws SQLException{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
conn = ConnCreate.getConnection("jdbc:mysql://192.168.1.153:3306/bpf_test", "root", "123456");
//创建执行句柄
stmt = conn.createStatement();
String sql="insert into user(id,name,birthday,money) values(3,'lisi','2010-05-05',13000.00)";
//执行sql语句
stmt.executeUpdate(sql);
}finally{
//释放资源
ConnCreate.closeConnection(conn, stmt, rs);
}
}
/**
*
* 方法名:update
* 描述:
* 作者:白鹏飞
* 日期:2012-11-13 下午2:11:47
* @param @throws SQLException
* @return void
*/
public void update() throws SQLException{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
conn = ConnCreate.getConnection("jdbc:mysql://192.168.1.153:3306/bpf_test", "root", "123456");
//创建执行句柄
stmt = conn.createStatement();
String sql="update user set money=money+5000 where id=3";
stmt.executeUpdate(sql);
}finally{
//释放资源
ConnCreate.closeConnection(conn, stmt, rs);
}
}
/**
*
* 方法名:delete
* 描述:
* 作者:白鹏飞
* 日期:2012-11-13 下午2:13:30
* @param @throws SQLException
* @return void
*/
public void delete() throws SQLException{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
conn = ConnCreate.getConnection("jdbc:mysql://192.168.1.153:3306/bpf_test", "root", "123456");
//创建执行句柄
stmt = conn.createStatement();
String sql="delete from user where id=3";
stmt.executeUpdate(sql);
}finally{
//释放资源
ConnCreate.closeConnection(conn, stmt, rs);
}
}
}
从上面的例子里我们可以看出来Statement这个接口还是有一些缺点的
例如:sql语句的参数需要自己去拼接、可能会有风险
sql不能缓存、每次执行都要发送等
为了解决这一系列问题我们有了一个PreparedStatement这个接口他是Statement的子接口、下一篇博客我会介绍。