厦门网站建设高级课程,大美工设计网站官网,js特效演示网站,扶贫832网络销售平台文章目录概念基本使用步骤详解各个对象DriverManager注册驱动获取数据库连接Connection获取执行 SQL 语句的对象事务管理Statement执行 SQL 语句ResultSetPreparedstatement概念
Java DataBase Connectivity Java 数据库连接#xff0c;即使用 Java 语言操作数据库
JDBC本质…
文章目录概念基本使用步骤详解各个对象DriverManager注册驱动获取数据库连接Connection获取执行 SQL 语句的对象事务管理Statement执行 SQL 语句ResultSetPreparedstatement概念
Java DataBase Connectivity Java 数据库连接即使用 Java 语言操作数据库
JDBC本质 其实是官方(sun公司) 定义的一套操作所有关系型数据库的规则即接口。各个数据库厂商去写实现类来实现这套接口并将这些实现类打成 jar 包称之为数据库驱动包。我们可以使用这套接口(JDBC) 编程而真正执行的代码是数据库驱动 jar 包中的实现类。
基本使用步骤 // 1.注册驱动,即将驱动类加载进内存中
Class.forName(com.mysql.jdbc.Driver);
// 2.获取数据库连接对象
Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/test, root, root);
// 3.定义SQL语句
String sql update account set balance 500 where id 1;
// 4.获取执行SQL的对象Statement
Statement stmt conn.createStatement();
// 5.执行SQL语句
int i stmt.executeUpdate(sql);
// 6.处理结果
System.out.println(i);
// 7.释放资源
stmt.close();
conn.close();详解各个对象
DriverManager
驱动管理对象主要功能用来注册驱动、获取数据库连接。
注册驱动
注册驱动就是告诉程序使用哪个数据库驱动包。
注册驱动时我们写的代码为
Class.forName(com.mysql.jdbc.Driver);但是类 Driver 中存在一个静态代码块为
static {try {DriverManager.registerDriver(new Driver());} catch (SQLException var1) {throw new RuntimeException(Cant register driver!);}}所以实际上是调用类 DriverManager 的静态方法 registerDriver 注册驱动的。
在 MySQL 5.0 版本之后可以不必手动注册驱动包因为 MySQL JDBC 驱动 JAR 包里面有一个配置文件如果没有注册驱动包会自动读取该文件然后自动完成注册
获取数据库连接
Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/test, root, 123456);其中 URL 的语法格式jdbc:mysql://ip地址(域名):端口号/数据库名称访问本地数据库可以简写为jdbc:mysql:///数据库名称即其中的localhost:3306 可以省略掉。
Connection
数据库连接对象。
获取执行 SQL 语句的对象
Statement createStatement()
PreparedStatement prepareStatement(String sql)事务管理
设置是否自动提交事务void setAutoCommit(boolean autoCommit) 提交事务void commit() 回滚事务rollback()
Statement
用于执行静态 SQL 语句并返回它所生成结果的对象
执行 SQL 语句
int executeUpdate(String sql)执行 DML 语句即 insert、update、delete 等语句DDL 语句create、drop、alter。 返回值是指影响的行数。大于0表示执行成功否则执行失败。
ResultSet executeQuery(String sql)执行 DQL 语句。
ResultSet
结果集对象用来封装查询结果 next()游标向下移动一行并且判断当前行是否结果集最后一行的后面如果不是返回 true是则返回 false getXxx(参数)获取数据其中参数可以是整数类型的 columnIndex表示列的编号从 1 开始也可以是字符串类型的 columnLabel表示列的名称。 例如int getInt(1)、String getString(“name”)
扩展知识 迭代器使用 hasNext() 和 next() 来迭代遍历数据
Preparedstatement
表示预编译的 SQL 语句的对象。SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
预编译的 SQL 语句中的参数使用问号?作为占位符然后通过调用方法给这些占位符赋值从而构建完整的 SQL 语句。
Preparedstatement 对象可以解决 SQL 语句注入的问题更加安全且效率更好。
参考范例
// 定义sql语句
String sql select * from user where account_name ? and password ?;
// 获取语句执行对象
pstmt conn.prepareStatement(sql);
// 给预编译的sql语句参数赋值
pstmt.setString(1, accountName);
pstmt.setString(2, password);
// 执行sql语句
rs pstmt.executeQuery();步骤: 1.导入驱动jar包mysql -connector- java-5.1.37-bin.jar 2.注册驱动 3.获取数据库连接对象Connection 4.定义sql 注意: sql的参数使用?作为占位符。 如: select * from user where account_name ? and password ? 5.获取执行sql语句的对象
Preparedstatement conn.prepareStatement(String sql)
6.给?赋值: 方法: setxxx(参数1 , 参数2) 参数1?的位置编号从1开始 参数2?的值 7.执行sql接收返回结果不需要传递sql语句 8.处理结果 9.释放资源