发表于: 2017-10-13 23:40:08

2 780


今日完成:

         1)jdbcTemplate版本的增删改查数据库的操作

             

         2)更深入的学习了一下log4j,发现它真的很强大,这次我dao抛出的异常传给service,因为没有web层,所以service我就当做顶层,在网上找到一个工具类可以用来在记录代码中产生的异常,并把它保存到本地文件中。

       

先贴一下log4j.properties

#指定日志输出级别
log4j.rootLogger=DEBUG,A2,A1
#指定日志的输出方式与地方
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.Threshold = ERROR  //error以上的异常被输出到文件中去
log4j.appender.A1.File=F:\\log\\my.log

#指定日志信息的格式
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%r %d{yyyy-MM-dd HH:mm:ss} %c %p -%m%n

#把A2输出到控制台
log4j.appender.A2=org.apache.log4j.ConsoleAppender  
log4j.appender.A2.layout=org.apache.log4j.SimpleLayout    

除了这些之外,还可以添加扩展,具体见博客:http://blog.csdn.net/anlina_1984/article/details/5313023

下面是部分代码

public class LoggerUtils {
/*
   * 日志记录的类
   * */
   public  static  void info(Class logClass,Object e){

Logger logger=Logger.getLogger(logClass);
if(e instanceof  Exception){
logger.debug(e.toString());
}else{
logger.error(e.toString());

}

/**
* 得到debug
*/
public  static  void debug(Class logClass,Object e){
Logger logger=Logger.getLogger(logClass);
if (e instanceof  Exception){
logger.debug(getException((Exception)e));
}else{
logger.debug(e.toString());
}
}

 

/**
* 得到exception
*/
public  static  String getException(Exception e){

StackTraceElement[]ste=e.getStackTrace();
StringBuilder sb=new StringBuilder();
sb.append(e.getMessage()+"");
for (int i=0;i<ste.length;i++){
sb.append(ste[i].toString()+"\n");
}
return sb.toString();
}
}

然后,我在service实现类中,通过try catch捕获异常,然后把异常记录到了本地文件中,这样实现了可以对于异常的记录。

//这是service的一个实现方法

public boolean deleteById(Long id){

try {
int Count= userDao.deleteById(id);
return Count>0?true:false;
} catch (Exception e) {
ErrorUtils.outErrorException(UserServiceImpl.class,e);
}
return false;
}
public class ErrorUtils {
public  static  void outErrorException(Class clazz,Exception e){
e.printStackTrace();
LoggerUtils.error(clazz,e);
}
}

这是产生的一段异常信息,写到文件中的(我故意在dao层的调用方法加入了1/0产生异常)

这是自己对于异常的封装,希望师兄给出指点,我这样处理异常对不对~ 


今日疑问:

       在数据插入的时候,java类型与数据库字段的类型不一致也能插入。之前操作都是java类型与数据库类型对应,这次尝试了一下用java的String插入对应的数据库的bigInt字段,能插入,这是为什么,是因为数据库对于类型的要求不严格么(这是百度后的答案,,感觉模模糊糊)?


明日任务:

     将项目发布到web,然后写出jdbc版本



返回列表 返回列表
评论

    分享到