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:代表数据类型 如: 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 = connection.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(); } }
结果
到此这篇关于java JDBC系列教程之JDBC类的简析与JDBC的基础操作的文章就介绍到这了,更多相关java JDBC类与操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IntelliJ idea 如何生成动态的JSON字符串(步骤详解)
这篇文章主要介绍了IntelliJ idea 如何生成动态的JSON字符串,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08利用hadoop查询两两之间有共同好友及他俩的共同好友都是谁
一想到要实现求共同好友的功能,很多人都会想到redis来实现。但是redis存储和数据和计算时需要耗费较多的内存资源。所以文本将介绍另一种方法,即利用Hadoop中的MapReduce来实现,感兴趣的可以了解一下2022-01-01Java中的System.arraycopy()浅复制方法详解
这篇文章主要介绍了Java中的System.arraycopy()浅复制方法详解,Java数组的复制操作可以分为深度复制和浅度复制,简单来说深度复制,可以将对象的值和对象的内容复制;浅复制是指对对象引用的复制,需要的朋友可以参考下2023-11-11基于strict-origin-when-cross-origin问题的解决
这篇文章主要介绍了基于strict-origin-when-cross-origin问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03解决spring @ControllerAdvice处理异常无法正确匹配自定义异常
这篇文章主要介绍了解决spring @ControllerAdvice处理异常无法正确匹配自定义异常的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
最新评论