java JDBC系列教程之JDBC类的简析与JDBC的基础操作

网友投稿 403 2022-11-29


java JDBC系列教程之JDBC类的简析与JDBC的基础操作

什么是JDBC?

概念:java Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使用这套接口,真正执行的是jar驱动包中的实习类

使用一张图让大家更为直观的理解:

coder就是写这套接口的程序员

JDBC的使用步骤

1.导入驱动jar包

2.注册驱动

3.获取数据库连接对象

4.定义sql执行语句

5.获取sql语句执行对象

6.执行sql语句返回结果

7.处理结果

8.释放结果

代码实现

package JDBC;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

public class Main {

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

//注册驱动

Class.forName("com.mysql.jdbc.Driver");

//获取数据库连接对象

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/db2", "root", "1234");

//定义sql语句

String sql="update count set money=10000";

//定义statement执行语句

Statement statement = connection.createStatement();

//执行sql语句

int i = statement.executeUpdate(sql);

System.out.println("共"+i+"行受到影响");

//关闭资源

statement.close();

connection.close();

}

}

类详解

DriverManager:驱动管理对象

功能:

1.注册驱动,告诉程序应该使用哪个驱动的java包

static void registerDriver(Driver driver) :注册与给定的驱动程序 DriverManager 。

写代码使用:

Class.forName("com.mysql.jdbc.Driver");

查看jar包下的源码得:

package com.mysql.jdbc;

import java.sql.DriverManager;

import java.sql.SQLException;

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

public Driver() throws SQLException {

}

static {

try {

//注册驱动

DriverManager.registerDriver(new Driver());

} catch (SQLException var1) {

throw new RuntimeException("Can't register driver!");

}

}

}

我们可以发现在com.mysql.jdbc.Driver类中存在静态代码块,内部调用registerDriver(new Driver)注册驱动

mysql5之后可以省略注册驱动的步骤

获取数据库连接

方法:static connection getConnection(String sql,String password)

参数:

* url:指定连接的路径

* 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

* 例子:jdbc:mysql://localhost:3306/db3

* 细节:如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写 为:jdbc:mysql:///数据库名称

* user:用户名

* password:密码

**

Connection 数据库连接对象**

1.功能

1.1 获取sql语句的执行对象

*Statement createStatement()

* PreparedStatement prepareStatement(String sql)

1.2 管理事务

开启事务:setAutoCommit(boolean autocommit),调用改方法,参数为false时开启事务

提交事务:commit();

回滚事务:rollback()

1.3 statement:执行sql语句的对象

执行sql

1. boolean execute(String sql) :可以执行任意的sql 了解

2. int executeUpdate(String sql) :执行DML(insert、update、delete)语句、 DDL(create,alter、drop)语句

* 返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。

**1.4ResultSet:结果集对象,封装查询结果**

boolean next():游标向下移动一行,判断当前行是不是最后一行,如果是则返回false,如果不是则返回true

getXxx(参数):获取数据

* Xxx:代表数据类型 uDqKYkPahl 如: int getInt() , String getString()

* 参数:

1. int:代表列的编号,从1开始 如: getString(1)

2. String:代表列名称。 如: getDouble("balance")

使用步骤:

游标向下移动一行

判断是否有数据

获取数据

代码演示

package JDBC;

import java.sql.*;

public class Main {

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

//注册驱动

Class.forName("com.mysql.jdbc.Driver");

//获取数据库连接对象

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3309/db2", "root", "1234");

//定义sql语句

String sql="SELECT *FROM COUNT ";

//定义statement执行语句

Statement statement = connectionhttp://.createStatement();

//执行sql语句

ResultSet resultSet = statement.executeQuery(sql);

//循环输出

while(resultSet.next()){

int anInt = resultSet.getInt(1);

String string = resultSet.getString(2);

int anInt2 = resultSet.getInt(3);

System.out.println("ID:"+anInt);

System.out.println("name:"+string);

System.out.println("money:"+anInt2);

}

//关闭资源

statement.close();

connection.close();

}

}

结果


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java加载properties文件实现方式详解
下一篇:Java倒计时三种实现方式代码实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~