发表于: 2017-10-01 19:07:27
1 773
今日完成:
完成spring集成jdbc连接数据库有连接池版。
明日计划:
先解决插入数据慢的问题。
遇到的困难:
虽然知道导入的包要选择好,但对陌生的东西没有一个架构式认知时,这个问题无法避免,因为不知道jdbc不需要写连接池,只需要在配置文件里设置一下最大连接量之类的就能自动生成了,早上都在揣测jdbc的写法,在写操作层时想理解jdbctemplate里方法传入的参数是什么,有什么作用,然后就点进源码里看,结果完全看不懂,就思考了一个上午,也发现了规律,需要返回值时参数中会有new **Mapper(),但是mapper是什么鬼?没见过。需要返回参数时且这个参数是有条件时,会有sql语句,object[] {id},new Mapper()这三个参数中,object[] {id}这种格式的参数没遇到过,根本猜都猜不到用法,而且这个类里的方法太多了,重载也太多,根本看不懂,object[] args这个我认为是需要引入批量对象时使用的吧,看不懂看不懂,太难了太难了。
模仿编写完后遇到的问题是无法连接数据库,因为url和user还是什么的为空和null,我知道是数据库的连接时参数没传到,但是在控制台输出的时候,datasource和加载properties的变量都是有值且看起来是正确的,说明问题出在连接数据库操作类和访问数据库需要的参数没有关联起来,又是几个小时抠这个问题,问了师兄才知道要在spring.xml里要和操作类关联起来,然后就成功了,增删改查都可以。
收获:
了解了jdbc操作数据库的流程,但想起有个步骤是插入一亿条数据来感受数据库的性能,我就试了下,发现数据库是性无能,一分钟插一万条,一亿条要一万分钟,然后删除二十万条数据时看到只用了0.4秒,我就知道是我写的语句让他阳痿了,然后搜索发现每一条insert语句都需要打开连接,插入数据,断开连接,但是比起插入数据,打开断开都需要相当长时间,所以我就想到把所有的insert语句集成一条,但是String有长度限制,我就觉得弄个longsql来批量插入,先插他个一千条,然后写个十万的循环。明天试试。
进度:
步骤17完成
评论