研究背景
今天想试试对mysql实现的jdbc接口做二次封装。java是强面向对象的语言。
每一张数据表都对应着一个数据表类。并不能直接像python一样直接跑数,需要关注防止sql注入的危险。而传入的参数setxxx方法是强类型的,这里我们研究下Druld是如何实现这个不定长参的拼接的。
我们进入这个方法看到是调用了fillSatement
静态方法,传入了preparedstatement
对象和不定长参数对象,这里传进来应该是object对象。
主要逻辑就是stmt的setObject方法,我们去看看是如何实现的。
这是com.mysql.jdbc
下的PreparedStatement
类实现的方法。
豁然开朗mark一下这种写法。