第一个JDBC程序
1.创建测试所用的数据库:
CREATE DATABASE JdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
USE JdbcStudy;
CREATE TABLE `users`(
`id` INT PRIMARY KEY,
`NAME` VARCHAR(40),
`PASSWORD` VARCHAR(40),
`email` VARCHAR(60),
`birthday` DATE
);
INSERT INTO `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`) VALUES
(1,'ALita','123456','Alita@qq.com','2022-12-04'),
(2,'Edwin','456798','Edwin@qq.com','2000-12-04'),
(3,'Jarvis','789123','Jarvis@qq.com','2000-12-04');
select * from user;
2.导入数据库驱动(导入Jar包)
将mysql-connertor-java-5.x.xx.jar文件夹放在一个新创建的lib文件夹下,然后再
点击Project Structure,进入下一个界面:
点击dependencis后点击Scope旁边的“+”,添加Jar包的路径,然后apply即可。
3.编写测试代码
package com.Edwin.lession01;
import javax.swing.plaf.nimbus.State;
import java.sql.*;
/**我的第一个JDBC程序
* @author Edwin D
* @date 2020.5.20 下午 4:10
*/
public class JDBCFristDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1.加载驱动。
Class.forName("com.mysql.jdbc.Driver");//固定写法。
// 2.连接信息,用户信息和URL
// useUnicode = true 设定中文编码
// &characterEncoding = utf8 支持中文字utf8
// &useSSL = true 解决一些异常。
String url = "jdbc:mysql://localhost:3306/jdbcStudy?useUnicode = true&characterEncoding = utf8&useSSL = true";
String username = "root";
String password = "1234";
// 3.Success连接数据库对象,此处connection是代表数据库的对象
Connection connection = DriverManager.getConnection(url, username, password);
// 4.执行Sql的对象,此处statement是执行sql的对象
Statement statement = connection.createStatement();
// 5.执行Sql的对象去执行Sql,可能存在结果,查看返回结果。
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql);
// 返回结果集,其中封装了我们全部查出来的结果
while (resultSet.next()) {
System.out.println("id = " + resultSet.getObject("id"));
System.out.println("name = " + resultSet.getObject("name"));
System.out.println("password = " + resultSet.getObject("password"));
System.out.println("email = " + resultSet.getObject("email"));
System.out.println("birthday = " + resultSet.getObject("birthday"));
System.out.println("+_+-+_+-+_+-+_+-+_+-+_+-");
}
// 6.释放连接
resultSet.close();
statement.close();
connection.close();
}
}
输出效果:
步骤总结:
1.加载驱动
2.连接数据库:DriverManner
3.获取执行Sql的对象:Statement
4.获取返回的结果集
5.释放资源
各个模块作用
DriverManager
1.加载驱动。
// 原本的加载驱动写法:
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 原本的方法中调用了IDEA里写的注册Driver的方法,会造成两次重复注册,因此不推荐
Class.forName("com.mysql.jdbc.Driver");//固定写法。
URL
2.连接信息,用户信息和URL
// useUnicode = true 设定中文编码
// &characterEncoding = utf8 支持中文字utf8
// &useSSL = true 解决一些异常。
String url = "jdbc:mysql://localhost:3306/jdbcStudy";
?useUnicode = true&characterEncoding = utf8&useSSL = true
// MySQL 默认的端口号:3306
// 格式:协议://主机:端口号/数据库名?参数1&参数2&参数3;
Connection
代表数据库的对象
3.Success连接数据库对象,此处connection是代表数据库的对象
Connection connection = DriverManager.getConnection(url, username, password);
connection.commit();//事务提交。
connection.getAutoCommit();//数据库自动提交。
connection.rollback();//事务提交。
Statement
执行Sql的对象。
4.执行Sql的对象,此处statement是执行sql的对象
Statement statement = connection.createStatement();
statement.execute(); //执行任何Sql,但是效率会低一点。
statement.executeQuery(); //查询操作,返回ResultSet结果集
statement.executeUpdate();//插入,更新,删除都用这个,返回一个受影响的行数。
ResultSet
5.执行Sql的对象去执行Sql,可能存在结果,查看返回结果。
String sql = "select * from users";
ResultSet resultSet = statement.executeQuery(sql);
// 返回结果集,其中封装了我们全部查出来的结果
resultSet.getObject();
// 在不知道类型的情况下使用
resultSet.getInt();
resultSet.getFloat();
resultSet.getDouble();
resultSet.getString();
resultSet.getDate();
// 在知道数据类型的情况下使用,效果更佳。
遍历,指针
resultSet.beforeFirst(); // 移动到最前面
resultSet.afterLast(); // 移动到最后面
resultSet.next(); //移动到下一个数据
resultSet.previous(); //移动到前一 -行
resultSet.absolute(row); //移动到指定行
释放资源
6.释放连接
resultSet.close();
statement.close();
connection.close();
参考文献
《【狂神说Java】MySQL最新教程通俗易懂》
视频连接:https://www.bilibili.com/video/BV1NJ411J79W
2020.05.24