目录
一、JDBC的概念
二、JDBC的使用
(1)数据库驱动包的下载和导入操作
(2)JDBC的操作实现(插入insert into为例)
三、Java的JDBA实现(增、删、改、查全部代码)
(一)增(insert into)
(二)删(delete)
(三)改(update)
(四)查 (select)
一、JDBC的概念
JDBC的中文意思为Java数据库连接,英文为Java Database Connectivity。
JDBC是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由java.sql.*,javax.sql.*包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。
二、JDBC的使用
(1)数据库驱动包的下载和导入操作
1、准备数据库驱动包,并添加到项目的依赖中
数据库驱动包可以在Maven中央仓库(官网链接:https://mvnrepository.com))下载自己电脑安装数据库相对应得版本数据库驱动,以我自己安装的MySQL5.7版本为例
进入Maven中央仓库官网后,在搜索框中输入自己安装的数据库版本进行搜索,如下图
在这里我们选择第二个:MySQL Connector Java
在选择完第二个:MySQL Connector Java ,点击进去之后在出现的界面中选择与自己安装的数据库版本相近的驱动包。
在出现的最前面的数字即为版本号,后面的几个数字可以不用理会,以MySQL5系列版本为例,可以选择5.1下面任意一个版本数据库驱动
2、在项目中新创建文件夹lib,并将数据库驱动包mysql-connector-java-5.1.47.jar复制粘贴到lib中
3、将该驱动包标记成项目的库:右键lib--->选择Add as Library ,到这里就把数据库驱动包成功导入到项目中了
(2)JDBC的操作实现(插入insert into为例)
JDBC的操作实现总共分为如下几个步骤:
1、创建并初始化一个数据库源
//1、创建并初始化一个数据库源
DataSource dataSource = new MysqlDataSource();
//xzf为自己建立的数据库名字
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/xzf?characterEncoding=utf8&useSSL=false");
//此处root为数据库的登录用户,默认不用理会
((MysqlDataSource)dataSource).setUser("root");
//自己安装数据库的登录密码
((MysqlDataSource)dataSource).setPassword("xzf1314520");
2、和数据库服务器建立连接
//2、和数据库服务器建立连接
Connection connection= dataSource.getConnection();
注意:在使用Connection导入包时,记得导入java.sql这个包
3、构造SQL语句
构造sql语句有2种方法,第一种方法是直接写插入数据的SQL语句,这种方法相当于把SQL语句写死了,另一种方法是控制台输入插入的数据,用“?”来暂时代替插入数据,比起第一种方法,第二种比较灵活。
第一种:
//3、构造SQL语句
String str="insert into student values(1,'小黄'),(2,'小红')";
PreparedStatement statement= connection.prepareStatement(str);
第二种:
//3、构造SQL语句
String str ="insert into student values(?,?)";
Scanner scanner =new Scanner(System.in);
int id = scanner.nextInt();
String name = scanner.next();
PreparedStatement statement= connection.prepareStatement(str);
statement.setInt(1,id);
statement.setString(2,name);
4、执行SQL语句
//4、执行SQL语句
int a=statement.executeUpdate();
System.out.println("a="+ a);
注意点:insere、delete、update 此处都使用executeUpdate,返回的是一个int类型 select 此处使用的是executeQuery,返回的是一个ResultSet
5、释放资源
注意点:后创建先释放
//5、释放资源
statement.close();
connection.close();
三、Java的JDBA实现(增、删、改、查全部代码)
增、删、改这三种方式代码只有执行SQL语句命令行不同,其他全部相同
(一)增(insert into)
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCtest {
public static void main(String[] args) throws SQLException {
//1、创建并初始化一个数据库源
DataSource dataSource = new MysqlDataSource();
//xzf为自己建立的数据库名字
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/xzf?characterEncoding=utf8&useSSL=false");
//此处root为数据库的登录用户,默认不用理会
((MysqlDataSource)dataSource).setUser("root");
//自己安装数据库的登录密码
((MysqlDataSource)dataSource).setPassword("xzf1314520");
//2、和数据库服务器建立连接
Connection connection= dataSource.getConnection();
//3、构造SQL语句
//方法一: String str="insert into student values(1,'小黄'),(2,'小红')";
String str ="insert into student values(?,?)";
Scanner scanner =new Scanner(System.in);
int id = scanner.nextInt();
String name = scanner.next();
PreparedStatement statement= connection.prepareStatement(str);
statement.setInt(1,id);
statement.setString(2,name);
//4、执行SQL语句
int a=statement.executeUpdate();
System.out.println("a="+ a);
//5、释放资源
statement.close();
connection.close();
}
}
(二)删(delete)
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCtest {
public static void main(String[] args) throws SQLException {
//1、创建并初始化一个数据库源
DataSource dataSource = new MysqlDataSource();
//xzf为自己建立的数据库名字
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/xzf?characterEncoding=utf8&useSSL=false");
//此处root为数据库的登录用户,默认不用理会
((MysqlDataSource)dataSource).setUser("root");
//自己安装数据库的登录密码
((MysqlDataSource)dataSource).setPassword("xzf1314520");
//2、和数据库服务器建立连接
Connection connection= dataSource.getConnection();
//3、构造SQL语句
String str="delete from student where id=1";
PreparedStatement statement= connection.prepareStatement(str);
//4、执行SQL语句
int a=statement.executeUpdate();
System.out.println("a="+ a);
//5、释放资源
statement.close();
connection.close();
}
}
(三)改(update)
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCtest {
public static void main(String[] args) throws SQLException {
//1、创建并初始化一个数据库源
DataSource dataSource = new MysqlDataSource();
//xzf为自己建立的数据库名字
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/xzf?characterEncoding=utf8&useSSL=false");
//此处root为数据库的登录用户,默认不用理会
((MysqlDataSource)dataSource).setUser("root");
//自己安装数据库的登录密码
((MysqlDataSource)dataSource).setPassword("xzf1314520");
//2、和数据库服务器建立连接
Connection connection= dataSource.getConnection();
//3、构造SQL语句
String str="update student set name='小军' where id=2";
PreparedStatement statement= connection.prepareStatement(str);
//4、执行SQL语句
int a=statement.executeUpdate();
System.out.println("a="+ a);
//5、释放资源
statement.close();
connection.close();
}
}
(四)查 (select)
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCselect {
public static void main(String[] args) throws SQLException {
//1、创建并初始化一个数据库源
DataSource dataSource = new MysqlDataSource();
//xzf为自己建立的数据库名字
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/xzf?characterEncoding=utf8&useSSL=false");
//此处root为数据库的登录用户,默认不用理会
((MysqlDataSource)dataSource).setUser("root");
//自己安装数据库的登录密码
((MysqlDataSource)dataSource).setPassword("xzf1314520");
//2、和数据库服务器建立连接
Connection connection = dataSource.getConnection();
//3、构造SQL语句
String sql ="select * from student";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//4、执行SQL语句
ResultSet resultSet = preparedStatement.executeQuery();
//5、遍历集合
while(resultSet.next()){
int id= resultSet.getInt("id");
String name=resultSet.getString("name");
System.out.println("id="+id+",name="+name);
}
//6、释放资源
resultSet.close();
preparedStatement.close();
connection.close();
}
}