目录
准备第一个JDBC程序
数据库的驱动
驱动:声卡 显卡
我们的程序会通过数据库驱动和数据库打交道
JDBC
sun 公司为了简化开发 人员的(对数据库的统一)操作,提供一个(Java操作数据库的)规范,俗称JDBC这些规范的实现由具体的厂商去做~
没有什么是加一层解决不了的
创建第一个JDBC程序
create database jdbcstudy;
use jdbcstudy;
create table users(
`id` int primary key,
`name` varchar(40),
`password` varchar(40),
`email` varchar(40),
`birthday` date
);
insert into users values(1,'博客',"123","123@qq.com","2022-5-17"),
(2,"","1234","1234@qq.com","1001-12-23");
添加一个普通的项目
添加一个数据库驱动到数据库里面来
右击项目添加WEB
选中4.0版本点击ok
新建lib包
把mysql的jar复制到lib下
实现第一个JDBC
package cn.tedu;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* @Description:
* @Author: XiaoLin
* @date 2022/05/17
*/
public class JdbcFirstDemo {
public static void main(String[] args) {
try {
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接
// useUnicode=true
// characterEncoding=utf8
// useSSL=true
String url = "jdbc:mysql://localhost:3306/jdbcstudy";
String username = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url,username , password);
System.out.println(connection);
//3.连接成功,返回数据库对象
String sql = "select * from users";
Statement statement = connection.createStatement();
//4.执行sql
ResultSet resultSet = statement.executeQuery(sql);
//5.遍历结果集
while (resultSet.next()){
System.out.println("id:"+resultSet.getString("id")+" name:"+
resultSet.getString("name")
+" password: "+resultSet.getString("password"));
}
resultSet.close();
statement.cancel();
connection.close();
} catch (Exception e) {
}
}
}
执行的结果
com.mysql.jdbc.JDBC4Connection@5a10411
id:1 name:博客 password: 123
id:2 name: password: 1234
Process finished with exit code 0
总结:
1、加载驱动
2、创建连接DriverManager
3、获取数据库statement
4、执行数据库
5、执行sql
6、获取结果集
7、释放连接
DriverManager:
/DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Class.forName("com.mysql.jdbc.Driver");//固定写法,加载驱动
//Connection 代表数据库
//数据库设置自动提交
URL:
String url = "jdbc:mysql://localhost:3306/jdbcstudy";
jdbc:mysql://主机名:端口号/数据库名?参数1&参数2&参数3
//oracle --1521
jdbc:oracle:thin:@localhost:1521:sid
Connection:
connection.commit(); //设置提交事务
connection.isReadOnly();//是否只读
connection.setAutoCommit(true);//设置事务自动提交
Statement(执行SQL的对象) prepareStatement()(执行SQL的对象):
statement.executeQuery(sql);//执行查询,返回一个结果集
statement.execute();//执行任何SQL
statement.executeUpdate();//执行更新操作:插入、修改、删除,返回受影响的行数
ResultSet 查询的结果集:封装了程序结果:
--- 在不知道类型的情况下使用getObject类型
resultSet.getObject();
-- 在知道类型的情况下使用对应类型
resultSet.getString();
resultSet.getBigDe