maven 创建项目 pom.xml导入依赖
第一个JDBC案例:
(1)创建maven的java项目
(2)pom.xml导入mysql数据库驱动jar包
(3)代码编写:
1、加载驱动
2、创建连接
3、创建操作SQL类
4、执行SQL,处理结果集
5、释放资源
java.sql.*
DriverManager.registerDriver()
DriverManager.getConnection()
Connection
Statement
ResultSet
1、JDBC API详解
1.1、DriverManager
加载驱动
DriverManager.registerDriver(new Driver())
mysql8.jar com.mysql.cj.jdbc.Driver
mysql5.jar com.mysql.jdbc.Driver
Class.forName("com.mysql.cj.jdbc.Driver"); //反射机制
创建连接
DriverManager.getConnection(url,username,password)
url地址连接mysql格式:
jdbc:mysql://ip地址:端口号/数据库名
jdbc:mysql://localhost:3306/db02
jdbc:mysql://…/db02
1.2、Connection
是数据库连接对象。
Statement<=createStatement() 创建执行SQL语句对象
拿到SQL语句就只能直接执行。
例:
Connection conn=DriverManager.getConnection(url,username,password);
Statement state=conn.createStatement();
PreparedStatement<=prepareStatement() 创建预编译执行SQL语句对象
拿到SQL语句可以先编译,在执行。
例:
Connection conn=DriverManager.getConnection(url,username,password);
PreparedStatement state=conn.prepareStatement();
1.3、Statement
直接执行写好的SQL语句。
executeQuery(sql) 只能执行DQL语句,select查询语句
例:
String sql=“select * from user”;
Connection conn=DriverManager.getConnection(url,username,password);
Statement state=conn.createStatement();
ResultSet rs=state.executeQuery(sql);
executeUpdate(sql) 只能执行DML语句,insert update delete语句
例:
String sql=“delete from user where id=1”;
Connection conn=DriverManager.getConnection(url,username,password);
Statement state=conn.createStatement();
state.executeUpdate(sql);
execute() 执行任意语句,返回true/false
例1:
String sql=“select * from user”;
Connection conn=DriverManager.getConnection(url,username,password);
Statement state=conn.createStatement();
Boolean isval=state.execute(sql);
注意:
isval为true,表示查询到了用户记录
isval为false,表示没有查询到用户记录
例2:
String sql=“delete from user where id=1”;
Connection conn=DriverManager.getConnection(url,username,password);
Statement state=conn.createStatement();
Boolean isval=state.execute(sql);
注意:
isval为false,增加语句、修改语句、删除语句没有结果集
1.4、ResultSet
对象,结果集
next() 方法:游标往下移一行,判断是否存在记录,存在就用get方法来取值
get方法:
getInt(int i) i表示的是位置 getInt(String name) name表示的是字段名
getString()
getDouble()
getBoolean()
getDate()
……
例:
String sql=“select * from user”;
Connection conn=DriverManager.getConnection(url,username,password);
Statement state=conn.createStatement();
ResultSet rs=state.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt(1));
System.out.println(rs.getInt(“id”));
}
案例:
package com.ww.jdbc.test;
import java.sql.*;
public class JdbcTest {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
//1、加载驱动
// DriverManager.registerDriver(new Driver());
Class.forName("com.mysql.cj.jdbc.Driver"); //反射机制
//2、连接数据库
//声明url,username,password
String url="jdbc:mysql://localhost:3306/db02";
String username="root";
String password="Root123456";
Connection connection=DriverManager.getConnection(url,username,password);
//3、操作数据库表
String sql="select * from user";
Statement statement=connection.createStatement();
ResultSet resultSet=statement.executeQuery(sql);
//循环打印出所有记录(结果集)
while(resultSet.next()){
System.out.print(resultSet.getObject("id")+" ");
System.out.print(resultSet.getObject("username")+" ");
System.out.print(resultSet.getObject("nickname")+" ");
System.out.print(resultSet.getObject("password")+" ");
System.out.println();
}
//4、释放资源(先创建,后关闭)
resultSet.close();
statement.close();
connection.close();
}
}