1.什么是jdbc?
爪哇
Sun 开发的用于访问数据库的通用 API。 这些API由不同的数据库厂商实现,使得开发者可以使用相同的方法访问不同的数据库。
2、如何使用jdbc?
(一)三个重要对象
a, :负责建立连接(java程序和数据库之间
联系)
b,:负责发送sql到数据库(由创建)
c、:负责封装数据库返回的查询结果。
(2) 编程步骤
step1、加载驱动(驱动对应的jar文件需要提前放到对应的路径下)
:是不同数据库厂商实现的API。
Class.(驱动程序类名);
Step2、获取连接
康涅狄格州=
.(url,用户,密码);
url:数据库所在机器的IP、端口、sid
用户: 用户名
密码:密码
步骤3,得到
统计 = conn.();
step4、执行SQL
a、执行查询
rst = stat.(SQL);
b、执行删除、更新、插入
int stat.(SQL);
step5、如果是查询则需要遍历
遍历:将查询结果一一取出,获取数据。
3. mysql
(1)使用方便
1)登录mysql(使用root用户)
mysql-uroot;
2)检查当前有哪些数据库可用
展示 ;
3)创建数据库(命名为jd13,默认字符集为utf8)
京东13
设置utf8;
4)使用数据库
使用jd13;
5)查看当前数据库中有哪些表
展示 ;
6)创建表
桌子 (
id int 密钥,
(50),
密码 (30),
年龄整数
)类型=;
进入(,密码,年龄)
('码头','测试',23);
注意:
:自增列,即该列的值由数据库决定
自动分配,一般用于主键的生成。
type=:表示该表支持事务。
4.使用jdbc访问数据库时的常见错误
(1)参数错误
(2)驱动程序(jar文件)不合适或没有放置在路径中。
(3) SQL语句错误
5.(预编译)
1)SQL注入问题:
通过故意构造一些参数值,改变系统原有SQL语句的结构,达到破坏系统的目的(例如非法获取系统敏感数据、非法登录等)
2)
a、是如何执行的?
step1、sql语句首先发送到数据库,数据库会生成执行计划(预编译)
step2、将参数值发送到数据库并执行sql。
二、优点
b1:防止sql注入,因为执行的sql语句结构不会改变。
b2:如果有多个相同结构的SQL语句执行,执行效率会更高。
6.DAO(数据)
(1)什么是DAO?
封装数据访问逻辑的模块。
(2)如何编写DAO?
步骤1,编写一个实体类,它是一个普通的java类。 该类与数据库相关。
表对应关系:
该类的属性对应于表的列(数据类型匹配),并且这些属性必须有相应的get/set方法。
实体类的作用是将数据库中的记录封装成对应的Java对象。
step2、编写DAO接口
在DAO接口中,声明了一系列访问数据库的方法。
声明这些方法时,不要引用任何特定的数据库访问技术。
step3、编写DAO实现类
两者都使用特定的数据库访问技术来实现DAO接口。
step4、编写工厂类
“工厂设计模式”:工厂负责为调用者提供满足接口要求的对象(该对象一般称为产品)。 这样做的好处是调用者不需要知道对象创建的细节,并且当对象发生变化时,不会影响调用者。
7. 事务
(1)什么是交易?
将多个操作作为一个原子操作执行。
(2)jdbc如何控制事务?
1) JDBC默认自动提交事务,即执行一条SQL语句后,会立即提交事务。
2)如果要整体执行多个操作(即有多个SQL语句执行),例如“转账”业务,则需要执行两条SQL:一条SQL用于扣除账户余额(-1000),
另一条sql用于增加另一个账户的余额(+1000)。 很明显,这两个操作要么同时成功,要么同时失败。
3)三种方法
//当flag为false时,表示禁止自动提交。
。(旗帜);
//提交交易
麻省理工学院();
//回滚事务
.();
(3)交易封装
例如,“转账”:
从资金账户(表中某条记录)中扣除200元,然后将价值200元的股票添加到股票账户(表中某条记录)中。
桌子 (
id int 密钥,
(16),
整数
)类型=;
进入 (,)
('',1000);
桌子 (
id int 密钥,
(6),
数量整数
)类型=;
进入(,数量)
('',0);
(4)(线程局部变量)
一、功能
为每个线程维护变量的副本。
b.目的
如果一个线程想要访问多个方法,它需要在多个方法之间共享相同的数据(例如,一个对象)。