`

使用JDBC连接数据库

    博客分类:
  • JDBC
阅读更多

JDBC访问数据库包括两个方面:第一个是 java本身提供给程序员的API,大部分API位于java.sql包中,还有存在于javax.sql中。第二部分是:不同的数据库产品提供不同的JDBC API称为spi 也就是数据库驱动程序。数据库驱动中有一个关键类是帮助连接java程序与数据库创建连接的,驱动类(Driver Class)

利用JDBC操作数据库首先要下载不同数据库的驱动同时导入项目中。还要尽量熟悉java提供的API。首先介绍常用的api

(1)DriverManager:驱动管理类:

操作数据库首先建立链接,得到连接对象(Connection)着各类中定义了得到链接的方法:

public static Connection getConnection(String url,String user,String password)

getConnection方法获得数据库连接对象 ,url称为连接串,它体现了数据库的链接协议,数据库名称,端口,主机地址,user为数据库名,password为数据库密码。

(2)Connection 连接接口

可以通过他来获得语句执行对象(Statement)利用其中的createStatement()方法。

(3)Statement语句接口 包括executeUpdate、executeQuery方法。

其中 int executeUpdate(String sql ):执行增加、删除、修改操作。返回值是影响的行数。

ResultSet executeQuer(String sql ):执行查询操作,返回结果集对象。

(4)ResultSet结果集接口

当执行了查询操作后都会返回结果进行处理,结果都存进封装在这个对象中,该接口还提供了遍历结果集的方法

boolean next():该方法可以是结果集游标上下移动,if()/ while()实现。有记录返回true 没有false。

getXXX(String columnName)方法,如getString ,getInt XXX为数据类型。选择与字段相同的数据类型,通过名称可以返回对象的值

getXXX(Int indext)根据字段在结果集中的位置来返回字段的值 用法和上面的相似

链接数据库时首先声明驱动类的名字,连接串,连接对象,语句对象,可以使用class类中的forName()方法来加载一个类。

利用JDBC链接数据库 并且封装增删改查的方法。代码如下(masql为例):

 

package com.tjetc.dbutil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConn {
   //三属性
   private Connection conn;  //连接
   private Statement stmt;      //执行对象,用于执行sql语句
   private ResultSet rs;        //结果集,用于保存查询的结果    
   //构造方法
   public DBConn(){
          try {
                 Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动文件
                 String url="jdbc:mysql://localhost:3306/project";
                 this.conn=DriverManager.getConnection(url,"root","1");
                 stmt=conn.createStatement();
          } catch (ClassNotFoundException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
          } catch (SQLException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
          }
   }      
   //查询的方法
   public ResultSet execQuery(String strSql){
          try {
                 rs=stmt.executeQuery(strSql);
                 return rs;
          } catch (SQLException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 return null;
          }
   }      
   //执行增删改的方法
   public int execOther(String strSql){
          try {
                 int flag=stmt.executeUpdate(strSql);
                 return flag;
          } catch (SQLException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
                 return -1;
          }
   }      
   //关闭
   public void closeAll(){
          try {
                 if(!rs.isClosed()){
                       rs.close();
                 }
                 if(!stmt.isClosed()){
                       stmt.close();
                 }
                 if(!conn.isClosed()){
                       conn.close();
                 }
          } catch (SQLException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
          }
   }


}
 



 




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics