数据库驱动
驱动:声卡,显卡,数据库
我们的程序会通过数据库的驱动,和数据库打交道!
JDBC(重点)
概念:
SUN公司为了简化开发人员的(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC
- 这些规范的实现由具体的厂商去做~
- 对于开发人员来说,我们只需要掌握JDBC接口的操作即可!
- java.sql
- javax.sql
- 还需要导入一个数据库驱动包 mysql-connector-java-5.5.jar
第一个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')
SELECT * FROM `users`
(1)创建一个普通项目
(2)导入数据库驱动(jar包),导入的MySQL需要添加library才可以使用
(3)编写测试代码
package com.gt.lesson01;
import java.sql.*;
//我的第一个JDBC程序
public class JdbcFirstDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
//2.用户信息和url
//useUnicode=true 支持中文编码
//&charactEncoding=utf8 设定它的中文字符集
//&useSSL=true 使用安全连接
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&charactEncoding=utf8&useSSL=true";
String username = "root";
String password = "123456";
//3.连接成功,数据库对象 Connection代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
// connection.rollback();
// connection.commit();
// connection.setAutoCommit();
//4.执行SQL的对象
Statement statement = connection.createStatement();
// statement.executeQuery();//查询操作返回ResultSet
// statement.execute();//执行任何SQL
// statement.executeUpdate();//更新、插入、删除。都是用这个,返回一个受影响的行数
//5.执行SQL的对象去执行sql,可能存在结果,查看返回结果
String sql = "SELECT * FROM `users`";
ResultSet resultSet = statement.executeQuery(sql);//返回的结果集,结果集中封装了我们全部的查询出来的结果
// resultSet.getObject();//在不知道列类型的情况下使用
//
// //如果知道列的类型就使用指定的类型
// resultSet.getString();
// resultSet.getInt();
// resultSet.getFloat();
// resultSet.getDate();
// resultSet.beforeFirst();//移动到最前面
// resultSet.afterLast();//移动到最后面
// resultSet.next();//移动到下一个数据
// resultSet.previous();//移动到前一行
// resultSet.absolute(row);//移动到最前面
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();
}
}
步骤总结:
- 加载驱动
- 用户信息和URL
- 连接成功,数据库对象Connection代表数据库
- 执行SQL的对象Statement执行的sql对象
- 执行SQL的对象去执行SQL,可能存在结果,查看返回结果
- 释放连接