发表于: 2018-04-01 22:28:43

1 509


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)                            
明天计划的事情:(一定要写非常细致的内容)                            
遇到的问题:(遇到什么困难,怎么解决的)                            
收获:(通过今天的学习,学到了什么知识


今天完成的事情:1.学习try catch 异常处理方法

                         try{  程序代码
                                  }
                         catch (异常类型 异常带量名)           

举个例子:catch (FileNotFoundException e) {
    System.out.println("d:/A.exe不存在");
    e.printStackTrace();
} catch (ParseException e) {
    System.out.println("日期格式解析错误");
    e.printStackTrace();

1.将可能抛出FileNotFoundException 文件不存在异常的代码放在try

2.如果文件存在,就会顺序往下执行,并且不执行catch块中的代码
3. 如果文件不存在,try 里的代码会立即终止,程序流程会运行到对应的catch块中
4. e.printStackTrace(); 会打印出方法的调用痕迹,这样就便于定位和分析到底哪里出了异常

所以若try里面没有错误将不会执行catch语句,反之从错误的句子马上跳出执行catch并打印异常

finally语句:无论是否出现异常,finally中的代码都会被执行 所以finally里有改动try运行结果的能力。

throw和throws:throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某个异常对象。

总体上异常分三类:
1. 错误
2. 运行时异常
3. 可查异常

Throwable是类,Exception和Error都继承了该类

2.用preparedStatement,executeQuery 执行多条插入语句

这里需要注意书写sql语句格式,并要使用setXXX语句,记住一次,差不多以后都就会用。

为了更好理解execute和executeUpdate,我查了一下两者区别:


execute与executeUpdate的相同点:都可以执行增加,删除,修改

不同1:
execute可以执行查询语然后通过getResultSet,把结果集取出executeUpdate不能执行查询语句
不同2:
execute返回boolean类型,true表示执行的是查询语句,false表示执行的是insert,delete,update等executeUpdate返回的是int,表示有多少条数据受到了影响 

执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句。返回值是更新的记录数量


3.了解并熟悉了ORM,理解了它的原理

ORM=Object Relationship Database Mapping
对象和关系数据库的映射

简单说,一个对象,对应数据库里的一条记录
从数据库取出数据>>封装到一个对象里面去(对象=new 对象)>>将对象返回出去>>用户获得对象信息


4.了解了DAO定义和原理,查阅网上相关继承接口代码

DAO(Data Access Object)是一个数据访问接口,它是J2EE标准中的一种访问数据库的模式。


这是一个继承DAO的Hero实现类但是这里有个问题: 

 public List<Hero> list() {
        return list(0, Short.MAX_VALUE);  
    }                                    

这是一个构造方法list(),它返回的是一个区间为0—Short.MAX_VALUE=32767 ,但下面已经定义了一个关于自定义区间的list函数,那前面一个构造方法是不是就没有必要了?


5.学习了解了 try-with-resources

try括号内的资源会在try语句结束后自动释放,前提是这些可关闭的资源必须实现 java.lang.AutoCloseable 接口。
原来这还有个专业术语, try-with-resources statement ,它会自动关闭括号内的资源(resources),不用手动添加代码   xx.close();  了。
1. resource 必须继承自 java.lang.AutoCloseable
2. 定义和赋值必须都在try里完成

比如

  public int getTotal() {
        int total = 0;
        try (Connection c = getConnection(); Statement s = c.createStatement();) {
  
            String sql = "select count(*) from hero";
  
            ResultSet rs = s.executeQuery(sql);


明天计划的事情:

                 1.开始用Jbdc编写DAO



收获:1.基本学会了try catch 异常处理

            2.熟悉了ORM,我觉得可以触类旁通一下可以去搞DAO

            














返回列表 返回列表
评论

    分享到