JDBC知识点
更新时间:2023-12-08 09:03:01 阅读量: 教育文库 文档下载
1、什么是jdbc?
Java DataBase Conectivity(Java数据库连接)是一种用户执行 SQL语句的Java API,可以为多种关系数据库提供统一访问, 它有一组用Java语言编写的类和接口组成.
JDBC API是sun公司提出的访问数据库的接口标准. sun公司制订的一种用来访问数据库的通用的API, 这些API由不同的数据库厂商来实现,这样,开发人员 就可以使用相同的方式来访问不同的数据库。 2、如何使用jdbc? (1)三个重要的对象 a, Connection: 负责建立连接(java程序与数据库之间 的连接) b, Statement:负责发送sql给数据库(Statement由 Connection来创建) c, ResultSet: 负责封装数据库返回的查询的结果。 (2)编程步骤 step1, 加载驱动(需要事先将驱动程序对应的 jar文件放到classpath对应的路径) 驱动:就是不同的数据库厂商实现的api。 Class.forName(驱动类名); step2,获得连接 Connection conn = DriverManager.getConnection(url,user,pwd); url:数据库所在的机器在的ip,端口,sid user:用户名 pwd:密码 step3, 获得Statement Statement stat = conn.creatStatement(); step4, 执行SQL a, 执行查询 ResultSet rst = stat.executeQuery(SQL); b,执行删除、更新、插入 int stat.executeUpdate(SQL); step5,如果是查询,需要遍历ResultSet 遍历: 将查询的结果一条一条取出来,获取 其中的数据。 3、mysql (1)简单使用 1)登录mysql(使用root用户) mysql -uroot; 2)查看当前有哪些数据库 show databases; 3)创建一个数据库 (名叫jd1305db,缺省的 字符集是utf8)
create database jd1305db default character set utf8; 4) 使用某个数据库 use jd1305db; 5) 查看当前数据库有哪些表 show tables; 6) 建表 create table t_user( id int primary key auto_increment, username varchar(50), pwd varchar(30), age int )type=innodb; insert into t_user(username,pwd,age) values('jetty','test',23); 注意: auto_increment: 自增长列,即该列的值由数据库 自动赋值,一般用于主健的生成。 type=innodb: 表示该表支持事务。 4、使用jdbc访问数据库,常见的错误 (1) 参数错误 (2) 驱动程序(jar文件)不合适,或者没有放到 classpath路径里面。 (3) sql语句错误
5、PreparedStatement (预编译的Statement) 1)sql注入问题: 通过刻意构造一些参数值,来改变系统 原有sql语句的结构,从而达到破坏系统的 目的(比如,非法获取系统敏感的数据,非 法登录等等) 2)PreparedStatement a,PreparedStatement是如何执行的? step1, sql语句先发送给数据库,数据库会 生成一个执行计划(预编译) step2, 将参数值发送给数据库,执行sql。 b,优点 b1: 防止sql注入 因为PreparedStatement执行的sql语句 结构是不会改变的。 b2:如果有多条结构相同的sql语句要 执行,则PreparedStatement执行效率 要比Statement高。
6、DAO (Data Access Object)
(1)DAO是什么? 封装了数据访问逻辑的一个模块。 (2)如何写一个DAO? step1, 写一个实体类 就是一个普通的java类,这个类与数据库的 表对应: 该类的属性与表的列对应(数据类型匹配)。 这些属性要有对应的get/set方法。 实体类的作用,是为了将数据库中的记录 封装成一个对应的java对象。 step2, 写一个DAO接口 在DAO接口中,要声明一系列用来访问 数据库的方法。 声明这些方法时,不要涉及任何具体的数据库 访问技术。 step3, 写一个DAO实现类 使用具体的数据库访问技术来实现DAO接口。 7、批处理 (1)什么是批处理 使用同一个连接,一次发送多个 sql(sql语句的结构是相同的)给数据库去执行。 这样,可以提高运行的效率。 (2)如何批处理? addBatch(): 添加一条要执行的sql。 executeBatch():执行之前添加的所有的sql。 clearBatch():清空之间已经执行过的sql。 (3)批处理的优点? 如果同时要执行大量的相同结构的sql, 批处理的性能要好。 8、事务 (1)什么是事务? 将多个操作当做一个原子操作来进行。(简单的来说就是事务就是: 将两组DML捆绑在一起作处理,要么一起成功,要么一起失败, 成功就提交事务,失败就回滚事务。) (2)jdbc如何控制事务? 1)jdbc在默认情况下是自动提交事务,即一条 sql语句执行之后,会立即提交事务。 2)如果多个操作(即有多条sql语句要执行)要 当做一个整体来执行,比如在“转帐”业务当中, 需要执行两个sql: 一个sql用来对一个帐号进行 扣除余额的操作(-1000),另外一个sql用来对另外 一个帐号进行增加余额的操作(+1000),很显示, 这两个操作要么同时成功,要么同时失败。 3)三个方法
//当flag为false时,表示禁止自动提交。 connection.setAutoCommit(boolean flag); //提交事务 connection.commit(); //回滚事务 connection.rollback(); (3)事务的封装 比如,要“转帐\ 从资金帐户(t_account表中的某条记录) 扣掉200元,然后,股票帐户(t_stock表中的 某条记录)增加价值200元的股票。 create table t_account( id int primary key auto_increment, accountNo varchar(16), balance int )type=innodb; insert into t_account(accountNo,balance) values('6225881003192000',1000); create table t_stock( id int primary key auto_increment, stockNo varchar(6), qty int )type=innodb; insert into t_stock(stockNo,qty) values('600015',0);
(4)Threadlocal (线程局部变量) a,作用 为每一个线程维护一个变量的副本。 b,用途 一个线程要访问多个方法,需要在多个 方法之间共享同一个数据(比如, 一个connection对象)。
正在阅读:
JDBC知识点12-08
20170724全生命周期项目管理国际新理念、新视野试卷110分11-23
出入口管理及防越界报警系统04-18
释万行上师自述 - 三次闭关纪实12-01
四年品社复习题03-08
改革开放四十周年评论文章精选02-22
捉蚂蚱作文06-22
捷达轿车底盘常见故障分析与检修05-23
焊工(学生组)中级理论训练题05-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 知识点
- JDBC
- 教学媒体选择
- 四川大学经济学院创业就业部活动招商策划书
- 马克思主义哲学原理第二次作业—华工平时作业2018秋
- 旅游美学
- 房屋工程考试试题及答案
- 办公室管理作业答案
- 2017年中考英语模拟考试试卷及答案
- 小城镇环境建设中存在的问题及解决方式
- 家庭聚会日用品文案(8)
- 村委会集体林权制度改革实施方案
- 细胞生物学 期末重点
- 第四章溶液复习题
- 狭窄施工缝两侧剪力墙模板施工技术
- 2014年秋季新版新人教版七年级数学上学期3.3、解一元一次方程(二) - -去括号与去分母导学案18
- 关于签订补充协议的通知
- 区域经济学期末复习答案打印版广东某学院考试资料
- 中药五类新药赤芍总苷制剂的临床前药学实验研究设计
- 江苏光伏企业名录
- 个人所得税代扣代缴软件操作及演示 - 图文
- 2014年职称英语考试:综合类B级完形填空练习题1