发表于: 2017-07-12 21:49:02

2 1313


一.今天完成的主要事情

1.熟悉JDBCTemplate连接数据库,在使用时用log4j记录日志,并在此过程中对try..catch进行学习

1.     创建maven工程,添加所需jar包依赖,项目工程如图:

2.     编写model,

3.     设计接口,这一步非常重要,好的接口设计有非常大的复用性,像任务一中的用各种框架链接数据库,但实际上接口都是相同的,如果接口设计的好,不论是用哪种框架都可以直接拿来就用.设计了查询所有用户,查询表长度,根据ID查询单个用户,根据姓名查询,插入数据,更新数据,删除数据,清空表等接口.

4.     编写实现,编写测试,基本上是写一个实现,就写一个测试,确保写好的实现可以运行

5.     编写日志相关,在这里遇到一个问题,就是log4j不能够在不同的文件中显示不同等级的信息.

log4j的配置如下:

但是,每次打印的时候,都是两个文件中打印的日志信息都是INFO级别以上的,包括错误日志文件中也会显示INFO级别的信息.

在网上找了很多资料,有重写Appener类的,也有其他的,试过了,都不行,暂时先放一下,任务一最后几个task做完后打算用xml文件配置再试试,也请师兄帮忙指点一下.

6.try..catch按照任务要求实现

try...catch就是用来处理程序执行时遇到的异常情况的,其中try中是可能会碰到异常的语句,catch中是标注如果遇到了异常该怎么办,还有一个finally关键字,finally是不论有没有异常,都必须执行的代码,有了try...catch,我们可以在碰到一些不严重的错误时,程序继续执行,不用立即停止,当然,如果异常很严重,超过了本方法处理的范围,本级不能处理,也可以直接向上抛出,由上级处理.向上抛出就是谁调用该方法,异常就抛给谁,如果最后main函数也处理不了,就会抛给虚拟机.

以下是JDBC链接数据库时try...catch的用法

首先是每次执行数据库操作时都会检查异常,因为比较常见的是sql语句语法错误,所以增加对sql语句语法错误的异常处理,如图:

增加finally的含义就是不论sql语句执行是否成功,都关闭数据库链接,释放资源,防止数据库链接被过多占用

此时,执行main方法,可以看到一切正常

然后,在实现中更改一下sql语句,如图

再次执行的时候,结果如下(只贴出了一部分)

从结果可以看到,有一个方法运行失败,但是程序没有终止,因为在该方法的catch中已经将异常处理过了,并且依然关闭了数据库链接,下面的方法执行时没有受到影响.

关于日志,虽然日志出现了一些问题,但确实实现了在我们想要打日志的地方输出日志,比如,在产生异常后,就可以在catch中输出error级别的日志,方便我们维护时查找错误.

2.用mybatis链接数据库,用log4j记录日志,今天用的mybatis的开发方式为传统的dao接口模式

1.     创建maven工程,添加所需的jar,包括mybatis,junit, log4j,数据库驱动等

2.     编写model

3.     设计接口,直接使用刚才设计好的

4.     编写实现类,通过传统接口/实现的方式,即以下方式

在实现类中创建sqlSession工厂

从工厂中获取sqlSession语句,然后执行

5.     配置mybatis全局配置文件,配置mapper.xml文件

此时遇到一个小坑,就是通过select查询返回列表时,这里的结果类型要写成list中的成员的类型,不能直接写list,因为它要求的是实际的类型


还有一点,就是,在方法中执行完操作之后,要提交事物,否则有可能出现sql语句执行正常,但是数据库没有变化的情况.,如图

二.明天计划完成的事情

1.用mybatis的mapper映射方式链接数据库,配置数据库时使用注解方式

2.springJdbc链接数据库

3.如果有时间,用spring整合mybatis链接数据库,

三种方式标准均和任务要求一样,用log4j记录日志,单元测试和实现同步进行(已经尝到测试的好处了)

三.遇到的问题

log4j不能在不同文件中输出不同级别的日志问题,在网上找了近一个小时,也没找到,计划明天问下师兄

四.收获

1.对JDBC和mybaits链接数据库更为熟练了,很多基础概念也更清晰了

2.了解了try...catch的基本概念和基本用法


返回列表 返回列表
评论

    分享到