开发过程中的错误(1)——连接数据库

本文记录了作者在实际项目中遇到的数据库连接管理问题,包括未关闭SqlConnection导致连接池溢出及子线程数据库连接释放问题,并提出了使用using语句和线程池等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几个星期的写的程序在测试的时候没有问题,可是等到正式使用的时候却出现了很多不好的错误,结果给BOSS训了一顿。主要的错误有:
1.使用sqlconnection创建连接以后没有进行关闭,导致程序不断创建新的连接,使得数据库连接池爆满。
  解决:使用using(sqlconnection conn = new sqlconnection())的形式进行解决。
2.使用了子线程对数据库进行连接。一旦父线程挂掉,子线程的资源可能无法释放。连接继续。
  解决:使用线程池对分配线程,在一定程度上能减少故障的发生。

还有就是几个不是错误的错误。
    该程序在使用的时候,是从远程数据库获取查看版本号。如果有更新,则取数据过来更新本地数据库,再对远程数据库该条目的版本号进行修改。
    我在这里的实现过程是:先把所有版本号不同的数据ID取出来。然后从远程数据库的data取出数据,生成对应的类。然后用class.save函数调用数据层的方法进行写入操作。
    问题出现了,我很囧的每写入一条数据就建立一个连接,然后再把这个连接释放掉!!!要知道一次同步更新的数据可能是几W条(……其实不算太多……) 建立几W次连接,释放几W次连接资源,想想都觉得头皮发麻……而且更为恐怖的是:如果中间出错了,没有及时关闭连接,很可能在10分钟内把数据库的连接给耗光!


唉……我还是个死大学生啊……这么低级的错误都犯……
还好……BOSS给我擦屁股了,不然不知道怎么死= =。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值