jdbc访问数据库数据

访问步骤

定义jdbc的四个参数:

(1)username:数据库用户名
(2)password:数据库密码
(3)URL:访问数据库的地址
 例如:(MySql的连接URL)    
    jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;    
    useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为    
    gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。
(4)driverClass:连接数据库所需的驱动。

加载JDBC驱动程序:   


driverClass="com.mysql.jdbc.Driver";
try{//加载MySql的驱动类    
         Class.forName(driverClass) ;    
    }catch(ClassNotFoundException e){    
         System.out.println("找不到驱动程序类 ,加载驱动失败!");    
         e.printStackTrace() ;    
    }    
  

创建数据库的连接    

 String url = "jdbc:mysql://localhost:3306/test" ;     
     String username = "root" ;    
     String password = "root" ;    
     try{    
          Connection con = DriverManager.getConnection(url , username , password ) ;    
     }catch(SQLException se){    
          System.out.println("数据库连接失败!");    
          se.printStackTrace() ;    
     }    

创建一个preparedStatement 

要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 种类型:    
      1、执行静态SQL语句。通常通过Statement实例实现。    
      2、执行动态SQL语句。通常通过PreparedStatement实例实现。    
      3、执行数据库存储过程。通常通过CallableStatement实例实现。    
    •具体的实现方式:    
       Statement stmt = con.createStatement() ;    
       PreparedStatement pstmt = con.prepareStatement(sql) ;    
       CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;    

执行SQL语句   

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute    
    1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。    
    2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等    
    3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。    
   •具体实现的代码:    
          ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;    
          int rows = stmt.executeUpdate("INSERT INTO ...") ;    
          boolean flag = stmt.execute(String sql) ;    

遍历结果集 

两种情况:    
     1、执行更新返回的是本次操作影响到的记录数。    
     2、执行查询返回的结果是一个ResultSet对象。    
    • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些    
      行中数据的访问。    
    • 使用结果集(ResultSet)对象的访问方法获取数据:    
     while(rs.next()){    
         String name = rs.getString("name") ;    
          String pass = rs.getString(1) ; // 此方法比较高效    
     }    

处理异常,关闭JDBC对象资源

•操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:    
     1、先关闭requestSet    
     2、再关闭preparedStatement    
     3、最后关闭连接对象connection      

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();
   }
}

JDBC中常用类和接口

1、驱动程序管理类(DriverManager)

DriverManager类是JDBC的管理类,作用于用户和驱动程序之间。它跟踪在可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登陆时间限制及登录和跟踪消息的显示事务。对于简单的应用程序,一般程序员需要在此类中直接使用唯一的方法时DriverManager.getConnection()。该方法将建立与数据库的链接。JDBC允许用户调用DriverManager的方法getDriver()、getDrivers()和registerDriver()及Driver的方法connect().

2、声明类(Statement)

Statement对象用于将SQL语句发送到数据库中。实际上有三种Statement对象,它们都作为在给定链接上执行SQL语句的包容器:Statement、PreparedStatement(它从Statement继承而来)和CallableStatement(它从PreparedStatement继承而来)。它们都专用于发送特定类型的SQL语句:

(1)Statement对象用于执行不带参数的简单的SQL语句;Statement接口提供了执行语句和获取结果的基本方法。

(2)PerparedStatement对象用于执行带或不带IN参数的预编译SQL语句;PeraredStatement接口添加处理IN参数的方法;

(3)CallableStatement对象用于执行对数据库已存储过程的调用;CallableStatement添加处理OUT参数的方法。

Statement提供了许多方法,最常用的方法如下:

(1)execute()方法:运行语句,返回是否有结果集。

(2)executeQuery()方法:运行查询语句,返回ReaultSet对象。

(3)executeUpdata()方法:运行更新操作,返回更新的行数。

(4)addBatch()方法:增加批处理语句。

(5)executeBatch()方法:执行批处理语句。

(6)clearBatch()方法:清除批处理语句。

3、数据库连接类 (Connection)

Connection对象代表与数据库的链接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与很多数据库有连接。打开连接与数据库建立连接的标准方法是调用DriverManager.getConnection()方法。

String url="jdbc:mysql://127.0.0.1:3306/imooc";

String user="root";

String password="tiger";

DriverManager.getConnection(url,user,password);

4、结果集合类 (ResultSet)

ResultSet包含符合SQL语句中条件的所有行记录,并且它通过一套get方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。ResultSet.next()方法用于移动到ResultSet中的下一行,使下一行成为当前行。

5、JDBC编程步骤

(1)加载驱动程序:Class.forName(driverClass)

加载mysql驱动:Class.forName("com.mysql.jdbc.Driver");

加载oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

(2)获得数据库连接

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc",user,password);

DriverManager.gerConnection(URL,user,password);

(3)创建Statement对象:conn.createStatement();

(4)向数据库发送SQL命令

(5)处理数据库的返回结果(ResultSet类)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,您可以使用JDBC(Java Database Connectivity)来访问数据库。以下是使用JDBC访问数据库的一般步骤: 1. 导入JDBC相关的类和包。您需要导入Java提供的JDBC类和相关的数据库驱动程序包。例如,对于MySQL数据库,您可以使用`com.mysql.jdbc.Driver`类和`mysql-connector-java`驱动程序。 2. 加载数据库驱动程序。使用`Class.forName()`方法加载数据库驱动程序。例如,对于MySQL数据库,可以使用以下代码加载驱动程序: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 3. 创建数据库连接。使用`DriverManager.getConnection()`方法创建一个数据库连接对象,并指定数据库的URL、用户名和密码。例如,对于MySQL数据库,可以使用以下代码创建连接: ``` String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password"; Connection connection = DriverManager.getConnection(url, username, password); ``` 4. 创建Statement对象。使用连接对象的`createStatement()`方法创建一个Statement对象,用于执行SQL语句。 ``` Statement statement = connection.createStatement(); ``` 5. 执行SQL查询或操作。使用Statement对象的`executeQuery()`方法执行SELECT语句,并使用`executeUpdate()`方法执行INSERT、UPDATE、DELETE等更改操作。例如,执行SELECT语句并处理结果可以使用以下代码: ``` String sql = "SELECT * FROM mytable"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { // 处理每一行数据 } ``` 6. 关闭连接和资源。在完成数据库操作后,记得关闭连接和释放资源,以免造成资源泄漏。可以使用`resultSet.close()`, `statement.close()`和`connection.close()`方法来关闭相关的对象。 这只是一个简单的示例,您可以根据您使用的数据库和具体需求来编写更复杂的代码。希望这些步骤能对您有所帮助!如果您有更多问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值