发表于: 2018-01-10 23:15:39

1 616


今日完成:

1.       delete from 表名   一条一条删除

truncate table 表名  效率比较高,自增字段恢复从1开始,但是不记录mysql日志

2.       昨日插入数据的时间计算出错,而且王了mvn conpile,导致测试出现问题,今天重新测试插入1000条语句:

不使用连接池,插入1000条记录,需要10s

     

     

使用连接池,插入1000条记录,需要4s

     

     

3.       SqlSession.close()控制是否关闭连接池,在默认dateSource配置下,插入1000条记录

关闭连接池需要4s(同上)

不关闭连接池,默认允许链接数量为10,等很久没有完成。

4.       测试一下连接DB中断后TryCatch是否能正常处理。

修改为错误数据库密码,TryCatch无法正常处理

通过设置断点调试,发现在执行插入语句时会报错

通过查资料得知Mybatis只有在真正执行sql操作的时候才会去获取数据库连接。

.openSession()最终只是返回一个操作数据库的会话、并不包含数据库连接

因此捕捉SQLException异常

但是报错,将异常换成Exception,程序跳过错误执行到最后

因此可以确定在执行插入语句时连接数据库并报错

5.       检查一下自己的代码是否符合规范,如果DB的表格有改动,应该改哪些内容,需要多久。

Mapper代理开发规范:

编写mapper.xml映射文件。

编写mapper接口需要遵循一些开发规范,这样MyBatis可以自动生成mapper接口实现代理对象。

1.       Mappernamespace等于mapper接口地址

2.       Mapper接口中方法名和Mapper.xml中的statementid一致

3.       Mapper.java接口中方法输入参数类型和Mapper.xmlstatementparameterType指定类型一致。

4.       Mapper.java接口中方法的返回值类型和Mapper.xml中的statementresultType指定的类型一致

Pojo类的成员变量和数据库的column不同,用resultMap映射

以后注意保持一致

如果db表格有改动,需要修改mapper.xmlpojo

Pojo类增减属性,mapper.xml修改传入传出的参数。

6.       select count(*) from 表名;   查看记录数

明日计划

1.       批量插入数据

2.       总结

遇到的问题:

       项目总的执行时间太长了,插入数据时间花费4S,但是总时间需要20S,这些时间是消耗在什么上面了

收获:

1.       测试使用连接池的性能优化效果

2.       SqlSession使用结束要close()接触占用,放回连接池

3.       Mybatis在执行sql语句时才检查数据库连接情况

 

 

 

 



返回列表 返回列表
评论

    分享到