JDBC学习(一)
JDBC学习:
JAVA的数据获取方式: 1 直接声明变量并赋值. 2 Scanner类控制台输入 3 IO流(将硬盘存储中的数据读取到java中) 4 scoket+io 5 从数据库中获取 JDBC的概念: 问题: java和数据库之间的沟通不一致 解决: 数据库厂商对外提供java支持的接口 使用: 创建类实现接口(操作数据库) 数据库厂商对外提供了数据库操作的驱动包.(翻译官) 结论: JDBC其实就是数据厂商对外提供的能够对自己的数据进行操作的驱动包也就是jar文件.
JDBC的使用:
jdbc完成新增
jdbc完成修改
jdbc完成删除
jdbc的事务
jdbc完成查询
jdbc的MVC思想
jdbc新增学习:
1 导入jdbc驱动包
2 加载驱动
3 常见数据库连接
4 创建数据库命令对象
5 创建sql命令
6 执行sql
7 关闭资源
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190323120649180.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI1ODkwOA==,size_16,color_FFFFFF,t_70)
常见的jdbc错误:
**a ClassNotFoundException:
驱动类未找到.
b java.sql.SQLException: No suitable driver found for :thin:@localhost:1521:orcl
URL错误
c java.sql.SQLException: ORA-01017: invalid username/password; logon denied
用户 名或密码错误
d java.sql.SQLSyntaxErrorException: ORA-00900: 无效 SQL 语句
Sql语句错误
e java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (SCOTT.PK_DEPT)
主键冲突**
@author wuyupku
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestInsert1 { public static void main(String[] args) throws ClassNotFoundException, SQLException { //1 加载驱动类 Class.forName(“oracle.jdbc.driver.OracleDriver”); //2 获取数据库连接对象(连接指定的数据库) Connection conn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”,“scott”,“oracle”); //3 获取sql命令对象(编译和发送sql命令给数据库) Statement stmt= conn. createStatment(); //4 创建sql命令 String sql=“insert into dept values(92,‘吃鸡学院’,‘北京’)”; Stting sql = " //5 执行sql命令 int i=stmt.executeUpdate(sql);//没有执行成功,返回-1 System.out.println(“执行结果:”+i);//执行成功,返回1 //6 关闭资源 stmt.close(); conn.close(); } }
优化 public class TestInsert2 { public static void main(String[] args){ //声明jdbc变量 Connection conn=null; Statement stmt=null; //声明JDBC参数 String driver=“oracle.jdbc.driver.OracleDriver”; String url=“jdbc:oracle:thin:@localhost:1521:orcl”; String username=“scott”; String password=“oracle”; //1 加载驱动类 try { Class.forName(driver); //2 获取数据库连接对象(连接指定的数据库) conn=DriverManager.getConnection(url,username,password); //3 获取sql命令对象(编译和发送sql命令给数据库) stmt=conn.createStatement(); //4 创建sql命令 String sql=“insert into dept values(97,‘吃鸡学院’,‘北京’)”; //5 指定sql命令 int i=stmt.executeUpdate(sql); System.out.println(“执行结果:”+i);
} catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //6 关闭资源 try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode | 28.实现strStr()
- Redis | Redis 哈希相关命令
- 如何访问SAP Spartacus里的config数据
- 工具系列 | HTTP API 身份验证和授权
- Providers in SAP Spartacus
- 详解ELF可执行文件格式:读取头部信息和程序表头
- 我用 Python 写了个基金涨跌通知助手
- 模仿腾讯新闻做了款新闻阅读小程序
- 使用关键点进行小目标检测
- 彻底搞懂 etcd 系列文章(八):etcd 事务 API
- 使用docker搭建一套开发环境全家桶
- TypeScript里的.d.ts语法
- 宋宝华:当Linux内核遭遇鲨鱼—kernelshark
- 基于Pytorch的动态卷积复现
- SAP Spartacus的StorefrontConfig对象