JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结
SQL散落在程序四周,不利于维护。 可以将SQL以key-value的行式统一存储,以key索取SQL即可。可以把它们事先存在配置文件中,再加载到内存。这就涉及到SQL语句的加载问题。
传入参数可以通过占位符的方式,拼凑SQL语句,但受到参数数量不定的制约。
因此,可以用#变量名
来引入变量。
查询结果优化: 执行SQL语句后,返回的是一个ResultSet结果集。这时我们需要将ResultSet对象的数据取出来,不然等到释放资源时就取不到这些结果信息了。 一般对执行结果的有哪些处理:
可以缓存重复的SQL执行结果,不必次次都访问数据库(但实际上缓存功能往往是多余的,因为还不如交给redis做)。 为了实现缓存,可以维护一个key-value对,SQL语句和传入参数两部分合起来可以作为数据缓存的key值, value是查询结果。
问题描述: 由于我们将所有SQL语句都放到配置文件中,这个时候会遇到一个SQL重复的问题,几个功能的SQL语句其实都差不多,有些可能是SELECT后面那段不同、有些可能是WHERE语句不同。 有时候表结构改了,那么我们就需要改多个地方,不利于维护。 解决问题:
mybatis就是解决了以上问题