Java中使用jdbc连接数据库详解

最近做的比较多的事情就是学习java基础知识,基本上是按照专题进行学习,今天主要是对“java中使用jdbc连接数据库”这一模块进行了系统学习,虽然ssh框架功能强大,看似jdbc几乎不再需要,其实这得看情况,有时候使用还是比较好的,虽然代码相对有点繁琐,下面是通过学习写下的知识性内容(注:非转载,但是有借鉴别人的东西,自己去实践后的总结):

出现下面格式的原因:首先已在word文档中进行了书写,方便以后需要时能够很容易获取,粘贴在此,则是备份,谨防丢失,同时也是和大家的交流。


Java中使用JDBC连接mysql数据库(以mysql为例)

一、在eclipse中创建java Project,将mysql的驱动jar包添加到工程lib包中;

二、编写java文件,使用JDBC连接数据库步骤详解:

  1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库(mysql)的驱动到JVM,这通过java.lang.Class类的静态方法forNameString className)实现。

  // 加载驱动程序

 Class.forName("com.mysql.jdbc.Driver");

成功加载后,会将Driver类的实例注册到DriverManager类中。

2、创建数据库连接:

?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。    

?使用DriverManagergetConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。    

  // 用JDBC  驱动程序建立连接

   con = DriverManager.getConnection

("jdbc:mysql://127.0.0.1:3306/rap","root","");

1和2步骤后,数据库连接已成功,如果失败,会抛出异常,使用try-catch。

3、创建一个statement

要执行sql语句, 必须获得一个java.sql.statement实例,statement实例包含以下两种类型(还有其他类型,不计):

1)、执行静态sql语句,通常通过statement实例实现。

2)执行动态sql语句,通常通过preparedstatement实例实现。

   Statement stmt = con.createStatement() ;    

   PreparedStatement pstmt = con.prepareStatement(sql) ;   

4、执行sql语句:

Statement接口提供了三种执行sql语句的方法:executeQueryexecuteUpdateexecute

1)、ResultSet executeQueryString sql):执行查询数据库的sql语句,返回几个结果集(ResultSet)对象。

2)Int executeUpdateString sql:用于执行insertupdatedelete语句以及sql ddl语句,如create table drop table等。

3)ExecuteString sql):用于执行返回多个结果集,多个更新计数或二者组合的语句(使用较少)。

5、处理结果(两种情况):

1)、执行更新返回的是本次操作影响到的记录数。

2)执行查询返回的结果是一个ResultSet对象。

  ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。    

  使用结果集(ResultSet)对象的访问方法获取数据:    

   while(rs.next()){    

    String name = rs.getString("name") ;    //name字段名称

    String pass = rs.getString(1) ; // 此方法比较高效    

     }    

    (列是从左到右编号的,并且从列1开始)    

6、关闭JDBC对象:

  操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声    

     明顺序相反:    

     1、关闭记录集    

     2、关闭声明    

     3、关闭连接对象    

          if(rs != null){   // 关闭记录集    

        try{    

            rs.close() ;    

        }catch(SQLException e){    

            e.printStackTrace() ;    

        }    

          }    

          if(stmt != null){   // 关闭声明    

        try{    

            stmt.close() ;    

        }catch(SQLException e){    

            e.printStackTrace() ;    

        }    

          }    

          if(conn != null){  // 关闭连接对象    

         try{    

            conn.close() ;    

         }catch(SQLException e){    

            e.printStackTrace() ;    

         }    

          }  

完整实例(数据库名称rap,表名:student

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

* @author Liuchuanwei

* date:2012-01-05

*/

public class ts {

/**

* @param args

*/

public static void main(String[] args) {

Connection con = null;// 连接

Statement stmt = null;// 执行语句

ResultSet rst = null;// 结果集

int i = 0;   

try {

   

   /********用JDBC驱动程序连接mysql***********/

   // 加载驱动程序

   Class.forName("com.mysql.jdbc.Driver");

   

   // 用JDBC  驱动程序建立连接

   con = DriverManager.getConnection

("jdbc:mysql://127.0.0.1:3306/rap","root","");

   /** ************** 创建执行语句方法 1 ******************* */

   stmt = con.createStatement();

   

   //执行更新返回的是本次操作影响到的记录数

   i = stmt.executeUpdate(

"update student set age =21 where stu_id = '402842b8349297b8013492e858a70011'");  

   System.out.println(i);

   

   // 执行查询返回的结果是一个ResultSet对象

   rst = stmt.executeQuery("select * from student");

   // 输出结果

   while (rst.next()) {

   System.out.println(rst.getString(1));

   System.out.println(rst.getString(4));

   System.out.println(rst.getString("age")+"");

   System.out.println(rst.getString("sex"));

   }

   // 关闭对象

   stmt.close();

   con.close();

} catch (ClassNotFoundException cnf) {

   System.out.println("没找到驱动程序");

   cnf.printStackTrace();

} catch (SQLException se) {

   se.printStackTrace();

}

}

}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值