JDBC(重点)
JDBC:(Java Database Connectivity,简称JDBC)是用来规范客户端程序如何来访问数据库的应用程序接口,记住它是一个接口,这个接口里面有这5大类
1.DriverManager:驱动管理对象
2.Connection:数据库连接对象
3.Statement:执行sql的对象
4.ResultSet:结果集对象
5.PreparedStatement:执行sql的对象
数据库驱动 (驱动就是硬件和操作系统之间的翻译官)
驱动:声卡,显卡,数据库。
数据库直接放到java里面不行,用不了 。
我们的程序 会通过数据库驱动,和数据库打交道
。
JDBC(类似于计算机的操作系统,我们只需和操作系统联系,就可以操纵电脑的底层硬件等)
sun公司为了简化开发人员的(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC,这些规范的实现由具体的厂商去做
对于开发人员来说,我们只需要掌握JDBC的操作即可。
java.sql
javax.sql
还需要导入一个数据库驱动包mysql-connector-java-5.1.47.jar包,(官网下)。
数据库中的数据
测试代码:
1 public class jdbcFirstDemoTest01 { 2 public static void main(String[] args) throws ClassNotFoundException, SQLException { 3 // 1)加载驱动 4 Class.forName("com.mysql.jdbc.Driver"); // 这里要抛出异常 5 6 // 2)url ,用户名,密码,连接位置 7 String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false"; 8 String name = "root"; 9 String password = "123456"; 10 11 // 3)点击连接 注意这里的参数顺序不要搞错 12 Connection connection = DriverManager.getConnection(url,name, password);// 注意这里也要抛出异常 13 14 // 4)打开一个查询窗口 15 Statement statement = connection.createStatement(); 16 17 // 5)输入查询语句,点击执行 18 String sql = "SELECT * FROM users"; 19 ResultSet resultSet = statement.executeQuery(sql); // 返回一个结果集 20 21 // 6)输出结果 22 while(resultSet.next()) { 23 System.out.print("id :" + resultSet.getObject("id")); 24 System.out.print("name :" + resultSet.getObject("name")); 25 System.out.print("password:" + resultSet.getObject("password")); 26 System.out.print("email:" + resultSet.getObject("email")); 27 System.out.print("birthday :" + resultSet.getObject("birthday")); 28 } 29 // 关闭打开的连接,不关的话造成资源浪费 30 resultSet .close(); 31 statement.close(); 32 connection.close(); 33 34 } 35 }
代码解析:
1)String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
协议://主机地址:端口号/数据库名?参数1&参数2&参数3
2)connection 就代表数据库
connection.rollback(); // 事务回滚
connection.commit(); // 事务提交
connection.setAutoCommit(); // 事务自动提交
3)Statement:执行sql语句的类。它的对象用于向数据库发送SQL语句,完成对数据库的增删改查
Statement.executeQuery(); // 查询操作返回ResultSet
Statement.execute(); // 执行任何sql
statement.executeUpdate(); // 更新,插入,删除都是用这个,返回受影响的行数,这个也可以用来查,只是效率低一点
4) ResultSet:查询的结果集,封装了所有的内容
resultSet.next(); // 移动到下一个
resultSet.beforeFirst(); // 移动到最前面
resultSet.afterLast(); // 移动到最后面
连接数据库的函数getConnection源码
结果:
public class jdbcFirstDemoTest01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 1)加载驱动
Class.forName("com.mysql.jdbc.Driver"); // 这里要抛出异常
// 2)url ,用户名,密码,连接位置
String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=false";
String name = "root";
String password = "123456";
// 3)点击连接 注意这里的参数顺序不要搞错
Connection connection = DriverManager.getConnection(url,name, password);// 注意这里也要抛出异常
// 4)打开一个查询窗口
Statement statement = connection.createStatement();
// 5)输入查询语句,点击执行
String sql = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(sql); // 返回一个结果集
// 6)输出结果
while(resultSet.next()) {
System.out.print("id :" + resultSet.getObject("id"));
System.out.print("name :" + resultSet.getObject("name"));
System.out.print("password:" + resultSet.getObject("password"));
System.out.print("email:" + resultSet.getObject("email"));
System.out.print("birthday :" + resultSet.getObject("birthday"));
}
// 关闭打开的连接,不关的话造成资源浪费
resultSet .close();
statement.close();
connection.close();
}
}
posted on 2021-04-09 17:10 Love&Share 阅读(98) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~