JDBC连接数据库
jdbc(java database contectivity),即java连接数据库。
jdbc的核心思想.
java提供数据库的接口,数据库提供驱动实现类。
jdbc是由多个接口和类进行功能实现
package com.qf.JDBC; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC { public static void main(String[] args) throws Exception { //注册驱动,加载驱动到虚拟机里(jvm),把mysql-connector-java-8.0.17jar包里的com.mysql.jdbc包中的Driver类加载进来。 Class.forName("com.mysql.jdbc.Driver"); //获得连接 //jdbc:mysql代表连接的数据库是mysql数据库,localhost是本机,3306是mysql端口号,jdbc是数据库名称 String url="jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC"; String user="root"; String password="123456"; Connection connection = DriverManager.getConnection(url,user,password); if(connection==null){ System.out.println("数据库连接失败!"); }else{ System.out.println("数据库连接成功!"); } //获得执行sql语句的对象 Statement statement = connection.createStatement(); //编写sql语句,执行SQL语句 //编写 String sql = "insert into accounts(id,name,money)values('13','zht',1234)"; //执行 int result = statement.executeUpdate(sql);//执行DML(增删改)操作用executeUpdate方法,返回值是受影响行数(int类型) System.out.println("执行增加操作受影响行数"+result); //处理接收结果 if(result==1){ System.out.println("执行增加操作成功!"); }else{ System.out.println("执行增加操作失败!"); } System.out.println("执行查询操作!"); //查询结果集,返回值是一张表resultset,需要遍历输出 String sql2 = "select *from accounts"; ResultSet resultSet = statement.executeQuery(sql2); while(resultSet.next()){//resultSet.next()判断下一行是否有数据 String id = resultSet.getString(1);//String id = resultSet.getString(id); String name = resultSet.getString(2); String money = resultSet.getString(3); System.out.println(id+"\t"+name+"\t"+money); } //释放资源,先开后关 resultSet.close(); statement.close(); connection.close(); } }
运行结果:
数据库连接成功!
执行增加操作受影响行数1
执行增加操作成功!
执行查询操作!
1 A 1000.0
2 B 1000.0
3 C 1000.0
4 null null
5 null null
6 A 1000.0
7 B 1000.0
8 C 1000.0
10 zht 1234.0
12 zht 1234.0
13 zht 1234.0
14 zht 1234.0
Process finished with exit code 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?