JDBC总结

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。

连接数据的步骤
1、注册驱动 (只做一次)
2、建立连接(Connection)
3、创建执行SQL的语句(Statement)
4、执行语句
5、处理执行结果(ResultSet)
6、释放资源

创建执行SQL的语句(Statement)

方式一:Statement
String sql = “select * from table_name where col_name=‘col_value’”;
Statement st = conn.createStatement();
st.executeQuery(sql);

方式二:PreparedStatement
String sql = “select * from table_name where col_name=?”;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, “col_value”);
ps.executeQuery();

SQL语句在JDBC中分为二大类
1_静态SQL:SQL语句中无?符号,即select id,name from users where name = ‘张三’(上)
2_动态SQL:SQL语句中有?符号,即select id,name from users where name = ?
?号由程序在运行时动态设置的值

基本的CRUD(创建、读取、更新、删除)
模板代码

Connection conn = null;
Statement st=null;
ResultSet rs = null;
try {
    //获得Connection
    //创建Statement
    //处理查询结果ResultSet
} finally {
    //释放资源ResultSet, Statement,Connection
}

创建(插入)
增加对应SQL的INSERT,返回增加成功的行(记录)数

    conn = getConnection();
    Statement st = conn.createStatement();
    String sql="insert into user(name, age,regist_date )"+ 
"values(‘name’, 10, now())";
    int i = st.executeUpdate(sql);
    //i为插入的记录数

读取
读取(查询)对应SQL的SELECT,返回查询结果

conn = getConnection();
st = conn.createStatement();
String sql = "select id, name, age,regist_date from user";
rs = st.executeQuery(sql);
while (rs.next()) {
        System.out.print(rs.getInt("id") );
        System.out.print(rs.getString("name") );
        System.out.print(rs.getInt("age") );
        System.out.print(rs.getTimestamp("regist_date"));
}

更新
更新(修改)对应SQL的UPDATE,返回被修改的行(记录)数

conn = getConnection();
Statement st = conn.createStatement();
String sql="update person set name='new name'";
int i = st.executeUpdate(sql);
//i为符合条件的记录数

删除
删除对应SQL的DELETE,返回被删除的行(记录)数

conn = getConnection();
Statement st = conn.createStatement();
String sql="delete from user where id=1";
int i = st.executeUpdate(sql);
//i为删掉的记录数

CRUD总结
增、删、改用Statement.executeUpdate来完成,返回整数(匹配的记录数),这类操作相对简单。
查询用Statement.executeQuery来完成,返回的是ResultSet对象,ResultSet中包含了查询的结果;查询相对与增、删、改要复杂一些,因为有查询结果要处理。

参考博客:
http://www.cnblogs.com/huguodong/p/5910859.html
http://blog.csdn.net/shuaicihai/article/details/53416045

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值