JDBC:
1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库
* JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2. 快速入门:
* 步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
2.右键-->Add As Library
2. 注册驱动
3. 获取数据库连接对象 Connection
4. 定义sql
5. 获取执行sql语句的对象 Statement
6. 执行sql,接受返回结果
7. 处理结果
8. 释放资源
* 代码实现:
//1. 导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
//4.定义sql语句
String sql = "update account set balance = 500 where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
- JDBC快速入门
*/
public class JdbcDemo1 {
public static void main(String[] args) throws Exception {
//1. 导入驱动jar包
//2.注册驱动
// Class.forName("com.mysql.jdbc.Driver");
//3.获取数据库连接对象
// Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root");
Connection conn = DriverManager.getConnection("jdbc:mysql:///db3", "root", "root");
//4.定义sql语句
// String sql = "update account set balance = 2000 where id = 1";
String sql = "update account set balance = 2000";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
}
}
一些方法的解释
getConnection
public static Connection getConnection(String url,
String user,
String password)
throws SQLException尝试建立与给定数据库URL的连接。 DriverManager尝试从一组已注册的JDBC驱动程序中选择适当的驱动程序。
注意:如果user或password财产也被指定为部分url ,它是实现定义哪个值将优先考虑。 为了最大可移植性,应用程序应仅指定一次属性。
参数
url - 形式为 jdbc:subprotocol:subname的数据库网址
user - 正在连接的数据库用户
password - 用户密码
结果
与URL的连接
异常
SQLException - 如果发生数据库访问错误或url是 null
SQLTimeoutException - 当驱动程序确定已经超过了 setLoginTimeout方法指定的超时值,并且至少尝试取消当前的数据库连接尝试
createStatement
Statement createStatement()
throws SQLException创建一个Statement对象,用于将SQL语句发送到数据库。 没有参数的SQL语句通常使用Statement对象执行。 如果相同的SQL语句执行了很多次,那么使用PreparedStatement对象可能会更有效。
使用返回的Statement对象创建的结果集将默认为TYPE_FORWARD_ONLY ,并发级别为CONCUR_READ_ONLY 。 创建的结果集的可保持性可以通过调用getHoldability()来确定 。
结果
一个新的默认 Statement对象
异常
SQLException - 如果发生数据库访问错误或在闭合连接上调用此方法
executeUpdate
int executeUpdate(String sql)
throws SQLException执行给定的SQL语句,这可能是INSERT , UPDATE ,或DELETE语句,或者不返回任何内容,如SQL DDL语句的SQL语句。
注意:此方法无法在PreparedStatement或CallableStatement 。
参数
sql -一个SQL数据操纵语言(DML)语句,如INSERT , UPDATE或DELETE ; 或不返回任何内容的SQL语句,例如DDL语句。
结果
(1)SQL数据操作语言(DML)语句的行计数或(2)0不返回的SQL语句
异常
SQLException - 如果发生数据库访问错误,此方法在关闭的 Statement上调用,给定的SQL语句生成一个 ResultSet对象,该方法在 PreparedStatement或 CallableStatement
SQLTimeoutException - 当驱动程序确定已经超过 setQueryTimeout方法指定的超时值,并且至少尝试取消当前正在运行的 Statement
查看源码
Ctrl + Shift+i 出现类似于预览的小窗口
Ctrl + Enter (接上步)完全打开源码
Ctrl + 鼠标左键 一步到位打开源码 = Ctrl + Shift+i –>Ctrl + Enter