JDBC

Java通过JDBC实现对数据库的访问,是Java数据库连接(Aava DataBase Connectivity)的简称

JDBC组成要素

JDBC API:

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

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

ResultSet(结果集)接口:负责保存和处理Statement执行后所产生的查询结果

PreparedStatement接口:Statement的子接口,由Connection产生,执行SQL语句,有高安全性、高性能、高可读性、高可维护性的优点

JDBC Driver Manager(驱动程序管理器) :DriverManager类:装载驱动程序,并为创建新的数据库连接提供支持

JDBC驱动

访问步骤:1.加载JDBC驱动

                            Class.forName(“驱动名称”)

                2.与数据库建立连接

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

                3.发送SQL语句,并返回结果

                            Statement stmt = con.createStatement();

                            ResultSet rs = stmt.execteQuery(“SELECT id,name from master”)

                4.返回结果

                            While(rs.next()){

                                   int id=rs.getInt(“id”);

                                   String name = rs.getString(“name”);

                                   System.out.println(id+”  ”+name)

}

两种常用驱动方式:

       使用JDBC-ODBC桥连方式

              桥连方式就是将JDBC API的调用转换为另一组数据库连接(ODBC)API的调用

      

       使用纯JAVA方式连接数据库

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Scanner;

/**

 * 添加数据

 * @author MrGuo

 *

 */

public class Test2 {

public static void main(String[] args) throws SQLException {

    //构建连接对象

    Connection con = getConnection();

    //构建命令对象,发送SQL指令,并且执行

    Statement stat = con.createStatement();

    System.out.println("年级名称");

    Scanner input = new Scanner(System.in);

    String gname=input.next();

    String sql = "insert into grade(gname) values('"+gname(字段名)+"')";

    //直接调度命令方法

    int count = stat.executeUpdate(sql);

    if(count>0) {

        System.out.println("add ok!");

    }

    //关闭资源

    stat.close();

    con.close();

}

 

private static Connection getConnection() throws SQLException {

    // TODO Auto-generated method stub

    String url="jdbc:mysql://localhost:3306/数据库名称";

    String user = "账号";

    String password="密码";

    //驱动字符串

    String driver = "com.mysql.jdbc.Driver";

    Connection con = DriverManager.getConnection(url, user, password);

    System.out.println("connect ok ");

    return con;

}

}

Connection常用接口方法

方法名称

作用

void close()

立即释放此Connection对象的数据库和JDBC资源

Statement createStatement()

创建一个Statement对象来将SQL语句发送到数据库

PreparedStatement preareStatement(String sql)

创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库

boolean isClosed()

查询此Connection对象是否已经被关闭

Statement接口

主要用于将SQL语句发送到数据库中

常用方法

方法名称

作用

ResultSet executeQuery(String sql)

可以执行SQL查询并获取ResultSet对象

int executeUpdate(String sql)

可以执行插入、删除、更新的操作,返回值是执行该操作所影响的行数

boolean execute(String sql)

可以执行任意SQL语句,若结果为ResultSet对象,则返回true;若其为更新计数或者不存在任何结果,则返回false

ResultSet接口常用方法及作用

方法名称

作用

boolean next()

将光标从当前位置向下移动一行

boolean previous()

将光标从当前位置向上移动一行

void close()

关闭ResultSet对象

int getInt(int columnIndex)

以int的形式获取结果集当前行指定列号的值

int getInt(String columnLabel)

以int的形式获取结果集当前行指定列名的值

float getFloat(int columnIndex)

以float的形式获取结果集当前行指定列号的值

float getFloat(String columnLabel)

以float的形式获取结果集当前行指定列名的值

String getString(int columnIndex)

以String的形式获取结果集当前行指定列号的值

String getString(String columnIndex)

以String的形式获取结果集当前行指定列名的值

int getRow()

得到光标当前所值行的行号

boolean absolute(int row)

光标移动到row指定的行

PreparedStatement

方法名称

作用

boolean exectute()

在此PreparedStatement对象中执行SQL语句,该语句可以是任何SQL语句。如结果是Result对象,则返回true,如结果是更新计数或没有结果,则返回false

ResultSet executeQuery()

在此PreparedStatement对象中执行SQL查询,并返回该查询生成的ResultSet对象

int executeUpdate()

在此PreparedStatement对象中执行SQL语句,该语句必须是一个DML语句,如INSERT、UPDATE或DELETE语句;或者是无返回内容的SQL语句,如DDL语句,返回值是执行该操作所影响的行数

void setInt(int index,int x)

将指定参数设置为给定Java int 值。设置其他类型参数的方法与此类似,如setFloat(int index,flost x)、setDouble(int index,double x)等

void setObject(int index,Object x)

使用给定对象设置指定参数的值

原文地址:https://www.cnblogs.com/ACCPGuo/p/9354427.html