zoukankan      html  css  js  c++  java
  • JDBC(java数据库连接)(一)

    JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力

    JDBC  API 是Sun公司提供的

    内容:供程序员调用的接口,集成在Java.sql和javax.sql包中,

    如:

    DriverManager

    Connection接口

    Statement接口

    ResultSet接口

     

    DriverManager:是Sun公司提供

                   作用:管理各种不同的JDBC驱动

     

    JDBC驱动:是数据库厂商提供

               作用:负责连接各种不同数据库

    Connection:负责连接数据库并且承担传送数据的任务

    Statement:由Connection产生,负责执行SQL语句

    ResultSet:负责保存Statement执行后产生的查询结果

    PreparedStatement接口:Statement接口的子接口,也由Connection产生.同样负责执行sql语句.

    使用statement安全性差,存在SQL注入

    PreparedStatement接口:继承于Statement接口

    与Statement接口相比,具有高安全性,高性能,高可读性和高维护性的优点。

    使用Java方式连接数据库:

    由JDBC驱动直接访问数据库

    优点:100% Java,快又可跨平台

    缺点:访问不同的数据库需要下载专用的JDBC驱动

     

    JDBC访问数据库的步骤

    1)加载JDBC驱动

    使用Class,forName()方法将给定的JDBC驱动类加载到java虚拟机中

    eg:    Class.forName("JDBC驱动类的名称");

    2)与数据库建立连接

    DriverManager类是JDBC的管理层.DrivernManager类跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接.

    eg:    Connection con=DriverManager.getConnection(数据库连接字符串, 数据库用户名, 密码);

    创建Statement或preparedStatement对象

    3)发送SQL语句,并得到返回结果

    一旦建立连接,就使用该连接创建Statement接口的对象,并将sql语句传递给它所连接的数据库

     Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute   

    ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。  

    int executeUpdate(String sqlString):用于执行INSERT、UPDATE或   

    DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等   

    execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 语句。   

       eg :  

    ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;   

    int count = stmt.executeUpdate("INSERT INTO ...") ;  

    boolean flag = stmt.execute(String sql) ;   

    4)处理返回结果

       两种情况:   

    执行增加  修改  更新返回的是本次操作影响到的记录数。   

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

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

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

     

     

    import java.sql.*;
    public class JDBC {
    public static final String url="jdbc:sqlserver://localhost:1433;databaseName=MySchool";
    public static final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    public static final String username="sa";
    public static final String password="";
    public static Connection getConnection() throws Exception{
    //注册驱动
    Class.forName(driver);
    Connection con=DriverManager.getConnection(url, username, password);
    return con;

    }

    }

    import java.sql.*;

    /**
    * 连接数据库执行增加 修改 删除命令
    * @author Administrator
    *
    */
    public class Test {
    public static void main(String[] args) throws Exception {
    //连接数据库
    Connection con=JDBC.getConnection();
    /**
    * 准备sql语句 添加
    */
    //String sql="insert into Student values(4,'ni')";
    /**
    * 修改
    */
    //String sql="update Student set Name='张飞' where Name='ni'";
    /**
    * 删除
    */
    String sql="delete from Student where No=2 ";
    //创建命令对象
    Statement stmt = con.createStatement();
    //返回受影响的行数
    int count = stmt.executeUpdate(sql);
    if(count>0){
    System.out.println("成功");
    }else{
    System.out.println("失败");
    }
    }

    }

  • 相关阅读:
    移植nand驱动补缺:make mrproper与make clean以及make distclean,find/grep. makefile
    repo使用
    git使用总结
    notepade++使用
    linux内核源代码、配置与编译
    linux内核介绍
    块设备
    PHP和javascript中url编码解码详解
    python中的类方法、静态方法、对象方法
    webpack+vue中安装使用vue-layer弹窗插件
  • 原文地址:https://www.cnblogs.com/sujulin/p/6670339.html
Copyright © 2011-2022 走看看