JDBC编程总结

关于JDBC编程的六步总结

1 注册驱动2获取连接3获取数据库操作对象4执行sql语句5处理查询结果6释放资源

import java.sql.Driver;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Connection;

public class jdbctest01{

public static void main(String args[]){

try{

//1.注册驱动

//写法1

   Driver driver=new com.mysql.jdbc.Driver();

           DriverManager.registerDriver(driver);

        //写法2

           DriverManager.registerDriver(new com.jdbc.Driver());

//2获取连接

//写法1

String url=jdbc:mysql://localhost:3306/bjpowernode;

String user=root;

String password=123;

    Connection conn=DriverManger.getConnection(url,user,password);

//写法2

    Connection conn=DriverManager.getConnection(

jdbc:mysql://localhost:3306/bjpowernode,root,123)

       // 3获取数据库操作对象

           //获取第一个对象

            Statement stmt=conn.createStatement();

           //获取第二个对象并打印(一个连接可以获得多个对象)

           Statement stmt2=conn.createStatement();

System.out.println(stmt2);//打印结果com.mysql.jdbc.StatementImpl@21b8d17c

//4执行SQL语句

// 1执行DML语句

//JDBC中编写SQL语句不许要以;结尾

//String sql="insert into t_user(id,name)values(13,'静静')";

//String sql="delete from t_user where id=12";

String sql="update t_user set name='海涛'where id=13";

//程序执行到此处,发送SQL语句给数据库管理系统

//数据库管理系统会将这条SQL语句编译运行

//该方法返回的是int类型,表示影响数据库表中的记录总数

int count=stmt.executeUpdate(sql);

          System.out.println("count="+count)

        }catch(SQLException e)

         { e.printStackTrace();

         }}}

jdbc编程第五部:若以上的查询结果执行的是DQL语句,那么第五步要处理查询结果集

 怎么处理查询结果集? 目前的处理方式是将所有结果集的数据遍历迭代打印输出。

 import java.sql.Connection;

 import java.sql.SQLException;

 import java.sql.Statement;

 import java.sql.Driver;

 import java.sql.DriverManager;

 import java.sql.ResultSet;

 public class jdbctest05

 {

 public static void main(String args[])

 {  try{

   //1 注册驱动

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

   //2获取连接

Connection conn=DriverManager.getConnection(

                      "jdbc:mysql://localhost:3306/bjpowernode","root","123");

   //3获取操作对象

   Statement stmt=conn.createStatement();

   //4执行SQL语句

String sql="select  id a,name b from t_user ";//a,b为重命名下面会用到

//程序执行到此处,发送SQL语句给数据库管理系统数据库管理系统执行DQL语句

//然后将执行的查询结果放到ResultSet这个结果集对象中了

ResultSet rs=stmt.executeQuery(sql);

rs这个结果集对象中封装了什么信息呢?

+----+---------+

| id | name    |

+----+---------+

|  1 | jack    |

|  2 | jack    |

|  3 | jack    |

|  4 | jack    |

|  5 | haitao  |

|  7 | zhaoliu |

|  8 | xxxu    |

| 13 | 娴锋稕  |

+----+---------+

   //5处理查询结果

   /*

boolean hasMore=rs.next();

next方法作用:将光标向前移动一行指向的当前行有记录,返回ture;指向的当前行没有记录,返回ture*/

   while(rs.next()){//取当前光标指向的行中的数据

//无论表中字段的数据是什么类型,都以字符串的形式取出

/*

//以下是根据查询结果集中字段的下标来获取

String id=rs.getString(1);//JDBC中所有的下标都是从1开始【需要记住】

String name=rs.getString(2);

System.out.println("id="+id+"name="+name);*/

/*//以下是根据查询结果集中字段的名称来获取【这种方式程序健壮,建议使用】

       String id=rs.getString("id");

String name=rs.getString("name");

System.out.println("id="+id+"name="+name);*/

/*//字符串参数不是数据库表中字符串的名称,是查询结果集中字段的名称

String id=rs.getString("a");

String name=rs.getString("b");

System.out.println("id="+id+"name="+name);*/

//以特定类型取出数据

//idint类型namevarchar

int id=rs.getInt("a");

String name=rs.getString("b");

System.out.println("id="+id+"name="+name);

        }

   }catch(SQLException e){

e.printStackTrace();

}

 finally{ //6.释放资源

try{

if(rs!=null){rs.close();}

    }catch(SQLException e)

{e.printStackTrace();}

try{

if(stmt!=null){stmt.close();}

    }catch(SQLException e)

{e.printStackTrace();}

try{

if(conn!=null){conn.close();}

    }catch(SQLException e)

{

     e.printStackTrace();

        }}  } }

释放资源的注意事项:

 1.为保证资源的释放,将释放资源的代码编写到finally语句块中

 2.需要关闭ResultSetStatementConnection

 3.一个Connection可以创建多个Statement,一个Statement可以得到多个ResultSet

   所以关闭的时候,先关闭ResultSet,再关闭Statement,最后关闭Connection

 4.分别进行try。。。catch。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值