一、创建一个普通Java项目
1、打开IDEA新建项目:点击File -> New -> Project
2、选择SDK是自己的JDK 1.8,然后next依次操作。
3、建包,编写Main.java类
4、新建目录用于存放实现JDBC需要的jar包
查看自己的MySQL版本在命令行窗口(cmd)输入命令:
MySQL版本是 5.6 和 5.7 的下载下面的mysql-connector-java-5.1.5.jar
链接: https://pan.baidu.com/s/1LiWU8N_yYalc2rn_pgFxQA 提取码: pki5
MySQL版本是8.0 的下载下面的mysql-connector-j-8.1.0.jar
链接: https://pan.baidu.com/s/1R07rKm-XbsIbztv0LWvQMw 提取码: 653y
5、在项目中配置导入的jar包,添加一个jar包作为当前模块的依赖项。
二、配置数据库连接信息
1、创建一个标准Account类
2、在自己的数据库中新建t_account表并设置和Account类相应的字段。插入一些数据。
3、编写Main类,配置数据库连接。
【这些代码一般是固定模板,就是与数据库建立连接。不同的是3.编写的SQL语句、5.执行SQL语句的方法和6.处理结果集部分的内容】
public class Main {
public static void main(String[] args) {
//配置数据源信息
//“jdbc:mysql://” 表示使用JDBC协议连接MySQL数据库
//“localhost:3306” 主机地址+端口号
//“/qcby” 数据库名
//“?”后面的是一些编码设置
String url = "jdbc:mysql://localhost:3306/qcby?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
try {
//1、加载驱动——显式注册
DriverManager.registerDriver(new Driver());
//1、加载驱动——隐式注册——反射加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection connection = DriverManager.getConnection(url, username, password);
//3、编写SQL语句
String sql = "";
//4、获取执行SQL语句的执行对象
Statement statement = connection.createStatement();
//5、执行SQL语句,获取结果集
//6、处理结果集
//7、关闭资源,结束程序
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4、 完善模板,先编写SQL语句,再调用执行对象的方法执行SQL语句,最后处理结果集获取查询结果。
public class Main {
public static void main(String[] args) {
//配置数据源信息
String url = "jdbc:mysql://localhost:3306/qcby?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
try {
//1、加载驱动——显式注册
DriverManager.registerDriver(new Driver());
//1、加载驱动——隐式注册——反射加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection connection = DriverManager.getConnection(url, username, password);
//3、编写SQL语句
String sql = "select * from t_account";
//4、获取执行SQL语句的执行对象
Statement statement = connection.createStatement();
//5、执行SQL语句,获取结果集
ResultSet resultSet = statement.executeQuery(sql);
//6、处理结果集
//打印查询结果
while(resultSet.next()){
Account account = new Account();
account.setId(resultSet.getInt("id"));
account.setUsername(resultSet.getString("username"));
account.setMoney(resultSet.getDouble("money"));
System.out.println(account);
}
//7、关闭资源,结束程序
//使用ResultSet需要在程序结束时调用其close()方法关闭资源
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
为什么使用statement.exectueQuery()方法需要使用ResultSet类接收?
通过查询此方法可知返回的数据类型是ResultSet类型,所以Main类中需要用ResultSet类接收返回的参数。如下所示:
三、实现增加操作
1、配置数据库连接,直接用模板
public class Main {
public static void main(String[] args) {
//配置数据源信息
String url = "jdbc:mysql://localhost:3306/qcby?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
try {
//1、加载驱动——显式注册
DriverManager.registerDriver(new Driver());
//1、加载驱动——隐式注册——反射加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection connection = DriverManager.getConnection(url, username, password);
//3、编写SQL语句
String sql = "";
//4、获取执行SQL语句的执行对象
Statement statement = connection.createStatement();
//5、执行SQL语句,获取结果集
//6、处理结果集
//7、关闭资源,结束程序
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2、编写SQL语句,更改执行SQL语句的方法,编写处理结果集部分。
public class Main {
public static void main(String[] args) {
//配置数据源信息
String url = "jdbc:mysql://localhost:3306/qcby?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
try {
//1、加载驱动——显式注册
DriverManager.registerDriver(new Driver());
//1、加载驱动——隐式注册——反射加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection connection = DriverManager.getConnection(url, username, password);
//3、编写SQL语句
String sql = "insert into t_account(id,username,money) values(null,'河金',10000)";
//4、获取执行SQL语句的执行对象
Statement statement = connection.createStatement();
//5、执行SQL语句,获取结果集
int row = statement.executeUpdate(sql);
//6、处理结果集
if(row>0){
System.out.println("插入成功");
}else{
System.out.println("插入失败");
}
//7、关闭资源,结束程序
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3、运行,查看数据库信息
四、实现修改操作
1、配置数据库连接,用模板
public class Main {
public static void main(String[] args) {
//配置数据源信息
String url = "jdbc:mysql://localhost:3306/qcby?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
try {
//1、加载驱动——显式注册
DriverManager.registerDriver(new Driver());
//1、加载驱动——隐式注册——反射加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection connection = DriverManager.getConnection(url, username, password);
//3、编写SQL语句
String sql = "";
//4、获取执行SQL语句的执行对象
Statement statement = connection.createStatement();
//5、执行SQL语句,获取结果集
//6、处理结果集
//7、关闭资源,结束程序
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2、编写SQL语句、调用方法执行SQL、处理返回结果。
public class Main {
public static void main(String[] args) {
//配置数据源信息
String url = "jdbc:mysql://localhost:3306/qcby?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
try {
//1、加载驱动——显式注册
DriverManager.registerDriver(new Driver());
//1、加载驱动——隐式注册——反射加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection connection = DriverManager.getConnection(url, username, password);
//3、编写SQL语句
String sql = "update t_account set username='李四' where username='河金'";
//4、获取执行SQL语句的执行对象
Statement statement = connection.createStatement();
//5、执行SQL语句,获取结果集
int row = statement.executeUpdate(sql);
//6、处理结果集
if(row>0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
//7、关闭资源,结束程序
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
3、运行查看数据库
五、实现删除操作
删除操作和增加、修改一样,只需要修改SQL语句即可,他们都使用的是statement.executeUpdate()方法。
六、总结
通过上述示例的增删改查操作,可以知道实现JDBC就是(加载驱动、获取连接、编写SQL、获取执行对象、执行SQL语句获取结果集、处理结果集、关闭资源)。其中的配置数据库连接部分是固定的,只需要更改(编写SQL、执行SQL语句获取结果集、处理结果)几个部分即可。