JDBC 增删改查

来源:互联网 发布:淘宝内裤男模左肩纹身 编辑:程序博客网 时间:2024/05/22 07:41

 JDBC API

      JDBC API 工作的4个重要的环节:

1.       DriverManager类:依据数据库的不同管理jdbc驱动

2.       Connection接口:负责连接数据库并担任传送数据的任务。

3.       Statement 接口:友Connection产生,负责执行sql语句。

4.       ResultSet接口:负责保存Statement执行后所产生的查询结果。

JDBC 程序的代码模版:

(1)        将JDBC驱动类装在到java虚拟机中:

Class.formName(“JDBC驱动类的名称”);

(2)       加载驱动并与书数据库连接:

Connection  conn = DriverManager.getConnectipon(数据连接字符串,数据库用户名,密码);

(3)       发送SQL语句并得到结果:

一旦连接建立,就是用改连接创建Statement接口的实例并将SQL语句传递给他所连接的数据库并返回ResultSet对象

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(“select a from Table”);

(4)       处理结果:使用ResultSet对象的next()方法将光标指向下一行。最初光标的位置位于第一行之前,因此第一次调用next()方法将光标将光置于第一行上。如果到达结果集的末尾,则ResultSet的next()方法返回FALSE方法getXXX提供了获得当前行中的某列值的途径,列名或列号可用于标示要从中获取数据的列,例如 如果数据表中的第一列的列名为a,存储类型为整形,则可以用int x = rs.getInt(“a”);或者int x = rs.getInt(1);

While (rs.next()){

  Int x = rs.getInt(“a”);

  String s = rs.getString(“b”);

  Float f = rs.getFloat(“c”);

}

 

纯java驱动方式:

纯java驱动方式由JDBC驱动直接访问数据库,驱动程序完全由java语言编写,运行速度快,而且具备了跨平台的特点。

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=bbs","sa","123456");

Statement语句

       获取Connection对象之后就可以进行数据库操作,使用Connection对象可以生成Statement实例

       执行SQL命令的三个方法:

(1)       ResultSet executeQuery (String sql) :可以进行色sql查询并获取到ResultSet对象。

(2)       int executeUpdate(String sql ):可以执行插入删除更新等操作,返回值是执行操作返回的受影响函数。

(3)       boolean execute (String sql) :可以执行任意sql语返回一个布尔值,表示是否返回ResultSet

PreparedStatement语句

      PreparedStatement 接口继承自Statement接口PreparedStatement比普通的Statement对象使用起来更加的灵活更加的效率

       PreparedStatement实例包含一编译的sql语句,sq语句可具有一个或多个输入参数,并用?占位

       在执行PreparedStatement之前必须设置每个参数的值,可以通过getXXX方法来完成,其中XXX表示的是参数的类型。如:pstmt.setLong(1,123456789); pstmt.setInt(2,123);

 

格式化时间

引入包:import java.util.Date;import java.text.SimpleDateFormat;

String   time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

 

代码1  查询

 

import java.sql.*;

public class select {

      public static void main(String[] args) {

           Connection conn = null;       //定义变量

           PreparedStatement pstet =null;

           ResultSet rs = null;

           try {

                 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");    //装在去动程序

               conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=student","sa","123456");   //加载驱动并与数据库连接

               String sql = "select count(*) from  td_student";   //sql  语句

               pstet = conn.prepareStatement(sql);   //发送sql语句并得到结果集

                rs = pstet.executeQuery();

               if (rs.next()){  // 判断数据集中是否有数据

                 System.out.println("数据库中共有"+rs.getInt(1)+"条记录");

               }

           } catch (Exception e) {

                 e.printStackTrace();

           }

           finally{

                 clossConnection(conn);  //释放资源

                 clossResultSet(rs);

                 clossStatement(pstet);

           }    

      }

      public static void clossConnection(Connection conn ){

           try {

                 if(conn != null && !conn.isClosed()){

                      conn.close();

                 }

           } catch (Exception e) {

                 e.printStackTrace();

           }

      }

      public static void clossStatement(PreparedStatement pstet ){

           try {

                 if(pstet != null) {

                      pstet.close();

                 }

           } catch (Exception e) {

                 e.printStackTrace();

           }

      }

      public static void clossResultSet(ResultSet rs ){

           try {

                 if(rs != null) {

                      rs.close();

                 }

           } catch (Exception e) {

                 e.printStackTrace();

           }

      }

}

 

代码块2    增加(简化)

public static void main(String[] args) {

           Connection conn = null;       //定义变量

           PreparedStatement pstet =null;

           ResultSet rs = null;

           int num = 0;

           try {

                 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");    //装在去动程序

               conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=student","sa","123456");   //加载驱动并与数据库连接

               String sql = "insert into  td_student (Name,Score) values(?,?)";   //sql  语句  占位符的使用

               pstet = conn.prepareStatement(sql);   //发送sql语句并得到结果集

               pstet.setString(1, "赵六");  // 1 表示第一个占位符

               pstet.setInt(2, 87);

               num = pstet.executeUpdate();

                 System.out.println("共插入数据"+num+"条记录");

           } catch (Exception e) {

                 e.printStackTrace();

           }

           finally{

                 clossConnection(conn);  //释放资源

                 clossResultSet(rs);

                 clossStatement(pstet);

           }    

      }

代码快3   删除(简化)

public static void main(String[] args) {

           Connection conn = null;       //定义变量

           PreparedStatement pstet =null;

           ResultSet rs = null;

           int num = 0;

           try {

                 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");    //装在去动程序

               conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=student","sa","123456");   //加载驱动并与数据库连接

               String sql = "delete from  td_student  where Name=? and Score=?";   //sql  语句  占位符的使用

               pstet = conn.prepareStatement(sql);   //发送sql语句并得到结果集

               pstet.setString(1, "赵六");  // 1 表示第一个占位符

               pstet.setInt(2, 87);

               num = pstet.executeUpdate();

                 System.out.println("共删除数据"+num+"条记录");

           } catch (Exception e) {

                 e.printStackTrace();

           }

           finally{

                 clossConnection(conn);  //释放资源

                 clossResultSet(rs);

                 clossStatement(pstet);

           }    

      }

代码快4   修改

public static void main(String[] args) {

           Connection conn = null;       //定义变量

           PreparedStatement pstet =null;

           ResultSet rs = null;

           int num = 0;

           try {

                 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");    //装在去动程序

               conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=student","sa","123456");   //加载驱动并与数据库连接

               String sql = "update td_student set Score=? where Name=?";   //sql  语句  占位符的使用

               pstet = conn.prepareStatement(sql);   //发送sql语句并得到结果集

               pstet.setInt(1, 100); // 1 表示第一个占位符

               pstet.setString(2, "赵六");

          

               num = pstet.executeUpdate();

                 System.out.println("共删除数据"+num+"条记录");

           } catch (Exception e) {

                 e.printStackTrace();

           }

           finally{

                 clossConnection(conn);  //释放资源

                 clossResultSet(rs);

                 clossStatement(pstet);

           }    

      }

0 0
原创粉丝点击