创建测试数据库
CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;
USE jdbcStudy;
CREATE TABLE users(
id INT PRIMARY KEY,
name VARCHAR(40),
passwd VARCHAR(40),
email VARCHAR(40),
birthday DATE
);
INSERT INTO users(id,name,passwd,email,birthday)
VALUES(1,'aa','12345','aa@qq.com','1991-01-01'),
(2,'bb','12345','bb@qq.com','1992-01-01'),
(3,'cc','12345','cc@qq.com','1993-01-01');
1、创建一个普通项目
2、导入数据库驱动
3、编写测试代码
package com.sw.kuangshen;
import java.sql.*;
/**
* @Author suaxi
* @Date 2020/11/7 10:58
*/
public class jdbcStudyDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.用户信息和url
//useUnicode=true&characterEncoding=utf8&useSSL=true
//支持中文编码 设置字符集为utf-8 使用安全的连接
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";
//3.连接成功,数据库对象
Connection connection = DriverManager.getConnection(url, username, password);
//4.执行SQL的对象 Statement
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("pwd="+resultSet.getObject("passwd"));
System.out.println("email="+resultSet.getObject("email"));
System.out.println("birth="+resultSet.getObject("birthday"));
System.out.println("=========================");
}
//6.释放连接(先开放的资源后释放)
resultSet.close();
statement.close();
connection.close();
}
}
步骤总结:
1、加载驱动
2、连接数据库DriverManager
3、获取执行SQL的对象 Statement
4、获得返回的结果集
5、释放连接
DriverManager
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver"); //固定写法,加载驱动
Connection connection = DriverManager.getConnection(url, username, password);
//connection 代表数据库
//数据库设置自动提交
//事务提交
//事务回滚
connection.rollback();
connection.commit();
connection.setAutoCommit();
URL
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true";
//mysql默认3306
//协议://主机地址:端口号/数据库名?参数1&参数2&参数3
//oracle默认1521
//jdbc:oracle:thin:@localhost:1521:sid
Statement 执行SQL的对象 PrepareStatement执行SQL的对象
String sql = "select * from users"; //编写SQL
statement.executeQuery(); //查询操作返回resultSet
statement.execute(); //执行任何SQL(其中包含一个判断是什么类型SQL的过程)
statement.executeUpdate(); //更新、插入、删除都是用用这个,返回一个受影响的行数
ResultSet 查询结果集:封装了所有的查询结果
获得指定的数据类型
resultSet.getObject(); //在不知道类型的情况下使用
//如果知道列的类型就使用指定的类型
resultSet.getString();
resultSet.getInt();
resultSet.getFloat();
resultSet.getDate();
...
遍历,指针
resultSet.beforeFirst(); //移动到最前面
resultSet.afterLast(); //移动到最后面
resultSet.next(); //移动到下一个数据
resultSet.previous(); //移动到前一行
resultSet.absolute(row); //移动到指定行
释放资源
//释放连接(先开放的资源后释放)
resultSet.close();
statement.close();
connection.close();
评论 (0)