1.jdbc扯淡
什么是jdbc?
Sun公司提供一套 用于 专门使用java语言去 操作 关系型数据的一套api 结构规范.
上图展示的是 有 jdbc 接口 规范以及 没有 jdbc接口 的对比 .
需要明白两个问题:
-
Jdbc 只是 一套 接口规范
-
各大数据库厂商的 驱动 都是 jdbc 接口规范的具体的实现, 实际开发过程中,对于 咱们编程人员来说, 拿到的 都是 jdbc接口的具体的
实现类, 通过这些 实现类, 就可以去操作 具体的数据库了, 保证了 程序的 复用, 减小了咱们程序员的学习成本.
2.jdbc中相关的类的介绍
Jdbc 中 所用到的类 都是 在jdk 中已经集成 进来的.
-
编写快速入门的jdbc程序
按照如下步骤:
第一步:
要操作具体的数据库,需要先导入具体的驱动的jar包.
第二步:
编写 一个java类, 开始去写jdbc的程序.
@Test1
最后释放资源的代码写在finally中,防止出现异常,跳过在try{} 中的代码
-
细节一_注册驱动相关
-
注册驱动:
这种方式不好, 实际 开发中 不采用这种方式 . Why?
-
-
如何解决呢?
你可以采取如下这种 迂回的方式, 很巧..
-
这样写有两个好处:
-
好处一:
避免注册两次驱动
-
好处二:
加载字节码写的是 字符串 ,那么就可以将 字符串 挪到配置文件中去, 使用 程序去读取配置文件的信息, 将来要 其他的数据库时, 就不用
更改源代码了, 只需要去修改配置文件即可, 这样程序 通用性就大大提高了.
-
细节二_链接对象的获得&url地址的写法
2.获得链接:
获得链接时, 需要 url, user, password , 这样的三个参数 是必须要的, 正如你 使用dos 命令行操作时 , 需要 输入用户名和密码一样,
-
Url :
首先需要有 jdbc 协议开头,然后再 跟上 数据库的协议名称. 然后跟上主机名, 端口, 数据库名称 , 还可以通过 ? 拼接参数,多个参数
用 & 符号分隔
Url 地址 如果 连接的是本地 mysql数据库服务器, 并且数据库服务器占用的端口是3306 时, 那么可以简写为
Jdbc:mysql:///day15_jdbc
-
Connection对象:
建立 链接返回的是 Connectioin对象, 这个对象就表示与 数据库服务器 建立的 连接 , 后续的所有的操作
都是 基于这个对象的 .
createStatement 用于拿到 可以发送sql 语句的statement对象,
preparedStatement用于拿到 可以 预编译 sql语句的statement对象
-
细节三_statement对象的使用
3获得发送sql语句的statement对象:
在数据库操作时, 关系型数据库可以使用标准化的sql 语句去操作,这里 的statement 就可以发送标准 sql语句
命令给 数据库的对象, 通过 它, 我们 可以去执行任意类型的sql 语句.
Sql语句 分类 : DDL, DML. DCL, DQL
-
如果做查询:
-
如果做增删改:
-
如果执行其他类型的sql语句:
-
这是做批处理的:
-
结果集对象的主要api详解
4.结果集ResultSet :
结果解ResultSet类的实例都有两个重载的getXxx()方法其中一个是通过列名获得列值,另一个是通过索引获得列值
这个对象是只会在 做查询的时候有. 你做增删改的时候是不会有的. Why?
查询的时候 , 有结果集, 这个结果集 它封装的就是 查询的sql 语句执行的结果.
拿到了 结果集resulstSet对象, 就需要去查询响应的api 去获得 封装的数据了, 就应该去找
getXxx的方法
-
细节五_释放资源
-
jdbc的增删该查操作(作业,必须会)
1.
2.
3.
-
改造工具类
JdbcUtils.java(完成注册驱动、获得链接、释放资源)
JdbcCrudTest2.java
db.properties
-
javaee的三层结构&dao模式的介绍
-
dao模式的代码实现
封装数据的JavaBean在domian的包下
Dao操纵的是哪一个Javabean的数据,他就叫 XxxDao,放在dao包下,(UserDao)
拼接字符串
: "+(在两个加号中间写内容)+"UserService.java(业务层对象)
User.java(Javabean+to对象)
UserDao.java(DAO对象)
DAO模式总结:(DAO模式主要用来解决持久化层的问题)
数据源对象:就是数据库
to对象 :封装数据的标准Javabean对象,
命名规则:[ JavaBean 对象名 ]
业务层对象:处理业务的核心类,比如注册功能regist()
命名规则:[ JavaBean 对象名 :Xxx] + Service
Dao核心类:操纵数据库的核心类,实现增删改查的功能
命名规则:[ JavaBean 对象名 :Xxx] + Dao
-
用户登录案例改造
准备工作
,
User.java
JdbcUtils.java
静态代码块
jdbcUtils里面的方法
加载驱动
获得connection对象
释放资源
LoginServlet.java
beanutils
UserSerivce.Java
UserDao.java
login.jsp
Index.jsp
-
sql注入的问题&如何解决
-
将数据存到数据库中去(存大数据)
max_allowed_packet=64M
守护进程:
后台的进程进行交互
-
将大数据写到文件中去
读写文件的方法
-
jdbc做批处理
-
今天的内容小结
第一:
Jdbc的介绍
第二:
Jdbc 快速入门程序
作业顺序:
-
Crud的练习
-
Dao模式 用户登录
-
PreparedStatement去更改 dao
-
批处理
两个(statement和preparedStatement)发送sql 语句的对象批处理的不同
crud
CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。