day15_jdbc

1.jdbc扯淡

 

什么是jdbc?

 

Sun公司提供一套 用于 专门使用java语言去 操作 关系型数据的一套api 结构规范.

 

 

上图展示的是 有 jdbc 接口 规范以及 没有 jdbc接口 的对比 .

需要明白两个问题:

  1. Jdbc 只是 一套 接口规范
  2. 各大数据库厂商的 驱动 都是 jdbc 接口规范的具体的实现, 实际开发过程中,对于 咱们编程人员来说, 拿到的 都是 jdbc接口的具体的

实现类, 通过这些 实现类, 就可以去操作 具体的数据库了, 保证了 程序的 复用, 减小了咱们程序员的学习成本.

 

 

2.jdbc中相关的类的介绍

 

Jdbc 中 所用到的类 都是 在jdk 中已经集成 进来的.

 

  1. 编写快速入门的jdbc程序

     

    按照如下步骤:

    第一步:

    要操作具体的数据库,需要先导入具体的驱动的jar包.

     

    第二步:

    编写 一个java类, 开始去写jdbc的程序.

     

     

     

    @Test1

     

     

    最后释放资源的代码写在finally中,防止出现异常,跳过在try{} 中的代码

     

  2. 细节一_注册驱动相关

     

    1. 注册驱动:

     

     

    这种方式不好, 实际 开发中 不采用这种方式 . Why? 

     

     

     

  • 如何解决呢?

你可以采取如下这种 迂回的方式, 很巧..

 

 

  • 这样写有两个好处:
    • 好处一:

    避免注册两次驱动

好处二:

加载字节码写的是 字符串 ,那么就可以将 字符串 挪到配置文件中去, 使用 程序去读取配置文件的信息, 将来要 其他的数据库时, 就不用

更改源代码了, 只需要去修改配置文件即可, 这样程序 通用性就大大提高了.

 

 

  1. 细节二_链接对象的获得&url地址的写法

    2.获得链接:

     

    获得链接时, 需要 url, user, password , 这样的三个参数 是必须要的, 正如你 使用dos 命令行操作时 , 需要 输入用户名和密码一样,

     

  • Url : 

 

首先需要有 jdbc 协议开头,然后再 跟上 数据库的协议名称. 然后跟上主机名, 端口, 数据库名称 , 还可以通过 ? 拼接参数,多个参数

用 & 符号分隔

 

Url 地址 如果 连接的是本地 mysql数据库服务器, 并且数据库服务器占用的端口是3306 时, 那么可以简写为

 

Jdbc:mysql:///day15_jdbc

 

  • Connection对象:

建立 链接返回的是  Connectioin对象, 这个对象就表示与 数据库服务器 建立的 连接 , 后续的所有的操作

都是 基于这个对象的 .

 

 

 

createStatement 用于拿到 可以发送sql 语句的statement对象,

preparedStatement用于拿到 可以 预编译 sql语句的statement对象

 

 

 

  1. 细节三_statement对象的使用

    3获得发送sql语句的statement对象:

     

     

    在数据库操作时, 关系型数据库可以使用标准化的sql 语句去操作,这里 的statement 就可以发送标准 sql语句

    命令给 数据库的对象, 通过 它, 我们 可以去执行任意类型的sql 语句.

     

    Sql语句 分类 : DDL, DML. DCL, DQL

     

  • 如果做查询:

 

  • 如果做增删改:

 

  • 如果执行其他类型的sql语句:

     

     

  • 这是做批处理的:

     

 

  1. 结果集对象的主要api详解

     

    4.结果集ResultSet :

     

    结果解ResultSet类的实例都有两个重载的getXxx()方法其中一个是通过列名获得列值,另一个是通过索引获得列值

     

     

    这个对象是只会在 做查询的时候有. 你做增删改的时候是不会有的. Why?

     

    查询的时候 , 有结果集, 这个结果集 它封装的就是 查询的sql 语句执行的结果.

     

     

    拿到了 结果集resulstSet对象, 就需要去查询响应的api 去获得 封装的数据了, 就应该去找

    getXxx的方法

     

     

     

     

     

  2. 细节五_释放资源

     

     

  3. jdbc的增删该查操作(作业,必须会)

     

    1.

     

     

    2.

    3.

     

     

     

  4. 改造工具类

     

     

     

    JdbcUtils.java(完成注册驱动、获得链接、释放资源)

     

     

     

     

    JdbcCrudTest2.java

     

     

     

     

    db.properties

     

     

  5. javaee的三层结构&dao模式的介绍

     

     

  6. 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

  7. 用户登录案例改造

     

    准备工作

    ,

     

     

    User.java

    JdbcUtils.java

    静态代码块

    jdbcUtils里面的方法

     

    加载驱动

    获得connection对象

    释放资源

     

     

     

    LoginServlet.java

     

    beanutils

     

    UserSerivce.Java

    UserDao.java

    login.jsp

    Index.jsp

  8. sql注入的问题&如何解决

     

     

  9. 将数据存到数据库中去(存大数据)

     

    max_allowed_packet=64M

    守护进程:

    后台的进程进行交互

     

     

  10. 将大数据写到文件中去

     

    读写文件的方法

     

  11. jdbc做批处理

     

     

     

     

     

     

  12. 今天的内容小结

     

    第一:

    Jdbc的介绍

    第二:

    Jdbc 快速入门程序

     

     

     

    作业顺序:

  13. Crud的练习
  14. Dao模式 用户登录
  15. PreparedStatement去更改 dao
  16. 批处理

    两个(statementpreparedStatement)发送sql 语句的对象批处理的不同

     

    crud

     编辑

    CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值