第十九天:总结

来源:互联网 发布:cosplay软件绅士开关 编辑:程序博客网 时间:2024/05/01 20:43

1.注册驱动的三种方式:
  DriverManager.registerDriver(new XXX.Driver())
  Class.forName("....Driver");
  还有一种
 
  用Class.forName 具体的好处,研究老张的面试题

  得到数据连接放到工具类的静态代码块中

2.一环套一环
  a.注册驱动
  b.由驱动对象得到连接对象
  c.由连接对象得到SQL语句的对象
  d.有SQL语句的对象得到结果的对象
  e.对结果进行遍历、处理
  f.释放资源

3.网上搜ResultSet的底层原理
  我觉得是可变长度的数组,数组中存的是Map

  ResultSet开始 它指向第一行之前  , next向下移一行(boolean)

4.url连接
  MySQL:
     jdbc:mysql://localhost:3306/sid
    协议:子协议://主机:端口/数据库名?属性名=属性值
    如果没有子协议 : 也要打上
  Oracle:
     jdbc:oracle:thin:@localhost:1521:sid
  常用的属性:
  useUnicode=true&characterEncoding=UTF-8

5.Statement
  boolean b = execute(String sql)           查询 增加 修改 删除 操作是否成功 if(b){...}
  ResultSet rs = executeQuery(String sql)   查询  查询的结果集
  int i = executeUpdate(String sql)         增加 修改 删除 更新了多少条记录

6.数据库中的数据类型 和 Java中的数据类型
  典型的:java.sql.Date  和  java.util.Date
  java.sql.Date 是 java.util.Date的子类
  sql  --->  util  可以不做任何改变
  util --->  sql   new java.sql.Date(java.util.DateXXX .getTime())

  Calender  DateFormat.getDateInstance

7.DAO DAOImpl
  DAO :某一实体通过某一DAO与数据库打交道
  DAO 是接口 , DAOImpl具体实现接口中的方法,
  以后要是换了实现,只用改 DAO xxx = new DAOImpl() 换成另外一个DAOImpl2就可以了
  父类的引用指向子类的对象,多态

8.异常的处理

9.释放资源的两种写法

10.字符串和日期的要用 '  '
   其他的int float double boolean 不需要

11.PreparedStatement   or = or
   conn.prepareStatement(...)
   execute()  这里面没有SQL语句

12.中文乱码
   表 、库 、链接(url,user,password) 要一致
   查看数据库的编码:
      show create database;
      show crate table;
      show variables like 'char%';
      set character_set_results = gbk;  设置命令行的字符集

13.案例:Statement 完成 CRUD 两层架构
   不想浪费时间写它

14.案例:PreparedStatement修改上面的

15.网上搜索 出生日期 的控件

16.完成:examstudent

17.try catch ,catch中不能为空,哪怕你打印,抛出个RuntimeException
不然 它不报错,你死都不知道是怎么死的!

18.教训:声明了 没 初始化
初始化在哪?是不是每次循环都初始化?需不需要覆盖?

原创粉丝点击