zoukankan      html  css  js  c++  java
  • JDBC的基础接口及其用法

    JDBC基础

    所谓JDBC即是:Java DataBase Connectivity,java与数据库的连接。是一些用来执行SQL语句的Java API。

    我们进行JDBC的编程,主要常用的几个概念:Connection  、 Statement  、PreparedStatement   、 ResultSet。

    一、Connection对象

    Connection对象,代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象可以等价于到服务器的实际网络连接。简单点介绍,在java编程中即是java程序与数据库之间的一个数据通道,所有对数据库中数据的操作,均需要通过这个通道进行,因此,该对象也是进行与数据库对接的首要创建对象,该对象提供了很多方法,用来实现与程序与数据库的数据交互,常见的有

    ××××.getConnection(url, user, password)  //建立数据库的连接通道(会话)

    .Closed()//关闭连接                 .isClosed()  //通道是否关闭

    createStatement() //创建statement对象               prepareStatement(sql);    //创建prepareStatement对象,sql为未填装语句

     

    二、Statement对象

    Statement对象,是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。主要作用即是向数据库发送一些简单的SQL语句,使得java通过statement即可对数据库中的数据进行增删改查,该对象一般通过Connection对象的createStatement()方法来创建。它常用的方法有:

    executeQuery()  // 执行SQL语句,并返回一个ResultSet的实例

     

    三、PreparedStatement对象


    PreparedStatement继承自Statement,也是一个向数据库发送SQL语句的接口,相比于Statement,它具有更高频率的使用,向它传入的SQL语句可以使用占位符,是预编译的,SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。所谓占位符的SQL语句即是一种输入了键但是对应的值用 ?来代替的SQL语句,例如:    select password from grils where id = ?   ,这里的 ?     未确定的值,可以根基后续的set***方法来填装完成,使他成为完整的SQL语句                                                     

    该对象常用的方法有:

    set××××(int,string)//填装SQL语句中占位符的参数

    executeQuery()  //执行带填装完成的SQl语句,返回一个ResultSet实例

    四、ResultSet对象

    ResultSet,数据库结果集的数据表,通过执行查询数据库的语句生成,以statement / preparedstatement的execteQuery方法返回,该对象返回了数据库执行SQL语句后的结果集,通过其特有的方法,可以在java中提取出这些数据集。常用方法:

    next();//用于遍历循环结果集

    getString()//返回String类型的值

    getInt()//返回Int类型的值

    等等

    具体实现JDBC连接代码

     1 public class JdbcUtil {
     2     private static String url="jdbc:mysql://127.0.0.1:3306/user";
     3     private static String user="root";
     4     private static String password="root";
     5     private static Connection con = null;
     6     static{
     7         try {
     8             Class.forName("com.mysql.jdbc.Driver");//映射加载数据库驱动
     9         } catch (ClassNotFoundException e) {
    10             // TODO Auto-generated catch block
    11             e.printStackTrace();
    12         }
    13         try {
    14             con = DriverManager.getConnection(url, user, password);//传入账号密码,建立连接
    15         } catch (SQLException e) {
    16             // TODO Auto-generated catch block
    17             e.printStackTrace();
    18         }
    19     }
    20     public static Connection getConnection()
    21     {
    22         try {
    23             con = (con==null||con.isClosed())?DriverManager.getConnection(url, user, password):con;
    24             //判断连接是否建立
    25         } catch (SQLException e) {
    26             // TODO Auto-generated catch block
    27             e.printStackTrace();
    28         }
    29         return  con;//返回通道
    30     }
    31     
    32 }
     1 public class Opearte {
     2  
     3 public boolean getuser(String username,String password) throws SQLException
     4   {
     5       String  sql = "select password from user where id=?";
     6       Connection con = JdbcUtil.getConnection();
     7       PreparedStatement stat = con.prepareStatement(sql);//预处理sql语句生成可执行数据
     8       ResultSet rs = null; 
     9       stat.setString(1, username);
    10       rs = stat.executeQuery();
    11       while(rs.next())
    12       {
    13           if( password.equals(rs.getString("password")))
    14           {
    15               return true;
    16           }
    17       }
    18       return false;      
    19   }
    20 }
  • 相关阅读:
    java爬虫(jsoup)
    python之模块分类(六)
    Python之模块分类(五)
    python之模块分类(四)
    python之模块分类(三)
    Linux系统引导过程
    python之模块分类(二)
    linux 进程管理
    python之模块分类(一)
    python基础之模块导入
  • 原文地址:https://www.cnblogs.com/TheGCC/p/9133537.html
Copyright © 2011-2022 走看看