第一个JDBC程序
创建测试数据库
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,'zhangsan','123456','zs@sina.com','1980-12-04'),
(2,'lisi','123456','lisi@sina.com','1981-12-04'),
(3,'wangwu','123456','wangwu@sina.com','1979-12-04')
-
创建一个项目
-
导入数据库驱动
-
新建一个lib目录
-
-
把jar包拷入lib目录下
-
Add as library
-
编写测试代码
package com.peng.lessons;
import java.sql.*;
//我的第一个JDBC程序
public class JdbcFirstDemo {
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=false";
String username = "root";
String password = "123456";
//3,连接成功
// Connection 代表数据库
Connection connection = DriverManager.getConnection(url, username, password);//这里会报错,先抛出(快捷键:Alt+Enter)
//4,执行sql的对象
//Statement 执行sql的对象
Statement statement = connection.createStatement();
//5,用执行的对象 去 执行sql可能存在结果,查看返回结果
String sql = "SELECT * FROM `users`";
// statement.executeQuery(sql);用执行的对象 去 执行sql可能存在结果
// executeQuery是查询的意思
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("PASSWORD"));
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,释放连接
JDBC对象的解释
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=false";
//mysql --3306
//协议://主机地址:端口号/数据库名?参数1&参数2&参数3
//oralce -- 1521
//jdbc:oracle:thin:@localhost:1521:sid
Statement 执行SQL的对象
PrepareStatement 执行SQL的对象
String sql = "SELECT * FROM `users`"; //编写SQL
statement.executeQuery();//查询操作返回ResultSet
statement.execute();//执行任何SQL
statement.executeUpdate();//更新,插入,删除,都是用这个,返回一个受影响的行数
ResultSet查询的结果集:封装了所有的查询结果
获得指定的数据类型
//在不知道列类型的情况下使用
resultSet.getObject();
//如果知道列的类型就使用指定的类型
resultSet.getString();
resultSet.getInt();
resultSet.getFloat();
......
遍历,指针
resultSet.beforeFirst();//移动到最前面
resultSet.afterLast();//移动到最后面
resultSet.next();//移动到下一个数据
resultSet.previous();//移动到前一行
resultSet.absolute(row);//移动到指定行
释放资源
resultSet.close();
statement.close();
connection.close();//用完关掉