JDBC:从原理到应用
一、是为何物
1、概念
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。简言之,JDBC就是Java用于执行SQL语句实现数据库操作的API。
如果不好理解我们可以先看一下驱动程序的概念:
驱动程序:指的是设备驱动程序(Device Driver),是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。简言之就是操作系统通过一段代码来操作设备,而这段代码就称为该设备的驱动程序,是操作系统与硬件之间的桥梁。
同理,数据库驱动程序就是提供用于操作数据库的一段代码。我们现在想要使用纯Java来操作数据库,肯定不能直接调用这段代码,为了更便捷和灵活地使用高级语言直接对数据库进行管理,JDBC因此而产生,JDBC是一套协议,是JAVA开发人员和数据库厂商达成的协议,也就是由Sun定义一组接口,由数据库厂商来实现,并规定了JAVA开发人员访问数据库所使用的方法的调用规范。
2、分类
据访问数据库的技术不同, JDBC 驱动程序相应地分为四种类型。不同类型的驱动程序有着不一样的特性和使用方法。
- JDBC-ODBC桥驱动程序(JDBC-ODBC Bridge Driver)
此类驱动程序由JDBC-ODBC桥和一个ODBC驱动程序组成。其工作原理是,通过一段本地C代码将JDBC调用转化成ODBC调用。这一类型必须在本地计算机上先安装好ODBC驱动程序,然后通过JDBC-ODBCBridge的转换,将Java程序中使用的JDBCAPI访问指令转化成ODBCAPI指令,进而通过ODBC驱动程序调用本地数据库驱动代码完成对数据库的访问。 - 部分Java的本地JDBCAPI驱动程序
JDBC
API驱动程序(Anative API partly Java technology-enabled
Driver)此类驱动程序也必须在本地计算机上先安装好特定的驱动程序(类似ODBC),然后通过PartialJavaJDBCDriver的转换,把Java程序中使用的JDBC
API转换成NativeAPI,进而存取数据库。 - 纯Java的数据库中间件驱动程序(目前主流驱动)
纯Java的数据库中间件驱动程序(Pure
Java Driver for Database
Middleware)使用这类驱动程序时,不需要在本地计算机上安装任何附加软件,但是必须在安装数据库管理系统的服务器端加装中间件(Middleware),这个中间件负责所有存取数据库时必要的转换。其工作原理是:驱动程序将JDBC访问转换成与数据库无关的标准网络协议(通常是HTTP或HTTPS)送出,然后再由中间件服务器将其转换成数据库专用的访问指令,完成对数据库的操作。中间件服务器能支持对多种数据库的访问。 - 纯Java的JDBC驱动程序
纯Java的JDBC驱动程序(Direct-to-DatabasePureJavaDriver)这类驱动程序是直接面向数据库的纯Java驱动程序,即所谓的"瘦"驱动程序。使用这类驱动程序时无需安装任何附加的软件(无论是本地计算机或是数据库服务器端),所有存取数据库的操作都直接由JDBC驱动程序来完成,此类驱动程序能将JDBC调用转换成DBMS专用的网络协议,能够自动识别网络协议下的特殊数据库并能直接创建数据连接。
第一类最节省投资。但执行效率比较低,不适合对大数据量存取的应用;第二种方式具有开放性,但不够兼容使用较麻烦;
第三类驱动程序是由纯Java语言开发而成的,并且中间件也仅需要在服务器上安装,不再需要客户端的本机代码,这类驱动程序的体积最小,效率较高,具有最大的灵活性。而且,此类驱动采用标准的网络协议,可以被防火墙支持,是开发Applet程序理想的选择(其实这些驱动是为Applet特别编写的),是Internet应用理想的解决方案。另外,开发者还可以利用单一的驱动程序连接到多种数据库。由于此种JDBC驱动程序提供了许多企业级的特征,因而非常适合用户的特殊用途,如:SSL安全、分布式事务处理等。如果用户未来扩张应用需要多个数据库,则选择这种方式是最理想的。由于它具有较好的性能和安全性,广泛应用于基于Web的应用系统的开发。其不足之处是:需要在服务器端安装中间件,这适当影响了驱动程序的效率。
由于我们主流选择的JDBC驱动为第三类,下面给出第三类的JDBC驱动程序结构图:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe8AAAFaCAYAAAA3jtULAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAGetSURBVHhe7Z0JvB3j+cdfLbWnYgm1i0RQW+xNWkuECrUViX0robakCKVqjyWxJJbaaomolopaKopYaq2dikiEJFWqglJKqfbvf7/PnefeuXPnnHvOvfecmbn39/185p5z5s6ZMzNnzvt7n+V93nm+aiAIIYQQojB8LXoUQgghREGQeAshhBAFQ+IthBBCFAyJtxBCCFEwJN5CCCFEwZB4CyGEEAVDQ8WEEKKT2G+//cIrr7wSvRKi/WywwQbhqquuil61Rpa3EEJ0EhJu0Vk899xz0bN0ZHkLIUQngbUEbTW8QpSjkvtIlrcQQghRMCTeQgghRMGQeAshhBAFQ+IthBBCFAyJtxBCCFEwJN5CCCFEwZB4CyGEEAVD4i2EEEIUDIm3EEIIUTAk3kIIIUTBkHgLIYQQBUPiLYQQQhQMibcQQuQcJqrwZcMNNwxbbLFFOOCAA8LEiRPDf/7zn2ir8uy5555hxx13DF9++WW0pnbEj3fSpEnR2kY++uijsPHGGzf9n9eieiTeQghREPbYY4+w9957m+hNnz49jBs3zkT8s88+i7Yozb777mvbzjfffNGa2vONb3wj3HfffdGrRqZMmRLmmWee6JVoLxJvIYQoCIccckj4yU9+Ei644IJw8803h6WXXjrMmDEjXHvttdEWrfFZn7fbbrvwwx/+0J7XiuQM03379g3PP/98+OCDD6I1Idx7772hX79+0auuQRYza0u8hRCigKy00krh6KOPtucPPvigPYK7o2+66aYwaNCgcNVVV7VYj5t6v/32s+d33nmn/Q/22msvW/foo49GaxqtZKz9TTfdNGy99dbWaYi76X2fyc9yvvvd74b/+7//C/fff7+9fu+998KLL74YNttsM3sd5/333w+jRo0KW221Vdhkk03sGOmYOP5ZnOuwYcPsmIYOHRpeffXVaIu298GxXHLJJXasHMMvf/nLpv3G3fcdPe96IPEWQoiC0r9/f3t855137DHOjTfeGIYMGRL69OkTrWkGKxwef/xxe0RUEbklllgiDBgwwNZhIZ9wwgkWI999993D8ssvb2KFqz5Jqc9CRL/2ta81uc55REBZn+Stt94Kb775Zth2221NGF955ZXw85//PPpvMxdddFFYf/31w7LLLhveeOONcM4550T/aXsfN9xwQ7j++uvD17/+9fCDH/wg3HXXXdF/mumM864HEm8hhCgo//3vf+0xLY594oknNlmhSbbZZhsTsD/96U/hf//7X5O1jRCxHrBKgQQ5YterrbaavUbckpT6LDoDdDD+/Oc/h3fffdfEu3fv3mGVVVaJtmhmzTXXNDHcZZddLLEOEOdkPP+ss84ycR09erS9jlvWbe3j9ttvt0cE/fjjjw8XX3yxvY7TGeddDyTeQghRUJ5++ml7XH311e0xDkJWisUXX9xcwv/617/Mjf3YY4/Zehc8wIKFW2+91axVHiEtO7zcZ9FRICZ8yy23hKlTp5YUOtzhgwcPDgcddFC47bbborWhVTY94QL41re+ZY/egYG29vG3v/3NHv16rbDCCvYYp7POu9ZIvIUQooBgUV522WX2nHh1EregS+Gu84cfftg6AWussUZYddVVbR1gNQMu4+eee67FkqTcZxETxnWOeAPimsaYMWOsMzFhwoRw3nnnRWuro619LLroovY4Z84ce4xb7U5nnXetkXgLIURBuPrqqy32euyxx5pgf/jhh+FHP/qRjfuuFt6z0EILhbvvvjv8+9//DjvssEP0n0Y8M/2oo44K5557brjwwgvDEUccYclc1YCVT/wZ1zVWc6n4MLFwuPTSS+382kNb+9hyyy3t8dRTTw3nn3++ub2TdNZ51xqJtxBCFITf/OY34Ve/+lV46aWXLLHsF7/4RTj88MOj/1bHAgssYGL2z3/+02LmxLvj4HoeMWKECTwu6N/97nfh888/DyuvvHK0ReWQsQ3lYsOIbY8ePcyNH3ffV0Nb+2CYHW58zhkxpuPjzD///PbYmeddS+b5KosBakII0QXBwoQ0F6vIHixzXPgOIQMEn9i3J7PlgUruo1yK9yeffGLjD0mieP31162X9M1vftPcLYwb3GmnncIiiywSbS2EEPlA4p1vfv/735u2kLBGAhrjz0lmO+OMM8L2228fbZU9hRNvDoU6uOPHjQuf/fvf0drWLLTggmHEyJFh1113VZk9IURukHjnG76X008/3cbF4yZnGBhlYz0WnhcKJd4cxtlnn92U3r9Vz55h+yWWCCsvsEBY+hvfCO829I7mfP55+P0HH4QHP/zQtiGx4KSTTpKACyFygcRbdAaFEm9S+xkwj1CftcoqYf0opT+N5z/5JJw8e7YJOuUB999//+g/Im9QnpAqR6J+8MPPolyjkHiLzqGS+ygX2eZU3rnyiivCfA0W9CV9+5YVbuD/bDdvw/a8j/eLfCLhrj8SDpEXvve971m1szSYWAWRmjx5shVPYWE42eWXX27rGXvu69P4+OOPLfv+yiuvjNZ0L3JheV9zzTU25GFor17hhBVXjNa2zXlvvhlumTvXhkrEU/5FfpAlUl90vbOlCNf/73//u8V5Kcoyfvz4FmHHjTbaqGmsNGy++eZW9OSvf/1rtKYlFEJZZ511ms7bofoZyWEMZ6MGuVcpc5hp7MgjjwxffPFFtKYR2vFf//rXrUqicj1JNCN52aH2OLqBhB166KFhwQUXjP7TCOcYh+1GjhwZpk2bZiVUmZEtr1RyH+VCvHF7Uzbvqn79wgZtWN1xnvvkkzB8xoyw9tprWxk7kT8kJvVF1ztbinD9hw8fbh4xhkYttdRS0dpGTjnllPCPf/zDiqlg1e68887hhRdeCH/5y19sIg8Hq3fhhRcOBx98sI1/puhJnCeffNJGBFFqdN555zUBd7CUd9ttNxtnzrjrk08+2WbtWnLJJc2Q++Mf/2gFUii0QtiNZbHFFrMcJ46jUtK+g7kNxh6egHXXXdeEP69Uch/lwm3ubpFVEz2ntugdbf/222/boxBCiNI88cQTJggIYVK4gUlKnnrqqbDnnnvaa6qjOQytQtTJ1qaACeVZvXAJ6+ILFjRCi22IhcxzX8jypoAKE3ow3zeiTbnSww47zCYCOeCAA8zixzLGmo5b20BSM5XRSi1e+zyNXr16WYeEc3zmmWeitcUkF+JNLw4WrrJO7MLRYHvGhQshhCgPpVAhWU3NwTKltrcLZs+ePe0RWI9ljCVOdTIvycoUnVje8QXX9LPPPmv/X2uttazD4JOBYIkzFSkzgzEfN9ORkqyMq5xx13hRscxx719xxRVh7733tvexHyxSZihjGtBSi29XCj933PpFJhfi7YXgP2zooVXDR9FsMvHeoRBCiHQQPqzbtFnIACFdZpllzHUO8baV3CKqk/HIhBzMdQ0PPPCACWFy8dm+vOyoR2gRbyx/SqZS16Pcgot7n332sfdRSAVXOhY54o7bHs4880zrHDC9KR0CXPV0KEpBrJ9rQInZIpML8fa5XV9JJCm0xdRPP7XHtLlhhRBCtATLGnd5vERoHMT75ZdftsQu+NnPfmZub8C9jRVMRTImMXFhR6hJJgMS1LDKWZjsBDyRDJc8IN4I8muvvWaFtsot1BXHnQ6XXHKJudPpPMyePbup88BsZSS5UXmTBDpGH02fPt3+lwYdD86l6KOUciHeXqz+zvfft8dKueuDD+wxi4nQhRCiK4G4Is7Eq1lI6kLkmbTEwWUOuMRdjOHee++1x0022cSmGiUZ7oOofaa0NWCJk9me7DikWdwsyy23XLRFI8OGDbM65BTzohY5gk2FNDobzBCGt4AkuN/+9rdl3ebAccSz6otILsSbGASukEc++ihMiaqntQXbsT3vKxW/EUII0QztJdZ1mnAhfmSIM4MW8eZvf/vbJoYOgoxor7feepZghkgC7nAsbyxaMtI33njj8OijjzZlhrsIY8FjdSdJs7hZkonIiDVjwElKY+gaXgF3nTNcjWk7OXas9XJw7nQs0hL2ikQuxBu3Cl8EPTIqp139zjvh8xK9Itbzf7Zje96XHN8nhBCiNYgcbu8ZM2ZEa5ohcZhx3zfddJNZ2CSQuTgCVTCJlSOghCoRb4QbqxsxXXXVVS0Dffnllzdr+KGHHrL38ZnA56aJd6XgYSUGPmbMmNC7d2+LdZNYxzCymTNnmuCTP8UQMAq8lIJtEXmGGBeZXIg3DBw4MJx22mkNR/S1cEVDj2uXqVPDBQ03xK1z54bHG74gHnnNev7PdgxJ4H1CCCHaxsdq33PPPfYYZ8UVVww33HBDuO+++8Idd9xhk3fEs80Zj028maG9xKFJIGOkD9sDMWzGkDM+HOuWWDguc1zYdAQQWk9ei5PmMmeJu82Jn5OQhuV//PHHW8eBcxk7dqx1Cvg8hq/99Kc/tdeMHy9Vme0Pf/iDPRbdY5urWcWAG4AvhAo8peBmOO644yzeIfKNx57KFRsQnYeud7YU4fojsK+++qq5wX2kj0PxFoqiOAgkVrS7wJMQg8YiHj16tI35JomN5cUXX7QOwI9//GMrusLnITX9+vUzyx4qLbri15I2n+ff//73w+DBg62qmoMRx3AzoPNAUZjNNtvMXschNEBiG9NLX3vttbmd1KqS+yh34u3g1iFugovG4UagVi43gCgGEpP6ouudLUW4/likCDTu7AsvvDBa2wgWLiJISJL4N8VacKFTIjUN4uK4sJNQDAb39S9/+UsrRYoVjqhjuW+44Ya2jZc7pU1PAyub4/Eyp59++qkN8fIEOrLPsbLJHKcjsGgF1TnpbNCxwMOQTIjLE4UWb4dSesyQRG8x3tMSxUBiUl90vbOlKNefTHEWxLBW4MpOZpZnDWJPYh1LnqnkPsrXlRVCCFFzEK9aCjfkTbiBc867cFeKxFsIIYQoGBJvIYQQomBIvIUQQoiCIfEWQgghCobEWwghhCgYEm8hKoAKURSUYPwqxS0oJkQdgrSlFNSLZuwrlQHzTFrd6+4Es01192sg8o/GeXcQSgh+61vfil51PRAtZgPq0aNHtKY6ajXu1ffLXMLUNq4l1M/3korAcJNtttnGCk+k4ed63XXXNc2sBNSOvvvuu+05NZrjkz5QNaozai2393oz5peqhlxPalL7LFHdEcqAPvPMM2HQoEFWPax///4VDy8qyjhvkW80zrtGUIT/+uuvtypFXiu4q8LsQZQiZMae2267rWmS/u4EpRd97mCqQ/HdO1SQotwji//gnLvuustmQvLFhRuY+Sj+PyZ0qDfM8oQngQke6IxQr5qa0e9XOTVvV4RrwDzRGAxcG64R18rnthYiayTeFTJr1qxw9dVXhz322CPsvPPOVpqPOsDdAawyJgWgfjEWIl6Qm2++2Sb27w4wPzETHsAyyyzTojwvsxc9+eSTtnxYYjpbykD6HMmlFu6pekCFKWpNn3rqqWHrrbcORx11lIUBPvroo2gLkYRrwzXiWnHNTjnllPDwww+HL774ItpCiPojt3kJuCzUV8eN+OCDD5oFWoqu7CKbNm1aU23hNKiPjGtxyy23TK0VXCs3ou/X3eZYSuedd565fqnDjMDi7uYRDwkdLQRrxx13tPfttdde9v2OGzfOaiuXez/1kGms43z3u98Njz32WPSqJX6uPvGC37/l6Kzrk3a9qQ/9+OOP231MTJ5QSFt05Xu6LXCbp826lYSpiLkPuP/xzjCrVdL7IkRHKPc77FTxRmg7Gxo+p60GsD3EOwQkqdDIT5kyxeJ+ycngS9GVG7q2xDsOc/3SkLGstNJKtq5e4s1kA+ecc465tWfPnh2eeuopm18Y1yezDDFTHe5/BPq9994L2267rc2oRCNNPLPc+4l3I3x8Vt++fW22IiyweMw6DhMl0LC7eHPuhBvoRHBtRowYEd566y2btpD/464++OCDo3d3DL8ujzzyiAm1dz6rZa211oqe1RcmzShqaGaLLbZo1ckToiPUTbyL2OskMYWG2xu57uIKrjUIHwk/hBqgVuLNd8acwbiDmd4PMXz99dfNagYEjIn3EWsEle2ZqpAQwD777GMCCuXej0XFXPPEsPlc3KZMK1iKCy64wBpytkGMuMeYPennP/+5WcDrr79+mDlzprldmROZjkBn4ddl1KhRYfLkyd0mtJMH4uLdlTv0ovb477hu4l1Ey/uQQw4JL730UpO1zTAR0XEQb6xM//46szHDDYy7EhBDLGCsYyxnbmc8AP55bpkfffTRti3H86tf/crivljVHCeUez8iS0wagQfmCsYbwRSHjDbA9c7x7LDDDvb/ddddNyy11FImynQc6CQAnp140h+uVqZUhM0339w+t6Mkf/QMT7vmmmvC1KlTrcNQ6c89npRXb+hEMVd/rSfOKEWlbnM6de42HzBgQAu3eWfe76L7UXfxrgX1jHnTuOImRsix0OQ2r85tvsYaa1hDhsVdC7c5Ijr//PObRYkVyxA9H67FZ2Ld3nrrrSbWuMjBxRtxxpom1k2m98orr2zzDDvl3k9yIuO6uRYMG8Ka9vmD8dQgdJwn5w4MA2NGpe985zt2jJXcR5xPZyStlbveDFujg8o5MVdyubHM3Vl8yok33zkdLe4Xvt9kB0PiLTqDSu4jZZvHoMEl1jdy5EhzrTL8h0xgGnqRDlYmrmdcyojhgQce2CTcnQ2ub6xYEs+AzH/HhejSSy+1BLMkuDSxjBiuheXuVrJT7v0k4u26665NzxlOhZiPGTOmyULlR8ZrFhLCiJuzz+WXX97+F1+Aa8RzXPDQGWO824IY/2677RYuv/xy66Dy2ViO8803X7SFSKNnz57WIePeuP/++63IDgKelWdACJB4lwDXHZnGhx9+eJg0aZI12D/+8Y/NndedoYNDUtcJJ5xg1uy1115rgoorudYsvPDCJppYsyR97b333tF/ggkuhWTIX/CM8ji41smIx7pGrIYMGRL9p5Fy72d43Pbbbx+9CvZ+tscDcNlll9k6rGZes+AhYEwwuFvcOwfuMuf+gk8//dRqBbj7vl6QJ0BMfvz48Sbk5ABwfUQjhD2GDRtmXj8K1mCNY2mroyPygtzm7YBMYVyPLCQEuTXVFcFVfMABB4SNN97Y3MJYsFgildKV3IicC0KLuLeVf0FGOhnfxNeJZePe97KoCDlCgCXX2XT0euOVoOPhIYDuCHkviDcd1WqR21x0BpXcRxLvDqLyqOXpSo3Z/vvvb2PCiXdTtKYcWLEkp7l3gDg59zKuVhLd2MfSSy9t/+tMJB7ZousvOgOJt8gcNWb1Rdc7W3T9RWdQyX2kmLcQQghRMCTeQgghuj3M4UBp5KIg8RZCCFE3yBth6F0aWc2bT3LppptuaiWMK4Gk0wkTJlhp40rmCqgFinmLmqIYYH3R9c6WWlx/36cXHPLXwJDDRRZZxGpRMEKA4W3x8efJbRkiiEgdc8wxNu4/DgV8mJ52+vTpVk2QxEqGyiKCPtQRGOOOhcrUyGkwfwATFsU/G7yoEtXoGFpKQaQ4FFFi+KnDedRq3vzksZWDmgwknyZhljk6GQxbrVT0K8WPr9x9JPEWNaWSm1B0Hrre2VKL6+/7TIo3RYrmnXdeG7pK6V/mGqc2BXPMU5AI4tsiwJQFZigc62lXHUr8Tpw40WopMFKCz6HGPxUF33zzTatPgIgxyQ81DV544QWzkBk66SCavJ9JduhMeDElh2lz6WiwP447XhuCYkfM0vfnP//ZampQS4IOBoWyEO/4OTF3ANfXr7FPAFQJXsmQ86dzQlGpcvBZLt6Vfk4psa8G/97K3UdymwshRAFhXgaqGyIwzK/P0EOmuaVwUhK2pbASIg2IpMNkKgg376feP5Y2+6UAETUeiAUzy96ee+5p2yN6DnOdI1a8B3F94403mipSsi6+UK0S8cNepKPBc1+g3vPmU+p26NChNssgxZmonohXIL6kwfmWWupJ7sWbHl78UQghREsQDibfgXJTwHp8Nl6OF2sajjjiCBPNOFjI1O/HxU51QogXaWI9E9/QPlOpjyJOcNFFF5nlHV8o+ERNfaAMNValT8bD51C10C1OrG2e0zkAvATMMcAya9YsW5fEJ+Eptzh0As4888xw0EEHhRtuuMG8Glj6lEH2BWFnOzpGcbCqSy31JLfiTe+M3iDTKQKPvM65l18IITIBFzdQOCoJU/MSi2aq2I022iicffbZ0X9CePXVV+2RqWrTwDJF1L20b9zyJiZOJToemRd/9913t/WIIQKcXCj4BEwwBN6eI97MwueV/Zg3H0v5yCOPtMS1tIVqgHEQe2rPE1unZDOa4ZMQEe+nvLVDdUO8Cj6LJGLNMdNJ6N27tx0f8xQQd89rSdxcije9Q9wn7uJxeM36rLL7hBAiK7wefilcGNPEBusalzgCzELc2aEWP5QqB4t4v/zyyzZhE5BYhtsbllxySasiSIIbk/24sCPUuLEB9zNWOYsLLnPrAy55QLyZeMjj2lR0pAwxsXpc3WkLrnxgH37sdCAQXyZJIkeKRDKqGzLdL7F4h07CiSeeaMfIZD3MX8Hnk1uFBU/nhqz4ON7RIPZdaqknuRNv4h9ccL5ovkhPTjj//PPtNespU+lxEiGE6KrErUu3VktBXBjS5oXHqsQFTOyZuPTxxx/flEHuiWPM+Z4EYUScPWbMLIIIZbyD4CFNXOIuxsCELrDJJptYPBtr2bPCyXoHOhx0StgnVrC/hzYfS5k4PR4D7zgwCx6vWXzSH4w5MspJbqaTwtTEdCKef/758Mknn5inAVc7/58+fbrF+3GFk+2Om59HtIUsevbJHPy48Jl/gONmSmT0xseAe5w+baknuRJvEidwdzCdoveePIZCBiRu81VWWcW+CLZjeyGE6Gq4NczwLcAVHB/ylARB9hnumLM+DVzACBIQS/bPwF0NTBXrcW0HK5QMcQSN54hb/DgQZER7vfXWC3PmzLFMccBKxarFEiYjnYmNGJvtAkdyGGDBY3UDLus+ffrYc0IAdATIYEfwPfZNZ4bXLHQAEH/+Rxye97OQme4ufiAT3/+HeDNNL48cLx0iLGyyzonDcy2Ig9PhIHOejk2vXr3Mw0CiHLP/0bEotTC0LWmx14pcDBWjB8iN41mSgwcPtgQHd6HEoZdF7xELHLjQ9NBKuXxEtlQy5EF0Hrre2dJZ1x9jBYEje5z2kexvDBbwz8CljAXMeGuGWSFkWMfEn534tggp2yGgWKNXXHGF/Q9BxKWMoGGxYoHi1iYWjpgiyFjHdCAQYcSQtpn9rLjiivacsdZ0GpATLFksaNzrTKF83HHHWRIdbnssWVzqxJzpSOCqxqLluGj/+XwSyRB8vAO09XgN0mA9Ln3ODbGlMEsczp1EPhLJ7rjjjnDGGWfYMfj0u7i527KWGcJGch+GItY4x8/x1ZpK7qPMFY+eHoPd+eIQYNwj5557bqpwA+v5PwPj2Z738f5kj1EIIYpKubnrHVzETDn70ksvWVwZ8YoLdxy2Zcw0lizzuJOM5SDUJLRhCPG5d911lwkwFi0iQjb2fffdZwJIMlw825x5zvlM4spUG0MgcVWzPXAOxJH5fDohCDcWM/vFEKPd9nBAVvPmE5pNLljQcRB94DrnhUwtb3p69Mq4ISgKgCjTI6wUYjwkHXCT4d4YO3ZsarxHZEclPUjReeh6Z0tXvP6vvPJKiwpiiCAJbKWsVgSXhLDRo0dbpjfWNAtjqekA4CmlWAyWPfLDeG46Fg7XkM+o9bz5lVreHB9eBToaVG6LV7CrFZXcR5mJN707MvrIUqTXhPC2Z35j4jC4V7jBuKi4avjiRT6QmNQXXe9s6YrXH7f6xRdfbJ5O4t8UayFJrdQkHrTn5CwlwUrGO0BMmnwmhBZRx3KnoppTr3nzXbyJ2yfBU8DibnOq2FFxznOwak0uxZsEBTLHva4ttWcR3470ZugAkH3oXwKp/1j0eR2f152QmNQXXe9s0fUvD9aw8pPappL7qK5XkUo9lOlDuBFW6swSM+moG4L3sy8W9sv+cbfweUIIIfKBhLvzqNuVpAeBa4NYCW4MStWRfNCZsD/2y/4Zy8fnMdZPCCGE6ErU3G3O7klGoDoaLhOGGhDrjmcsdjaMxyORjfJ49PQYZkGcpq0KRaLzcfePqC9y22aD3ObNEM5kik9izxRXiYMmUCFt/Pjx0RoRJ3O3OYkOJJBdeOGFJtwkIpD5V0vhBvbP0AIyJPlcUv9xz8erFYn6IPGuP7rmIi8wkQj5SIxBZ9gYRVBIdmP8OmO7gXXJyT9E29TM8qZ2LkljVP5hbPZpp53WVHS+nlDMhaEDjClkjB9CvsIKK0T/FUKIzkOWdzMIMuO9MZoobkJ1TGY+owY6Qo6AM2yMAl3U6mCiENFIppY3A/sRbirc8DwL4QaqtU2YMMGOg+PhuRBCiNpCIRjGdiPSTBHqs50xTJh1gHCL9lEzy5tauJTfI7ucqj1ZQ4UdqghRBahcjWAhhGgvsryboVom47epUU55VKYcLdf2MguYaKSS+yizIi0dgTg2PTYSHhj0T+EAIYTIGol3M9TbGDhwoE08QnlRhDs+YUgSXbNmcivelM+rdEawZKF9h/W4ZEr9Xwgh6o3EuxnaeeSFnCcmT4mHLBF2vLNUWROtqeQ+ynTE/FJLLWWF91mAHpq/9vleHUqeckK+INzAuO74epVGFUKI7GG+CRKXiXUzOxllS72dZtpn1sfbbpKKReVkKt6M8aPn5b0vxNxfM8NNGi7uaYsQQoh8sMwyy4S3337brO74bF5Dhw5t8ehzjIvqyFS8manFe10Q74mRnZiGi3vaIoQQIntwlzNDJEOEiXNT6ZKpQmHYsGEtHvM0zWaRyFS8EWmmdGMBEhr8NW4WIYQQxQMXOFUtTzrpJBPymTNnlpwoimx0UT2ZijcJDVjYbmVTGc1fM5A/jufVEdMutQghhMgehgfvscce4Ywzzgj33nuvzeNdapgYpbMpY03Ok6icTLLNjznmGJuMHcvbx4AzoTpfLrXPgXlZmT/Vs8mZt/Xjjz+2/5WD2Ldc6EKILPAQoLLNW0NhFiqrff/737eENSqusY5JpIiJb7rpptGWopL7KBPxPuKII9qcZN1BvPfZZ58waNCgsNxyy1kPrhSU3ltyySXDKaecEq0RQoj6IfEWnUEl91EmbvMPPvjAHh999FE7OD9ArGZ/zUxgDgXs6WP07t07WpPOxRdfLOEWQgjR5am7eH/55Zc2dKBHjx42eD8J1dPgvffes0egOg8oK1EIIYTIQLzvvPNOq6yz2mqrRWtaMnr0aIt93HjjjfaaYi1Y6oh9MolNCCGE6I7UXbyxnhn/t+OOO0ZrGqFo/brrrmuJacStmQVs2223DT/84Q+tmAvTi5Yrai+EEEJ0Fwo5MYkQQuQRJayJziC3CWtCCCGEaD8SbyGEEKJgSLyFEEKIgiHxFkIIIQqGEtaEEKKT8EQjIToDJawJIUQdkHiLzqKte0mWtxBCiLrB3N7zzDNP6N+/f7RGtAdZ3kIIIerGAw88EKZMmRK9Eu1F4i2EEKIuMHfFgw8+GB566KGmeSxE+5B4CyGEqAuvvPJKmDt3bnj33XfDtGnTorWiPUi8hRBC1AVc5k78uageibcQQoiaQ240LnMH8Va+dPuReAshhKg5r732Wnj77bejV8Ges060D4m3EEKImpPmJo9b4qI6JN5CCCFqTpp4K+7dfiTeQgghasqsWbPCnDlzolfNzJ492xZRPRJvIYQQNaWce1zWd/uQeAshhKgp5QRace/2IfEWQghRM956662yWeUzZsxokYUuKkPiLYQQomZU4haX67x6JN5CCCFqRiXCrIlKqkfiLYQQoia88847Vs+8LdiGbUXlaD5vIYQQdWODDTawx+eee84eRfuQ5S2EEEIUDIm3EEIIUTAk3kIIIUTBkHgLIYQQBUPiLYQQQhQMibcQQghRMCTeQgghRMGQeAshhBAFQ+IthBBCFAyJtxBCCFEwJN5CCCFEwZB4CyGEEAVD4i2EEEIUDM0qJkTG3HPPPeGFF16IXgnRtZk0aZI9alaxjiHxFiJjNtxww6CfoehOzD///OGJJ56IXon2IPEWImN8fuMTTzzRHoXo6qy99tqhX79+0SvRHiTeQmSMi7fciEKISlHCmhBCCFEwJN5CCCFEwZB4CyGEEAVD4i2EEEIUDIm3EEIIUTAk3kIIIUTBkHgLIYQQBUPiLYQQQhQMibcQQghRMCTeQgghRMGQeAshhBAFQ+IthBBCFAxNTCJEHfnss8/CnDlzoleN7LvvvvY4ceJEe3RWXnnlsNBCC0WvhBCiGYm3EHXk448/DoMHDw7/+9//ojXpfP3rXw9TpkwJPXr0iNYIIUQzcpsLUUcQ44022ih6VZqNN95Ywi2EKInEW4g6s9VWW0XPSlPJNkKI7ovEW4g6s8UWW4Svfa30T4//sY0QQpRC4i1EnVl88cVD//79o1et4X89e/aMXgkhRGsk3kJkwKBBg6JnrZHLXAjRFhJvITKgnHhvueWW0TMhhEhH4i1EBvTq1Susvfba0atm1llnHfufEEKUQ+ItREakucflMhdCVILEW4iMSHOdy2UuhKgEibcQGbHccsuFfv36Ra9CWH311W2dEEK0hcRbiAyJu8nlMhdCVIrEW4gMkXgLIdqDxFuIDGHmsFVXXdWWlVZaKVorhBDlkXgLkTEkrsnqFkJUg6YEzZD99tsvvPLKK9ErIUR3Z4MNNghXXXVV9EqI0sjyzhAJtxAiznPPPRc9E6I8srwzhF426AcrhFB7IKpBlrcQQghRMCTeQgghRMGQeAshhBAFQ+IthBBCFAyJtxBCCFEwlG2eIcouLY/GwYuiU824bbUHohpkeYvcIuEWRUdCLGqFLO8MUU+7PLo+oshUe//qfhfVIMtbCCGEKBgSbyGEEKJgSLyFEEKIgiHxFqKdfPrpp+H//u//oleiyHz00Ufhgw8+iF4JkX8k3kJUyccffxy+973vhc022yw888wz0drW/OY3vwkPPvhg9Kp2vPHGG+HQQw8Ns2bNitaE8O9//zsceOCB4fzzz69pB4PrsMsuu0SvWvLZZ5+Fv/zlL+GJJ54It99+e3jttdfCo48+mrqU4u9//3v4xS9+EU4//fRoTfs477zzwi9/+cvoVWsOOuigsM0220SvhMg/yjbPEGWXlqee1+ef//xn2HbbbcNZZ50VFl544XDkkUeG++67Lyy++OLh7LPPDpMmTYq2LI8fK8K11VZbhS233DLce++9tq4U/p6xY8eGW265Jdx5553h6KOPDl988YWJ3te+Vr6PPXHixHDxxRdbR2HRRRe1dewDwfvOd74TLr30UlsHG220UQsx33zzzcO//vWv8Ne//jVa0xJEb5111mn6Lpxvfetb4fe//30YMGBAWHbZZcOtt94a/aeRn/3sZ+EPf/hD9CqEb3zjGyaOvCcNvwbXXXddCwuYjtLdd99tz+kkLLDAAvYcvv/974ebbrrJvqc04vcNx7/SSiuF2267LVx00UXhxhtvjP7TNu29/6q9f9UeiGqQeGeIfqzlqef1QTQuu+yy8MADD4RTTz01vPPOO+Hmm2+2/7l4//jHPw6LLbaYrUty5ZVXhn/84x9Nx+riOWbMmHD88cebcGy44Ybh2WefNWt01113bXru79ltt91C7969wwknnGBC95Of/CTss88+9r9S+DX6+te/HpZffnl7jkDttddeYcaMGWHppZcOSy21lK1fZJFFwhJLLGHHyfHgGdh5553DCy+8YMfxgx/8wLYDRJNOzMEHHxxWXnlluyZxnnzySdvfm2++Geadd14TcOf6668Pjz32WPjzn/8cfvvb39p5H3PMMSa0iDcW8EILLWTbXnDBBXb+fg1++MMf2rFUws9//vMwe/Zss9z/9re/WafErwGsvfba9nnsm+vk4v3SSy+F6dOnR1s1wjFxXfiukgwbNix6Vh3V3r9qD0Q1yG0uuj00+lh33/72t8Pnn38enn/++TBw4MDov83MN998Yf75509d5plnnmirRtwSxa0MCMlJJ51kjxB/DgjHu+++G/bcc08TUzoJO+20U/Tf8mCZI6RYzwjfH//4RxNuYJ9Tp061Bbf1//73v/DUU0/Z5wCeBYe4LwJHpwNxxR2PcAPr4suPfvQj+yz6/l9++aU99wW222678NOf/tSeL7PMMqFfv372HJ5++mkTf5YPP/wwWtsSOj98RrmFjgcdnBtuuMGuP14OxNmXUvA9V8omm2wSPRMiX8jyzhD1tMuTl+tTrdv88ccfN7e3v/bzKEVHzo99u0XpViuCO2fOHDtuXMvw3e9+N/To0SMst9xyJvJYvJSfPfbYY62jwfvoLODix81+2GGHWRyYWDpuZoQ9yWmnnWZW9VprrRUmTJgQ9t57b7NosYSxih9++OFoy0Y4BizyNPwa+DlQUnT48OG2rhT+nl/96lfhwgsvtOfOkCFDzBuRZnkT0vBOVVtwjjvssEP0qjqqvX/zcr+LYiDxzhD9WMuTl+tDHPx3v/udWYNYi4gZ4oQL+vLLLzeLz5OdsGT32GMPE09w4VhllVXCpptuGv70pz+ZqxfL15935PzYd1K88SLgusb6JV4NxL5xn2OlY9VjuY4cOTKMHj3ahJL3IdzElf/73/+aJYvwcT640wkjJOH4OSeOgX24q55rRPydhTBE3759Lblv6623bhGzjrPkkkuGBRdcsOkcuCZ4I+hgkDswYsSI8NZbb5mlzf/pXODSR4ixwHns1auXeVHonHgIIE288TwkwZuAl4LkuCSrrrqqHV+1VHv/Vrt9niBB8o477giPPPKIfU/cL7VMlKwn5FTwW88bcpsL0Qa4hQFRIzaOa52ELASE+Om4ceNMKFnI+P7kk0/M6ouDq/a4445rctnGn3cUxIyGn0dgCNtdd91lgvf222/bOhpSYtPvvfdeePnll024gfPw80OgsJ7/85//mLXpLnUEkI4LkKA2ZcoUW2iwAdEFXPLA55D853FtLP4dd9zROjUIbdrigso+PEGPa0gOAMlleAAQcmLb55xzjgk3cO1JcDvkkENsu1GjRtl6OgylOPzww1stCHep/9EZEaXh/uDeJ+GS75F7rqsIN+CBonOYN2R5Z0iRe9r1IC/XB9cyLuDBgwebaGEdYgEC7ld/jehgWZKkhkhieZKUhmu5lpY3sXgSxhA2hJj9ebY3HYRrrrnGPhshxEvgcGwI+QorrNBk7SKSrMf1Tua7d0KuvfZaS+jjPHnEpb3FFltYkt32228fzjjjDEvCYz+8HzFElOkIAMe37777WocAqwzRxY3uLul1113XPANY53SOPFEPEcBaxgoHchG804M1f8opp5jFTePKiIFvfvObliiHFXj11VenWt7uFaGjMH78eAtzkJxHp4cOD/vFg4CHBYuczyOnoFqqvX+L1h4gHYxyIOcA8O5wP9BxIs8h2YEtAv4dAB1g7nV+R9yP/pvPC7K8hWgDdxmTyAYIAKLtcVN/7VnJWLUksYGLFyL961//2h4h/ryjIIwcQzzjm4Q4Ms2xgufOnWvrcIUjQogj46cRpbgbm2FpCO96661nAkemONBIY3nTGOOO3njjjS2u7ZY+cXSg48DnAW70Pn362PP+/fubUJLBjpXs8XMsd16zILp4Nvhfz5497f0sngXuILT+PwSWpDhi+3QeGFqHcCPw8azzJHRM6PCce+65tj8+j++DY0DwOW+y6zkWXMDtEe7uALkGCDceFkScXAk6dNwPRRRuOtMO9Rv4PdEJxrNEXghDKvOExFuIMmDRvf766zZ+mrh3JTCm2Xn//fftcf/99zeLymOx8ee1AEsSFz9Wtw9vQ7yxNBmyRUY758Z2Dklnq6++usXx8RQgYgg3sXDiyMR+yUBHGLHYH3roIXufx9XpqLh404Bjiftz9kW2O14J4vHANeA1C8dCZwZLm/3zv/gCWM48x9oGsvWxlBBdOgdYzoiGJwuyPRZ9HI6Ra4CF6J0xT+SjoA0dCIbQEePkmP0cREvoJHEd6aTSwUobnVE0jjjiCHvkHvLQDR0Tci7o8JaqJ5AVEm8hysAPFmFYc801mywwkrpwo3s2tb/GekuC8ANWcBysVNy8nUEy5g1YoViU8OKLL9ojr7GUOCfcyngUfBs4+eSTLcaL+514PtYs8XtvtBBf3OWIGyKLSxrh5LPdbe0eB7Lccac7WLqEHyZPnmyuSMCtzmsWjpdKbOBucY+buuXtw/EQaTo+dCZg2rRpdlwcK8LtFv8BBxxg7n5CGECDTOeCz+O4KUAD7A/LEQueffJd4ZngGnCsnjcgGqFDR3Y/3w/j4uPDALsCyaRF8jUAr1SekHgLUQaPjxKLdbDAcQ+yxF/jOk8WVfHyqAynikOCD65nT+rqCAgjViaPDkJIDJJ4u1uidECAc6HSGslFq622mq0DBJBtsTYpFEOCGALNcywrktmOOuoocyn7GHQyzMlcJ06MVeudFCzZ+PFgqXtSn1s4uOl9HYt3MrB0AJHlOH24G1XdgM8kFg10mvh8XO9c+/j1J4GN8yd5Djg2BJz3EmbgGAHvCF4HHgcNGmSxfs6VMehk7stt3hJCDXyfiHaltQjyDh4Xh3smDp4l7hs6iXlCCWsZUrQElXqTh+uDIGGRMlwMdzjCRwPvRU6SYHkiMggc4oOLGOuNBcsRlzWiSWb3zJkzzfok4a29IF50AIhDE5/DmsbaJL5MbXNcgPwfFzMV4jgGrEwaI0TJi8KUiudhBZPoloTOARYKLlNEEpEnGQ3LPd74ES7wpL54TDENL7KCcAIeACrXcd3ZN/tIejBwZ/KZfC/J7wTX7plnnmnnyvvpmKyxxhrRfxsh7s33RUIfiVZs63ANEXA6Ru2h2vu3KO0B1xEB59rFO7VxsMrj1zLvMKTRq+ulXX86tHTkCRURZskDEu8MkXiXR9cn3+SlgaYJc5d6nuiK4k1oglEXdKjw1GB5M2yPpC5i4CQ20omis4sgkuhF5rmD65mQBGEPOoyeE5IGnSoPw8RhJMM999xjoSeGCHYGdAB9uGLa9UfYOR/yQego5wGJd4ZInMqj6yOKTB7FG+HEe9Hezg75DyeeeKIN8yMjmxAHWf+IN2JLKIhwCMMCEXivD+DgkcJrc//999tQLCrYlYJkSxIqKfcbh1EKnvRIXoPXGQCOwXMtqLuPq5vSwIhzuRCVX3vyJXxOgziINl4mRpJwbnlAMW8hhOgmUOAGq5fyuOQYeFJgpbz66qv2yPA/wkfUfscCJrxEZj/7poNAkiCJfogiC+VqCbPwmVjciLhDjgEdFl88kRAot4twxhcXbuB5/H8kYgIhGBJJCSWRSMrxVQKjLdLwyX3SygRnhcRbCCG6CThaEVdyL0j0I5kPQWeyGEZVtIVPeIO7G9c1IoyFy0gEhtrhJif/AchRcCsYASc/g3HzCKlvA0OHDm0SeRYSJNPwkQnE2Uk2ZOSEr/PliiuusG2pVeCJmtXgVQWTuHVP2CAvyG2eIdyoUEs3WZEp8vUhU/uVV16JXolawT1CwZY8Uu39W4/73ZPN0mD4HKMmcIWT5R+vV+AQ40aAvaDPJZdcYkMESerjvYg1rmyGDuJiR9SZG5/EQxIZ09zmVLJbccUVLSmMOQKo8ge4wNlHOdd6EgQ8ntTo15R4danpfMG3o4pacsQIkKhGSWOOj85OHpDlLUQNkHDXB3V8q6NcrBsRxu2MwJOUxigLRIsx+I5bnoxoYFw89eoZG0/WP6LMa4QbEG5GVEAyY5+x+z48i06CdxRIgPTXZPvHQcRxX5PExsRAvE4udEA6QinL2+PlsryFUY+edpEp8vXRd1t78n6NSx0fM7kxJK5IIOZY5Ag67vWJEyea+BJzJkubTPP111/f3OrUNsAyJ85NkSKGWGERk4CGtU21PqCTwLDFUtApYEy/D/ejMAwJY6xj2CNDEOkUMFTRSSal+XdQqeVNiVfqIyRh2CFDLxlyGY+5Z4ksbyGEqCNF7NBhsbN44R3EGDEjExyrG1c3rnbGflOEh9nnyDQnI33zzTe395DFzTAv4se4z92yxoXuM7dR94DnLNROZ99A1rkP5SJe7/MKUFWQ5750lLiXIU7cS5AXJN5CCJEBkyZNMiH3xYmv6+yFIV6VQAEfqt6RlY473AuyeIES4tMU8OE1oowbG8g+B0QYFzPZ7F4fnvMlZox4U3IUlzqWMvt1axeLnecsdBR8qlbGirMdw9R8AdzcyXUdodS4c5/+ljkO8oLEWwghugnloqTEixFdXNlMfYu7miS0eKEUr4VP5TlEGOsZ9zduc9zcFGzBrc7wL8fnAIgLH2JIZ8LroiPMxNBZeO54zBwL2ysB+gKcT3wd4g8k0rE4zBYXf12K+Ax2cah/D3kqlSvxFqKLgzuRMa9pkFxEw4h1RcNHkhGFNtKWUjD0iDG8Xm9cFAfK9O6+++42xAr3NRY0dezjdenj+KQvuMNxk2MRYx0j4rNmzbJx1Yy0IEucmenoEDD+mo4AuBuc2DfPvZQux4GQs/AcEGOf+Y3hZS7IcWGmExFfh0sdiEvHY9NMplNJrJoa+Wl4El6eLG8lrGWIkprKU+Tr05Fjp1GMF88gZkhD5ok+SShqweQJ/pkOQ20YT0v8kbmJGYMbh4b2D3/4Q/SqMZ6HWzM+BjeOnwtTjcYbORpuJvAAOgnxOcKZVIQkH6im4lUldOQac30pGEKSVa0odXyMf6bDhBuZucWdetzvI0aMsCQyks9Y+G6qKXFLchhDu6gFT616BJoEMo6dIXtMdIOI4lIfN26c1afnM0l0I0OdURjcl4zD5t4jca9Ux5L9MBEOw8i4d5NzhPOZJKx1RvKfX3s6uhx3Ej9vSsL6ULaskeUtRM4gS5eYH8NuAFclsbi5c+daXWVfqAZFo+NxSKpbxResFYSCR8bm8twXBBcLC6sLsIDilgmlILFiWLxhc+5qsJqoWuWLCzcww1r8f8z/De2teNWZ4M6lGAnjdKkO1ll1sYsEcWE6Z8ccc4xVRKu2Nr3fC9yLiCaiyv2EiJJFz0Q0jOmmg8d9i4izDe537jfPIEfMcbcjzED2OJ0WFp4DnU7qpOMNSAo3MO87HYHOwH9DpSbP8Y6zz0SXB2R5Z4j/ENrT0/b3+hCIeANLViixGXr19K6HDRvWIksyuS2uLXrS/KCXWGKJ6D+NMM6TxpYyhTS4JIhgNSEOtaYj1ydrOnLsCBxuR4SQohgHHXSQfc9YayQc0eiyju1wVfL9pEEi0ZgxY6JXLYnPjsSx8n3i9iYLmMYdC8NjnYgzn+PnQmPNsZBN7OUoS8G9AhS/wNryoUFtDd2phEquMfcsgs3wJWKvyTnUa3lvlTo+v35ZWN4dBbkg2QyLmu8eAe0KMESMDgekXX86erjw6YjgbcgDsry7GFhrTKlIQ4Dg4gLyikdJ2BbLi0YaF1YyW5P3UlWI/WA50QngxiXGKWoHVg2dKBcaTxIC1jNeluQdkoqwaACXHsIbX3BRUwULmE+cRslrN88777zh2GOPbRIMBJvnXrsZF6jHERHuNLgPOJZyi8PxYZXVA2KpiDWdG8Yn47ZFaJLCLaqHzr7Pr16q01hESrnugQ4LHiTCPMliM1ki8e5i0EPEymGIB5YXpQIpnEC8KQnbUkfYYzwUInCwUijEwPvJHMUqY7/MS01nQNQOJnUgEcgzX+NVn7BkcXXyiCvR3d5YsghwcvHxqW5Fu6MN8SarF88MMJc1ta4pZUniWtriw2UcxJ4kJ1yXlJQkiQlvAdYkjby7P+sBnVNc/LhiBw0aFEaNGmUdUs8SLgUWZK0WJ7meOdeLDG5vMs1xm/tQrqITd4cn73PyO+j40fGtNsxQSyTeXRh6iTRmgCVSCrfKPbEIyM4ECi7E5+MFGn5ROxDvl19+2apJARYkMzcBmbh4VnAH77DDDk3CjlD79IvECrHKWbwh8okVfPIJvkMmpfCkMVzouEPxxjBcKG3xIhnswxsxOhC9e/e2hB4Secg0RqCIKzNsqB7QqaQTQoeVut2lCm2kwTWs1eIk12cR7+9MuOcQcM6DeLTfU12FsWPHRs8aoYMKa665pj3mBYl3F4ep+yCtt8/YRzKVsVLIcGaMpeNT/9UyG1e0hoYQccYKZvGkovjQHVzmgEs83nDee++99kihDApsYC17VrjXfMYSxypmn1hN/h5c6ljKeGK4J7zjQIyd1ywkHwGdPTLKSUyik7fGGmtYg05MkMIc3Eu42vn/9OnT7T21hGQ7jqE94DWo1eKk/Y/fZbJTXCTomGGJct8wDMw7l0WGziwk8zi8U8xIjDwh8S44NMTlcLdp2rhNGl5c4rhnWRjK47j1kic3UXeA74FkQ+K2xJQRzPjQKwQZ0Sb5i5rRv/3tb2097nAaGSxhks/IRmdsNolR4G5BGln3nBDX9nG7iAkdAbLQEXyPfWO585qFDgD3E/8jDs/7WchMjxe3wPr1/9VDvOnsEBbCTU7nAzGv9L5Nhhk6c3HS/sc1i3+vRYMEWJIhuQ8YfYDXJR52KyJ4uByfeY1kR2ofMP48b5a3ss0zpL3ZpTSoXuaQm4xGwPeVzOIlBnnWWWfZ/2lMIb4tblMym0lw4n24iGj4PCOWH6jHRetNe69PHmjvsZMYw/zGdMqw0BBhvmO+J74PhtbwnMxYXJf8fMmAxYKm8WGcLUmGhEnomGGBIxY+4QLWBWPGH3vsMRM8LGYsJwT/+OOPt9wG7os0WI9LH9c61j2FWeJwzj7uFuvljDPOsGNgeBCJb+DD0dgH9y3jeNtLuWtM8Q7qbnPMNMDeiU1Sy3ur2nugiPc7IRLCFowdB+4/OoTcu2nDu/KOt5FJWO/fT16QeGdItT9WrGESj5gUgFgTPxAaZvB9xcUbIaBHTENGPNAzk5PbYlW5S4hGnfgoVZGwDsguJ2vY3a7gx1FritiYOe09dixjevp8t3w3JJDx/XHNEW8aEaxyLGkaTLZbYYUVbDpExCoNvjusUgSMjhjiz3f/9ttvh169etkwQcQb8eezYPbs2ZbvQKybYWMO+2G4F0PV+D/FTujsYXmTAEeyGkOgSB4jUdKrrvn1SNKR77bSa4wr/5FHHrEODZXk4jHnWt5b1d4DRb3fCaPQSSP7vFRt8CLDaAVyOfKGxDtDqv2xMlyLRptGkUaTHq9PHO/7wqLBRU5RAYSYBpvYqY+3hfi29I7ZDmEgVkmZRMC6J66F2xPrjCpfiDqxcKzBeINeK4ramEFHjp0qVPHGAmElgc1d4EkY8oUoUyQD8eT7YqGCGBYwsWyEne+OnzsuQC8jCRwrn0HCWlvf62abbWZCyIxPxDzpPLpAc09i3WPl14P2XGOEBgEnmY/7nqVWVHt8Rb7fgU4R9xgFgcixKWoiG78R8oGAmu2VTuZSbyTeGVLtj5UGljHAJLrstttuYd99922Kefu+AEsIa4vscXdxxolvy/ux8GiUSVLywh1AQ4d7Flc6P0b2S+eBjgDDcWpNkRuzjhw7HSesW6438W+qTPmkDGkQFyfjOwkihWsbDwrZ4Agtos735zWlgfHXlIUkVFKqwpRDBxK3OHFmwG1KYhoxUPbNPhheWA86en/gwahl3Lna4yvy/S7qj8Q7Q/RjLU+Rr09ejt3d2l2RvN8f1R6f2gNRDUolFqIL01WFW4jujn7ZQgghRMGQeAshhBAFQzHvDFGMqzxFvj5+7KL2KOYtuiOyvLspZBeXmkmHLHOGJZGtTEUvxh1TrSttKQXVwch09mFE3Q2Jd33QdRbdFVneGVJNT5sx2GQOO4y7ZuiQTxKfhFrU66yzTqvGzQu7MHnFsssua9W54lCog0IcDkOAKODixWCS+LEzpMzraANlNpkHGugkxIfkMKVgfBKUUsgSEUWm2vtX97uoBol3hlTzYz3llFOsihXlJ6lJTuUrxv5iITP+20E0F154YSuwQsEOyp7GefLJJ23sMHXMqXGNgDuUrqRoBTWKqZnNWOBjjjnGCnog3owX9lmoqNjGcfuxeznVSqA6HMffFmrMRJHpTuJNbQIKAlHAx4u0xI2NIkP5aObRzxtymxcEqhUxJSMFO4CCGA4TRSDquKgRV8qiItzAuvhCtTVElj4bpTh57gtQC/unP/2pPacYDNW4HGpEI/4sXkYzCZNj+IxYpZZKhFsIUQzo2NNuMJUmbRRld7uKcAOlgAkl5g1Z3hlSTU/7kEMOMRc5Fi+lMymJicsb0d1pp51sYgrKUh522GF2s1HT/KKLLmqaHSoOdbCxqtdaa60wYcIEq5ZFGVRi2FjFDz/8cLRlI5QHLFVGMml5U3u7rRKb3cES4TuizKmoLdwjpSaTyJqubnkjHVQCvOGGG+w1pXGp/Ni3b1/r+BdxYhL/DoDZ0i677DILI1KGmnLUeUKWd0FgNid+ED71YtzyptwlxTh45Aez++6723omn6BXnFx8hiWfXMT7b7jRmVzCZxHjR4ilzOQYJK6lLbjL4nDzU06V2Do3/DPPPGMzm+EJoBQrdba7AxLu+lDEjl1Xgfr2CDfePkQc44HJjyihXEThjpcGpt0ipEgOEHM6YCiVKk+cFbK8M6SanvbAgQOtFnMcbi5qS/N+JhShmD493xNPPDHaIpgLiwknSFBjikbgh0WNaixqCu8PGzbMZqjihqUTgGVOr5PjI9aOZV8Kn62MbTgW9vHPf/7TLHimslx//fXDzJkzbVYsPp/OQaUUzRKJU+RjLwp5v8bVHl+R7hnyYujYMwkSyarx8FpR8etP+0iI0CFvCKMHIcfDmBdkeRcEXNseM1533XVNZPnhOCSvwbPPPttiNh/c6cDkJMSlsJY9K9yn+cQSxypmn++++27Te2hEsJRPOOEEy15n4hJA9HnNwqQYQEyIjHImqSChbo011jDvwPPPP29TMpItP2vWLPv/9OnT7T1CiOKBvXfhhRdaXJs54LuCcMdJzlOP8QO0rXlC4l0QyBDH8mb8NIIZH3qFIHNjrbfeemHOnDmWKQ78yEggoydJRjpTeRLX9uQ03FtA4houcyB+yGT60L9/f+sIkMGO4Hv8HFc5r1noACD+/K9nz572fhYy093FD1jh/j+JtxDFhd8yU9Qi2uW8ckXCQ4kQn3EPGHKLYTNt2rRoTT6QeBcE3NsM2cLCxsplOJhD0hlzK19++eVhlVVWMfFGuLGgSXJbddVVLQN9+eWXtx/dQw89ZO/jpgTm4XXxRtB33XXXpufsiyItY8aMsaFkgEXOaxaOZfbs2dYLZ//8L74AmfA8xwUPlYzxFkLkk1tuucUeDzzwwKYpiZMULduc+e5LgYdzxRVXtLYUQyYvSLwLAokhjDdkLCVjKLFynZNPPtmS1Yg5k21ObBlXNdsD4ksGOO5sflTEb7CYifEgvsSoPXmNAirbb7+9PQduXDLbJ0+ebJmXwFAvXrMQy6YSG7gL3X+4bnn7D/zTTz81DwCdCVE/VE1PdBa0KwwHI0mN7x0xGzp0qM0Jj/eNdgpPHvcC4TW2iYOHkPYHSADDU1hqoW1Jg9AehgQ5Pp3FpEmTomfpeJuVJ6+hEtYypJoEFbKXGX7kIIJY0e4CT4LgkjU+evRoy/Qm/szy4osvWgeAWDa9zVdffdWsdFxgWPYOx8ZnEO9pa+jXZpttZsUZyD7FA8CP0xtyhJwhJGSiVkuREniSdOTYu2I1Pe5VkipJdMJFSSIjnx8vElQtHb0/6ARzjWpFtcdXj/sdMV166aVLWsxtgUFAQizCTHIqbcyMGTMsI5trSSePTuC+++5r9xNhuzgkf9FRZEQKSbEkx5bimmuuMQ9j0iombOdewAMOOMA+2+EY3PigEBWu7qlTp5px4wWm0vBrT8jw5ptvtudx8GoSCiTvh3PLAxLvDKnmx8oNy3AMYi/EvynWggu91PAFrODevXtHr5rhh4OVxI144403WkONqHNzx2M99KSx2MiujA+hSIPM9dtuu82S6gAPAIlp/HjZN/ugwaiWejRmtaIjx94Vq+nRwSB5kY4JjzT4XmegvbTnGtMBYgjlgw8+aB3iWt5b1R5fPe73ESNG2MiSQYMGmfB6PLdSCN9hXR911FG2n0033dRElg4bHX0sZu5RRDVOr169wg477GChvLlz51onkXsO8cYNH/fGTZkyxZJk2S/fVzmBT8I1JK+GNinu4uY7X2yxxaJXrfFrz7GneZDo+J5zzjl2Xpx7HpB4Z0g9fqxpYNVV84PNiqyuT2fQkWPHIsXCYXw8CUEU3aHxQTCxeBhtwDq2I4P/17/+dfTOlmBBkJeQBnkPPXr0sOccqzdaPiwGb4uHUrCq+Rw/FxdvrCq8OOWgUwh4ePDucN9htdN4Ax2IuOVUDZVeY46d68fCsMU4tby3qr0H6nG/H3300ZZw5lD2E6FDyPn8tsZn8316pcdS9x3DVRE77hNc39w/Q4YMsZAMuTcOotyW5R0Xb8J0QPEpLGrEdMkll7R1zlJLLWX3GAVVSODF4IFKxRvvJh2cJJwDnWrygU466aRobbYo5t0NKYJwd2ewTGhUyUWAeH4D62nUsMSxUBhjDzRoCG98oYHz4S1YuYgCYQ3AEie04o0Wgs1zH1GA9XLJJZfYgvilgQuWYym3OAwd9PvOH/HMxIc7dhbYI8QmydGgsaVoES77pHCLYB0phJYwGjUYyJdB3EliTYO6EUBtCHJtfLgpXiK8dVjRLrLk3yDagPeF/9FJxBsX76Bw73rMmU4dz1m4Z+Iw1JUFlzvHgdD6Ol8oZgXsk+OpllI1zN0LRcw/L6gV7ybQoNEw5ylbUqTT1avpeUxx8ODBTaMcOgreJOLqNNp4KwjhXHvttebGFc2Ui3XTWcSTgnXOd4M446GJJ465eHFtzz777LDHHnuYy5thrITkeE0SJGBpe4cJcY/Dve33Jp04FuDe9tfJtgoLHMuae5lwjFvu8cU7E+0l/luLk0fxlts8Q9zqqcRNxo3uSRoOsU5iy2kQY45PAEIMk6QLGlTeVwp63CQxcRPjoo1DPBSXGXGvelDN9ckbHTn2rlxNj/wJYoZ4E7ifkm7PavBrjGAQw8ZjIWoDYk5HD0Gn9sPEiROb2iRvE/j+yWXgu6Czh9XNvUYHCmscTwz3mide0klwt3YadAr22muvcOaZZ9q9SmEYEsZYRztGTg6dAnJ3nGRSmt8jlbrNSawlwTYJuSEHHnigJV8m2+GskOVdEBBVxDe+gBc+SS78SBxubt+eR27U5BK3knCVkmDEj5PeM40wblp+mD5BCevSsjJFx6Bh7KrV9Hg+atQoi7Xj0u6IcCdpb/a0qAyuL4vfh4gxYkYmOB1NJkLiez/33HPDEUccYR1IciLo4DFaAmgvuOfIcSCs45Y13huSKwGDw2cuZPSKd2JJzKSTAHT6EG4g94LnvnSUUsPT4l6CvCDxLhgMU8DSiEMciYacBpgfAnCzYxWR1IQrEYh3Us7QFyw3GnFYc8017RG3JwUJFl10UWuYceHi4sKd5i4wr56WdKOKjsN17YrV9LC2sLhpuFmPm76zoENAiIDMdX4ffq6VwG+mVouT9r+0xUn7X2ctSW9aKbgH6QDibcEdjijTYfckR3IJuDd5jSjjfQE6joAI05EjnOFFn4hjE9PmHsBDRHuCpcx+3drl/uY5Cx0FxB4II7EdniZfgE5jcl1HeP/996NnLfG2jnYxL0i8CwauH/8BxaHh4obfdttt7TWNMY03LnAacyw4GlJcWsQoqYqGINOQH3fccU3DH8hOZiw4Vjaiz1hYwJJnHbgVLzofxLMrVtPDGkPgOQ6sNk+GS4YH2gudUJLy8BhwX3P98Fz4vPaikXJRUjpniC6ubJIhcVcTJvF8CfDkSebzR4S5X3F/c89y7xGSoxNIcprjUwzHhQ8x5D7xuugIMzF0Fp47bjDQCeX3wNBYX4Dzia9D/MHvL4cwU/x1KeKd0DgUmAI6NXlBMe8MwV0N3vCVg4Yz6RbifewDccaFxXAGGjHio6zDCkOIaeyJ2RDf9J4s8H+GBBETJcuSHxcZyIy/5AeI0BPHilt+SXCX1Ypqrk/eaO+xYxkjoHSw6KiRQEZDiTuPBgyrFcFDbIknst0KK6xg322pEo80ynTisJqJW2LtEAMkRs74W8bqcr/gpeGzAJFGcGnM40V62A+NO0PV+L8PO6TRo9FFLLGwEE86ez5m1q9HkrZikeWo9Brjwude5rO4tnFqeW9Vew/U435PDhUjdOFDxfit0yaUg04Z7Qz3BNviqfMqarjV2Rf5EBgKdC65L/AAch9hnROWIbxyyCGHWCiGR4SVoWd4AoHsd4ahcT9jqZdyZadBB4KOQ6n7rdS19e2TeSQOnQI6Mxwnxk4ekHhnSDU/Vnp+VDLDHYqw8h6WUjcpvWJciNx0uL79a6ax5kdKLzYu5EB1LMSehCmsM34ECHep3ijUsqGpR2NWKzpy7N2xml57aM81fuutt0zEWbpzkRbuFxY8Ix46qwTyZ/DI0eEj+RCBJoGMY6djudpqq5mFi0t93LhxJuR8JoluZKhzzelwEvahI0hxp1Kle9kPHkHCeAh6smPBZ+LpYR8dxa89BhLHncTPm99HLQ2WapB4Z0g1P1biR7iwuJnpifJD4X3sg8aYR9Yjzp5IdtZZZ1mGJj8oXIpY1vSaBw0aZO5SLBJEgR8zVhg3Jr1gbgmsM9yw8QpY9Eqx+miw60E11ydvdOTYcSli3dKodpdqeu2ho/eHyqNWDx1AhgVyv51//vmthoABx0/YzjsF5EjgXeE+odOEFc59gnFAJ5Xzjo+C8ZEx7IfPoL3C4EjCqAfCNz7nQkfgviYEQJw97TdAQRg6EHRU6ejmAYl3hlTzY3W3ZBzexz7I7KRx5wakMAI3NQsTBvjkJIArFAuMH4LHQB1+0GxPggqZnrhaseLoDNBRKAVx9eTwjM6iHo1ZrcjLsbtbuyuS9/uj2uMrwv2OXOChodOGVwfx7ArgLaJmP6Rdf9z7uPsRcLwNeUAJawXBiwOQLUqvNg4WD4J8zz33WNySHxi9QxKXSDzyxWOi3ITx9Sye2ERWJ1a4Jz85CHv80bNDRb7pqsItsgGLnclmoFR51CJSynUPtKe0pRgpaZ6GrNAvuyB41jeizHjKJMQ9iVPjBqcHj8Az1INeJAtuH8Dd5cPKWHCrApY2Nyn7JvkJS9/H7QLFPeKPWPtCiO4HMW5yagifJPNmikp8eGFyCCzDJEm6I8cjT51hiXdBIFsccG97RrBDHJofEpnKQFyK17hMieMQP8UiR9zJpOT9bEvim9e+JtucjHbiqxTeR8gZplGq9jTvFUJ0P/D0IeAMOySDvKu1BWPHjo2eNeK1M7wWRl5QzDtDqolxIbpUNyPbnHGTjPXG1c0+eI5IMx6TuDiJSawjsYTkD35k/OAY6kCWKDErXOMOvUmSSXC9c+Nyk1JsgWEkrCfmzfAfktz80d/HsJNaVR0qQgywFH7sovbk9f6o9v4t0v1Om8LwVIaEMdUnxkGpjn5R4BzIgIf4d4BBwxDDG264oanKYB6QeGdINT9W3DYU0WDYBEUucJ9Tb5isTRLVyCIlAxjhZUwrQ8sYCoIVzbAMJrDwYh/sB/c64ksWKNmcyQQ2h7G63LjEuUh4I1mDdXgCiInTGagVRRZvMveLeNxFg3ukXEJllnRl8QYMAEYq4MmjCBQFckq1I0UgXksDbyVDZp9++mnLhGdED8Mj25ulXwsk3hlSZHGqB7o+osh0dfEGss6ZO5vhpsCwVEruMgSvrYIveaRUR5D1/v3kBYl3hkicyqPrI4pMdxBvwGJlzDbZ56VqgxcZiszEiyblBYl3hkicyqPrI4pMdxFvhzg4ybJUsWN0TFET2ZBEilUBNdsrncyl3ki8M0TiVB5dH1Fkupt4i/oi8c4Q/VjLU+Trg5uNOs6itnCPKGFNdEc0zluIGiDhrg8SOtFdkeWdIeppl6fI10ffbe3J+zWu9vh0z4hqkOUthBBCFAyJtxBCCFEwJN5CCCFEwZB4C9HFoeRjqSkPKbDxl7/8JTzxxBPh9ttvt1K4zNGetpSC0rzMTnf66adHa4QQtUYJaxmiBJXyFPn6dOTYmZaVGeGczTffPPzrX/+yOdbTOO+886ymtH+mQ4lKJqlh+tZll1023HrrrdF/GolPxABMMLPNNtvYe9Lwc7nuuutsmkSHSXHuvvtue04nYYEFFrDnQE38tddeO3rVuXT0/qCQCNeoVlR7fEW+35lG84477giPPPJIU5GW+D1cZO677z6bdTFvSLwzpMg/1npQ5OvTkWM/5ZRTbD51Jv7/zW9+E3beeefwwgsvmIXMhDQOoslkMwcffHBYeeWVw6mnnhr9p5Enn3wyLLLIIuHNN9+06WARcOf666+3WeqYYIaJajbccMNwzDHHhJtuusnEm9noFlpoIdv2ggsusPPwc2EyHI6lEpgykuOvBe25xnSAHnjgAZu8h+F8tby3qj2+ot7v3C/cI9yPXZHll1/eSr/67yEvSLwzpMjiVA+KfH06cuxYxPT2f/e734WddtopHHTQQSY4CCalGpnBiXVsN2vWLGtY0rj55pvDmDFjolctYTpZpo0FjpVOAW5vOgA0xsyKxhSzgFXN5/i5uHjfeeedZm2V4/DDD4+edT6VXmOOnevHwhz1cWp5b1V7DxTtfkc6mH2LqTLhO9/5Tthtt91C3759wzLLLFPIiUn8O4C77rorXHbZZeadYnplJmDJE4p5C5Ez5s6da246poGFnj172iOw/pprrjFLfMqUKWGLLbaw9RdddJEJb3yZNm1aePbZZ+3/a621lonC6quvbq+xxI899timxgrB5vlHH31kr6ladskll9iC+KVBrJtjKbc47JsFi3fYsGE2lezQoUOtFnZng6gwzzQNL3PPMx3uFVdc0Uq4RcdgikyEG4sUEb/00kvtflxuueUKKdx/+tOfomchPPPMM+apooO84IILWsiJ0FWekHgLkTPee+89s1xwncPiiy9uj4AlyzzsPNJAIkyAVYkAJ5f//ve/9n+3ot3RhnhvvfXWNuc7YC396Ec/CkceeaQlrqUtxDXjIMb333+/xY2xTGjw8BbgwmfeY+ZBTkInY/3117eG8Y033gjnnHNO9J+OQXyVOerZP94K5ra/9tprw5w5c6ItRGdCuIVJO7ivCLEw93XROeKII+yR3xW/MaBjwm/k888/N29YnpDbPEPc6imKm6zeFPn6dOTYaQhpLOIgdsydzP6wIpn1CBfliSeeGG0Rwttvvx123HFHS1A744wzbB0N0ZZbbmnudhpbrF7mXkZoaaBOO+00cw9yvMTaEb5SENfEsmIbjoV94B0grv3444+bKGPdfvHFF/b5dA4cvx4IKm5/LG4En07EU089Zf+rFt/nHnvsYRY9HouiwPc5adIkSxJ0inK/IxkHHnigdZZqmdNQb/z6X3nllZYD4vB9EEYi+fLss8+O1maPLG8hcgTTKGI1YgWzIHSI7HzzzRdtEcxlDrjE49Mu3nvvvfa4ySabhO22286sZc8K/+Y3v2mPWOJYxezz3XffbXoPDRSW8gknnGDZ6yNHjrT1iD6vWb797W/bOoaXkVFOI0dC3RprrGHegeeffz588sknli2Pq53/T58+3d7jkIQHnuXtnoGOwjkVCTo/s2fPjl4VCzpqCHe/fv3KdvaKRPw+jAs3MJKD3wthqDwh8RYiR+AqJ0Mcy5uYMoIZH3qFICPa6623nrmEyRQHrCESyLC0ST7beOONbWy2Z4UTh4Qvv/zSrF0grt2nTx973r9/f+sIkDGM4HvsG1c5r1noANDI8T/i8LyfBbepu/iBxt3/lxTvWjBq1CgLEUyYMCHsu+++TedaCXRaarU4yfXegfFQRtG45ZZb7BHru1SnqWjDxP74xz9Gz1pDx3nFFVe0kQp5yqiXeAuRI2gccG8zZAsLGyuX4WAOAkXS2eWXXx5WWWUVE2+EGwuaxmXVVVe1WDLDW7COyCoHrAf4z3/+0yTeiBwJXf6cfVGkhQx1hpIBYsNrFo4Fa5GGmf0nRQkQJp7jgodajfFOgmVEUh4eAzLguX54Loi/i84DzwphDmLBdC65X0k83H///a1TRwIbHURGLuC1YZs4dDzpaAEJYHRASy2EX9LAY8T9SeiosyCEUQ5+V1CPzmilSLyFyBH08GkASY5BhCh2Ec82P/nkky1ZDbfrYYcdZrFlGlRPpkF8ic/hzkZkaSixmInnIb7EqN3iI4a3/fbb23PAwiADffLkyZapDcQzec1CY0olNnAXultYbnm7Jfbpp5+aB8AbvXrCMeDS5TrRKNMpISSw2mqrRVt0XxjbT25Ee6F2AN4X8hvoQI4dOzb6TwjnnnuuhUoQcQSeUAqJl3HIr6BzCnQs6TyWWsiLIIcCz058wfJnFAS5HzzG/+fFgqrF8y7cE5WEjjLMmDHDHvOAEtYypCgJKllR5OvTkWOneMh+++0XvQomgljRpQqjILhkxI4ePdosTRpNlhdffNE6AAgXbkEaQ37uCBuWqcOx8hkkuyH85dhss82sihbDhPAA0DnwsqgIOWN9GTJUD9pzjan+5WO+syrS4uPk6VjEPQP1uN9HjBhhAr7CCivYd85948JUCQgvncujjjrKEh8Z8seQQEI73D9YzOz3gAMOiN7RSK9evcIOO+xgHiISC6nkR2yZhEnEON7JYwgkuRfsF28S21QK15BwTbX4tefY08r8MlSMkRGcF+eeByTeGVKPH2uRKfL16cixE2dm3CyuYOLfe+65p7nQS40zxQru3bt39KoZrGRqjmOR3HjjjSa0iDoWaTwpB5cn9c8RlfhY1zTIXL/tttssqQ7wAGBtkTXNvtnH0ksvbf+rNR29P7Iqj5qleB999NGWkxAH8UbEBw0aZN6Jcsl/3DtYqdyTpYoDMQoCseM88dZgDQ8ZMsS8QoR0HES5nDAnxRvvDzAckOQxxHTJJZe0dc5SSy1lv5tq8WtPp5kOThLOgVAQHoGTTjopWpstEu8MqcePtcgU+frk5dixhtvTmBWBvN8fpY4vD5Z3Kch9QMhZ6BQmhZzscrwXnjiJ25pQDLkODCMkDIN1SoiGUA6CTe0AH35F8SA6ldQHwIWOMCPGhIsQRizyQw891D6LjhX7qMbyRuDpPPq1xK3PZ3O9+QysakZHJPHtqaLGEMYkuPiPO+44O77Oqk3QURTzFqIL01WFuyuA+CHUvjjxdZ29eNW+UhAPxy2ON4Zx+ggvYRLPbSC/Ahivz5hnxtjj8mZ0BKLMa4QbEG6vaucZ9g45Ej48C6+Nj3fnfvXXycxuRBzLmpwNxpfzOrn4kEin2qJAeI/S8Lrmfv55QJZ3huTdcsiaIl8ffbe1J+/XuNTxueVdJBA1rHFCJgwpnDhxookvWd+40YmFI5IkdFEwB8scVzlxceLgWMS4wbG2cYUDLnzCQ6WgU7DXXnuFM88800T9wgsvtNEErCOPg1APnQJCQo6LrF/7SosC+fbka5C3kYSKcgyNY/SEj8TIGol3hqiBL0+Rr4++29qT92tc6vgYCYDAJfHt/H21ADFty/pOgruZHAfyHXCbk5NRKubNcD2GM+IeJ0mSUQfEwElAw+WM5UotguOPP946MAghLnRyOxBNRjewLeCyJ7SA63vRRRe1ZLJScXYneQ1JTFxsscUsA57OB6TdL769VxFMQgGiQw45xLZrT0JcLZB4Z0ipH7dopMjXx49d1J683h/V3r/1uN/binkD1ilV+khgQ8gQPwdrmmxxEtIQaKxoxltPnTrVLGTG1pPURoIlU9UCs9sxBAvhPv/885ti3ljeXssgDa6DZ7dTe59SwPHJZXCB4xHwGDnQUQC/ltWKN5/h+4hDkh/Hy/VA4POAAmJC1ACJd33Qda6OUrYaMWaECQFmqBbubKzguHCD1xz48MMPbbYt4tKIGiKLmxvBxq3uVdjg4YcftkesZwfrHRFl2CIQXyeGzhKvie9ijZXuIy58Ac4nvg53fUeIVwqMgwcB8BDkBVneGVKPnnaR0fURRaba+7ce93vc8iY+TBU0LFIms/F4cTkYLsWwKeoB4P5mFjmvooabG9c6wwepRMYQNMQQNz0dAZLMcIm7C5p6+TxiueOGd4sXqx73OG53XO2lKq2lQQeCjoNfy2otb44hPtmPQ6eAjg3HSdZ5HpDlLYQQ3QQsR4ZzkfyFsOF6Hjx4cEXCDV6ljgQuKqxhfTPnNYlsVOwj5k3SGo+IMkPJsNZJLmMMNVY92eK8H7FnAh1ArL2ymse12QbhJub+9NNPm+jGF/ByvL64xe+v3XPAo68rB6VX03BLP+49yBqJtxBCdBPOOussK6m7+eabNw3Pqga3UIl7I9hejAURpcIfQ8wYV33dddeZaDNWnG1wyTPVrWeQU+YXdzvCDGSPu7jyHPAGYOlisWPlJ6G+fmcV2enRo4c9lipS5Bny1Ux6U2vkNs+QerjJioxfHyGKTKW/7yK0B8gFZVBxjVN6FwHtCjBEjA4HpF1/3Pu4++mIVFNOtpbI8ha5ReItik5Xu4dxdeMeh7aGbRWJXXbZJXrWGjosFHghtJAsNpMlsrwzRJa3EMIpSntAEhrWN1nlJHLVq5Z9rfHrT0IfsXzn/ffftw4LRWg6cxrSjiLLWwghRMUwtpq4NXPDE49GxLsS8WlOgTHpsOaaa9pjXpB4CyGEqArGczMlLF4ChlB9+eWX0X+Ky7bbbmuPxPLj3HnnnfbIsLU8IfEWQghRFWSqjxkzxjLKqVdOlTOGdhUZhrw5Pm0qQ9SYYIViMnmzvBXzzhAlZAkhkhQpB4asc6bRpGY6MA6cUqgM4Uob3pV3StUtZ33e2muJd4ZQpUjJakIIB4HIy8QXlUJtcoqjkH1OcldXg6p0FJjJGxJvIYQQHYYENqbefOutt8I777xT2EQ2JNGzyqnZTgnZPCLxFkIIIQqGEtaEEEKIgiHxFkIIIQqGxFsIIYQoGBJvIYQQomBIvIUQQoiCIfEWQgghCobEWwghhCgYEm8hhBCiYEi8hRBCiIIh8RZCCCEKhsRbCCGEKBgSbyGEEKJgSLyFEEKIgiHxFkIIIQqGxFsIIYQoGBJvIYQQomBIvIUQQoiCIfEWQgghCobEWwghhCgYEm8hhBCiYEi8hRBCiIIh8RZCCCEKhsRbCCGEKBgSbyHqzuth/MB5wjwDxzc8qyOvjw8D52n43IZl4PgOfLLv59B7ohWluCccGn1e06YVv1cIUQ6Jt8gHMWEptZRs7+85tPJt0z6nnIi2IXivjx/Y9j5a0SdsP3RACE+MDPu3KaKR0PP5hx6afo0q/ew+I8LjM8eFhk9u+Oi+Te8vp6NN5xffqM/2gcMPV21X9r0hDAmjxrFhCFNfSxzhVbc3SHv13HNo7Lx9qXcnSIg88JUQ9WTy8K+47eLL8MnR/76a/NXwVutmftXQ/jdvP2Bcw5pGJg+PrY+9p3H9gK/G+YZO02fH/ufrYvttxI+lYdtxzduMS3xm85LyeU34OTRvU/IYm0g772hddKIzxw2I/l9mPzPHfdUgn837adpXJbQ+bqft42/Ej7Hp+4yud/P3W4rmeyG5NL236dzaPg4huhoSb5EBzcLUshFPE++ImOgPaNFSp7zHt43vpExDbwKTImi2vmEfjQLU+D5f1/T/+OcmaNm5aPm5jf8b/tXw6LHELhqIrlV0fPa+6APteZtCHF2fxDE3LuU+t4EmofVr3Ly9H3/Z9zcQv3ZN59L0+bGl1XmknHfD88l+/HY+0XG1eQ2E6HpIvEUGtEO8G2gUDJa4aCTfExeIpNgkhb88CA/bx4XKxS+5vlKazyFaBjR8RvQ87Zxbnk+DCLoXwJYKPruV5d1yH6WvR7Pox8/ZSLPm4/83mr+XxqXhWGMdsFadiVYnHxPv+Pts8c6AxFt0XyTeIgPaJ95NDX0LKzYpErGlaSfl91sKhLbJ6owEwo5h+LhmQS2zw1ZCHS1N++S9LoSx/aS+r5oDj9NkPTc/b3t/8Q5DtDScf8UhgzSLPSb4LUQ+2rZ1J6Jlp2VAw3PfX/Oht/xuhOhOKGFNFIY+q60VPVsrrNYnehqjoVGnMxoaBLbh1YAwbtSQxn+8/lqYak8GhDX72pMKeD281vCmq7bbLlzFyydGhr4Dx4eZ9r/VwoiTG2SjgeE7R58Rw5O8trtqeGiwNhtXDp9sx8ZyZbjd9pn2XhhyZeN2DQIW7FRg6msNR9ScvNZyGRhK5b3dc7t9UrCPGnJloGdgXLVdy320yDzrE+xSNxxz07WcMCKMuHJyw55iDBgXGkSz4TgfDyPi3wef07B+1GtnNV67hr/b9Z0WTo6S5dZK+/JKYdft8TBh6ICm7+Kq7Q6Nkt36hjX9+gjRzZB4i8LwOmoKA9ZsaLZL02fEhAbReyKM7OuNvPNEmNaovm3z+t3hlifQp5kmRKZ5T0wLt09rWBleC+PPimSpSUia6TPicXvPV1+NCq/Zdg0ivvPtTSLbQlBnTms4Kk6p9Rm9Pn7/MLJB7kyf6DzM0zdMOzku6g37TRPPJu4J9lGIp4v0dqxoEOOZvM87OmyyXYtseutAjHot7H8LW3MtyUofEq60z4uWx0c0yHwp7gljRzYc4fCG/Q8YHoYPmBpuH3tLeKJBjHe+nWNpfd1SiToZfUdylRpoMMEbZLzxfAaODdNY1/C9VPq1CtFlaPgRClFn2uM2r+49Ta5nW9m8TWv3bDmiz3SXccO+ml3aMVdw64M1mt38sWX48MZjid7j2yR30biemHbCVdwq/tuwlHIbx13mTUTnZCsb9516TWJu7uHjeN7oum7xubEl7TPYr12vhuNrSjSLLw1v8vMv5zZv3I9fCx4d3ya+TojugcRbZEBzw9yy0U8X4tLbQ9p7mtc1CauLXprQ2f+aBaBZoFmI5ybEKLFtefFrKSyN7/cYsZ9Xy5ixf77tN9pP+vUoJ1rRNq3ON1rf+kK2It75sGNJdgbKHVu00s6lVOeiAT/X1ocTfYfRP5qPJX6tKrkOQnRNJN4iA7zRjTXaLq4NK7xBb7kkkqKaiAl1Kwsv8R7/jLSljMD4ZwwYN9mOO1WsKyBuZceFsexntxLI2Pkml9h+Gvefds0qEO+Y1d3iXGPr40vp6xEda8nz8/sg5Tijzyp/rf1aSLxF90PiLTKgTKNdDeXEuKP7jmhh8bUYppWylBFE30+zGLnwlD/OJsE317V/VnmxanpPYiM6RS0y3WtO9D2niHfLDlrK+ZT9bpOLxFt0PyTeIgNKN+p5pFH0ohftIRKidlns9t7O6Yi4NdvuY+lkSrvMobGTUe44mzpWBbmPhOhM5uFPww9AiPpBLfLtrsL4C1emj5YSQghRBom3qCsM+zEYvyvlFkKIdiHxFkIIIQqGirQIIYQQBUPiLYQQQhQMibcQQghRMCTeQgghRKEI4f8BB8BiOllYhokAAAAASUVORK5CYIIA" alt="" />
从图可见,JDBC驱动程序为两层结构,它由驱动程序客户端程序和驱动程序服务器端程序组成。客户端直接与用户交互,它为用户提供符合JDBC规范的数据库统一编程接口,客户端将数据库请求通过特定的网络协议传送给服务器。服务器充当中间件的角色,它负责接收和处理用户的请求以及支持对多种数据库的操作。JDBC驱动程序自身并不直接与数据库交互,而是借助于其他已实现的数据库驱动程序,成为“雇主”。可以想象,它“雇佣”的数据库驱动程序越多,则可支持的数据库就越多,“雇佣”的数据库驱动程序越强大,则类型3JDBC驱动程序的功能也越强大。除此之外,“雇佣”的数据库驱动程序的数量和成员可以动态改变,以满足系统扩展的需求。第三类 JDBC驱动程序的这一特性正是它强大的根源所在。
二、动手测一测(以MySQL为例)
了解了JDBC的大致原理,我们学会使用才是关键。
1、环境
既然要使用API,我们就需要导入JDBC运行环境所需要的jar包,而不同的数据库jar包也是不同的,下面以MySQL数据库为例,导入下列jar包(百度一堆或者去官网下载):
aaarticlea/png;base64,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" alt="" />
2、一般步骤
- 注册驱动
- 获取连接对象(url、username、password)
- 编写SQL语句
- 获取语句执行对象
- (给占位符设置参数)
- 执行SQL语句
- 获得执行后的结果集
- 处理结果集
3、Java代码
下面看具体实现代码:
-
1 public void JDBCDemo(String pname,int price) throws ClassNotFoundException, Exception{
2 //1、注册驱动
3 Class.forName("com.mysql.jdbc.Driver");
4 //2、获取连接对象
5 Connection conn = DriverManager.getConnection(
6 "jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf-8&useSSL=false",
7 "root", "password");
8 //sql语句
9 String sql = "select * from product where pname=? and price=?";
10 //3、获得sql语句执行对象
11 PreparedStatement ps = conn.prepareStatement(sql);
12 //4、设置参数给占位符
13 ps.setString(1, pname);
14 ps.setInt(2, price);
15 //5、执行并保存结果集
16 ResultSet rs = ps.executeQuery();
17 //6、处理结果集
18 if(rs.next()){
19 System.out.println(rs.getString(2)+":"+rs.getInt(3));
20 }else
21 System.out.println("查询失败");
22 if(rs!=null){
23 rs.close();
24 }
25 if(ps!=null){
26 ps.close();
27 }
28 if(conn!=null){
29 conn.close();
30 }
31 }
32 } 程序员在使用Java操作数据库时只需要按照给定的规则进行编程即可操作数据库。下面是常用api的详细讲解。
三、API详解
1、注册驱动程序
Class.forName(),是最常见的注册JDBC驱动程序的方法,注册某数据库就将该数据库驱动的名称以字符串的形式作为参数:
aaarticlea/png;base64,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" alt="" />
例如我们需要注册MySQL的数据库驱动,则使用代码:
1 Class.froName("com.mysql.jdbc.Driver");
另外还可以使用DriverManage的静态方法:DriverManager.registerDriver()
来注册驱动,参数为对应的数据库驱动对象。
2、获得连接对象Connection
可以使用 DriverManager.getConnection()
方法建立连接。根据传入参数的不同,有三种重载的DriverManager.getConnection()
方法:
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
这里每个格式都需要一个数据库URL。 数据库URL是指向数据库的地址。制定数据库URL是建立连接相关联的大多数错误问题发生的地方。各数据库对应的URL如下所示:
aaarticlea/png;base64,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" alt="" />
假设我们现在需要连接MySQL数据库,格式为:jdbc:mysql://hostname:port/datebaseName。我们需要的信息是hostname主机名和端口号,一般默认为localHost:3306;还需要datebaseName数据库名,假设为freeDB;当然还有URL格式未包含的也是必须的信息:连接数据库的用户名和密码,假设为Leslie和030401。那么就有URL:
String url = "jdbc:mysql//localhost:3306/freeDB";
下面分别使用三种方法来实现:
- 使用一个URL作为参数的方式:需要将username+password以参数的形式放到URL中,但是每种数据库的放置都不太相同
//连接mysql的纯URL
String url = "jdbc:mysql//localhost:3306/freeDB?username=leslie&password=030401";
Connection conn = DriverManager.getConnection(url,p);
//连接Oracle的纯URL
String url = "jdbc:oracle:thin:leslie/030401@192.0.0.10:1521:freeDB";
Connection conn = DriverManager.getConnection(url); - 使用URL、properties作为参数的方式:即需要将username和password以键值对形式存放在properties对象中作为参数
//MySql
String url = "jdbc:mysql//localhost:3306/freeDB";
Properties p = new Properties();
p.put("username","leslie");
p.put("password","030401");
Connection conn = DriverManager.getConnection(url,p); - 使用URL、username、password三个参数分开的方式(推荐)
String url = "jdbc:mysql//localhost:3306/freeDB";
String username = "leslie";
String password = "030401";
Connection conn = DriverManager.getConnection(url,username,password);
3、获得SQL语句执行对象
SQL语句的执行对象按理说有Statement和PreparedStatement两个,但我们一般都不会去使用Statement,先看下两者的基本描述:
- Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句,即静态SQL语句。
- PreparedStatement 继承于Statement。实例包含已编译的 SQL 语句,这就是使语句“准备好”。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定。相反的,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX() 方法来提供。
简言之,Statement执行静态SQL语句,而它的子类PreparedStatement执行预编译SQL,即可传入参数。两者相比之下,PreparedStatement有以下优势:
- 预编译处理,可动态执行SQL语句。很明显,SQL语句的预编译,使用占位符?去代替未知数据,因而一个句子可以执行多种不同的SQL,而Statement需要重新书写SQL语句,笨重。
- 速度快,执行效率高。SQL语句会预编译在数据库系统中。执行计划同样会被缓存起来,它允许数据库做参数化查询。使用预处理语句比普通的查询更快,因为它做的工作更少(数据库对SQL语句的分析,编译,优化已经在第一次查询前完成了)。我们要利用预编译的特性,比如第一种查询和第二种查询,第二种才是预编译形式,而第一种其实是恢复了父类Statement的做法:
//第一种方式,追加字符串:没有进行预编译,所以效率低
String loanType = getLoanType();
PreparedStatement prestmt = conn.prepareStatement("select banks from loan where loan_type=" + loanType); //第二种方式,使用占位符,进行预编译,效率高(推荐)
PreparedStatement prestmt = conn.prepareStatement("select banks from loan where loan_type=?");
prestmt.setString(1,loanType); - 可防止SQL注入式攻击。静态SQL语句说到底还是字符串,所以存在拼字符串的而带来的注入式SQL攻击风险。比如某个网站的登录验证SQL查询代码为:
String sql = "SELECT * FROM users WHERE name = '" + userName + "' and pw = '"+ passWord +"';"
验证需要用户输入用户名和密码,正确则执行查询语句(登录),但如果这样输入:
userName = "1' OR '1'='1";
passWord = "1' OR '1'='1";那么执行语句就变成了:
String sql = "SELECT * FROM users WHERE name = '1' OR '1'='1' and pw = '1' OR '1'='1';"
这样,where语句恒为真,就能实现无账号登录。此外便可能被恶意修改甚至删除数据表。然而使用PreparedStatement的参数化的查询可以阻止大部分的SQL注入。在使用参数化查询的情况下,数据库系统(eg:MySQL)不会将参数的内容视为SQL指令的一部分来处理,而是在数据库完成SQL指令的编译后,才套用参数运行,且占位符?不允许多值,只能填入一个值,因此就算参数中含有破坏性的指令,也不会被数据库所运行。
说了那么多,PreparedStatement如何获取呢?PreparedStatement是和连接对象Connection关联的,所以我们需要使用Connection对象的PreparedStatement(sql)方法进行获取:
String sql = "select * from user where name=? and ange=?";//预处理,需要我们先写好sql语句
PreparedStatement ps = conn.preparedStatement(sql);//conn是连接对象,参数为sql语句
4、给占位符设置参数
根据需要的参数类型,使用setXXX()的方法即可。(注:从第一个问好起是从1开始编号)
ps.setString(1,"tom");
ps.setInt(2,18);
5、执行SQL语句
sql语句有增删查改等几种类型,所以执行方法有以下三种:
execute():执行SQL语句,可以是任何种类的 SQL 语句。返回值是boolean类型。
executeQuery()
:至少SQL语句查询,查询结果返回为ResultSet
对象。executeUpdate()
:执行更新语句。该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如INSERT
、UPDATE
或DELETE
语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。返回值是int。
例如本例中的语句是查询语句,所以执行代码为:
ResultSet rs = ps.executeQuery();
6、处理结果或结果集
如果返回值是boolean或者int很好处理,但如果是查询结果集ResultSet对象,一般使用while循环来处理:
ResultSet
对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next()
方法将光标移动到下一行;因为该方法在 ResultSet
对象没有下一行时返回 false
,所以可以在 while
循环中使用它来迭代结果集。另外,可以使用ResultSet对象的getXXX(int columnIndex)获得游标所在行指定列的值。原理如下图所示:
aaarticlea/png;base64,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9+4G5n21kprX1dU5VsbVpXRsiJvUx8J7o4dxdH7lucCy3gJU15I0BDThAtW1RNQaDAYiavV6fX19/bVr1+rq6q5cuaLVar/77rszZ86cOnXqxIkTx44dO3jw4IEDB/bt21daWvr3v/99165du3bt2rt3744dO7Z+8MH2ZcsqJk501LL1gwbtfvHF3e+9d+7cuWvXrl25cuXy5cs6na6+vv7OnTskKwQRsmxUh0D3NIKEEoF/Tgl5aLLPXPhxInU3+dDZR7/TclzBpikXUr7wVwj7VubVzW63NzQ0CByI5L14POqELqvh3ZXyom89xYtTuG+pqxZ52p9Uq7FJ55uamujV5OkzT8tnzWauYPWQdzet+77ytM6k2h6pWJp4zJdWeFpPV+U44lgy+yAisErUcWvAnz9dVlJ4bwQVPHdYXtRYVtd2dHQ4GmuNRiNVtLdv325oaLhx44ZOp6utrb106RIJCHP69OkTJ04cPXr0yy+//Oc//7l3797du3d/+umnu3bt+sc//rFjx46//PnP2zMyvnRmlz31+OO71q375969pECtVltbW3vz5s1bt241NTWRZGDt7e0oZBHEUwL/nBL40GRNL0qlkrWjuH/K816rNTU17mUitaJReKOW7JvG01eIY1V5hhwhb33em96LTuiyGt5dKS/61lM8PYX7lrppkfD+ZIeVeePdrFbosmJurpe9q88bxw8DL27aLu8KT+vsviZOUavVrPHSi1Z4Wk835TjCK8px7IL92HB6t3vxG3G0OnfZCe4bxfYqz5/Bo94IIdzoWiJqqaKlNlpqoL1x48bVq1eJv8H58+e//fbbkydPVlVVHT58uLy8nJhmd+/evXv37r179+7atevDP/xhz7PP3oyOdupgcGDfPuJXoNVqr1y5cv36db1ef/fuXRSyCOIFgX9OCX9ostrO0SmwtLSUN05XXFzsOJZHqKysVKvV7LuE7O/ooEaorq6mhZPhSPL28uIVUlNTwyvK6emKi4vZ5iiVSrVaXVlZ6WbE36NOEFIN766Up33rBR6dwk1L3bdISH926VboxjnS05vWbreXl5ez+6vV6tLSUle3hKc3rZC7wos62zvH8XmXjFS+rq6usLCQrRKvG71ohUf19Ei0sVV1JdnpY8rNZ6GnvxG2l5RKpS/PHzvjz+DovOFRb4QirH+t/ceZEVhFyzPQNjU1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" alt="" width="572" height="368" />
所以,本例的结果集处理如下:
while(rs.next()){
system.out.println(rs.getString(1));
system.out.println(rs.getInt(2));
}
7、关闭连接
在JDBC程序结束之后,显式地需要关闭与数据库的所有连接以结束每个数据库会话。 但是,如果在编写程序中忘记了关闭也没有关系,Java的垃圾收集器将在清除过时的对象时也会关闭这些连接。
依靠垃圾收集,特别是数据库编程,是一个非常差的编程实践。所以应该要使用与连接对象关联的close()
方法关闭连接。要确保连接已关闭,可以将关闭连接的代码中编写在“finally
”块中。 一个finally
块总是会被执行,不管是否发生异常。
conn.close();
四、工具类JDBCUtils的使用
在使用JDBC连接数据库的过程中,我们发现大多数步骤都是一样的,而我们平常使用数据库的频率如果很高所以我们需要对JDBC的通用代码进行提炼,提高代码复用率,提炼出来的工具类我们一般称为JDBCUtils,工具类中包含了我们常用的很多方法,比如连接数据库和断开连接就是常用的方法,我们只要掌握了JDBC原理,就可以自己设计满足需求工具类或参考以下工具类(后面我们会说到DBUtils工具类,这是Apache组织提供的JDBC工具类,比较全面,基本能够满足我们的需求,本文最后一节会进行详解):
package cn.jdbc; import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; /**
* @author Fzz
* @date 2017年11月12日
* @Description TODO:提供获取连接和释放资源的方法
*/
public class jdbcUtil{
/*
* 获取Properties有两种方法:
* 一是使用io流获取文件内容,
* 二是使用jdk提供的专门获取Properties配置文件的工具类:ResourceBundle
*/
private static String driver;
private static String url;
private static String username;
private static String password;
static{
//1、通过本类获取类加载器
ClassLoader classLoader = jdbcUtil_v3.class.getClassLoader();
//2、使用类加载器获得输入流
InputStream is = classLoader.getResourceAsStream("jdbc.properties");
//3、Properties工具类
Properties prop = new Properties();
//4、加载流
try {
prop.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//5、
driver = prop.getProperty("driver");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
}
/**
* @Title: getConnection
* @Description: TODO(获取mySql连接 )
* @return: Connection
*/
public static Connection getConnection(){
Connection conn = null;
try {
//注册驱动
Class.forName(driver);
//获取连接
conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
} /**
* @Title: release
* @Description: TODO:释放连接mySql的资源
* @return: void
*/
public static void release(Connection conn,PreparedStatement ps,ResultSet rs){
try{
if(rs != null){
rs.close();
}
if(ps != null){
ps.close();
}
if(conn != null){
conn.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
五、JDBC共享连接池的使用
对于频繁使用数据库或使用人数较多的项目,连接对象Connection的开开关关也是不好的吖,我们就可以设置JDBC连接池,连接池就相当于一个存放若干连接对象的池子,由于用户人数多,每次访问数据库需要一个连接对象,那么就从池子里取出一个,用完放回即可,而不是销毁。这样,就可以实现连接池共享的目的,减少系统资源消耗。
Java提供了一个公共接口:Javax.sql.DataSource。此接口提供了 DataSource
对象所表示的物理数据源的连接。作为 DriverManager
工具的替代项,DataSource
对象是获取连接的首选方法。
简单来说,就是DateSource接口是Drivermanager的替代项,提供了getConnection()方法并生产标准的Connection对象,那么要实现连接池,就需要实现该接口和该方法。(所以我们常说的数据源也就是连接池)连接池处理自定义的方式,目前主要的连接池工具有C3P0(主流)、DBCP。
1、自定义共享连接池
一般步骤:
- 实现数据源DataSource,即实现Javax.sql.DataSource接口;由于只是简单的演示,我们只实现其中的getConnection()方法即可。
- 创建一个LinkList容器。既然是“池子”,就需要保存东西,即存储连接池对象,而连接池涉及移除/添加连接池对象,优先考虑使用LinkList来存储。
- 使用静态代码块初始化若干个连接池对象。由于只是测试,我们初始化3个就行。
- 实现getConnection()方法。注意,为了保证连接对象只提供给一个线程(一个用户)使用,我们需要先将连接对象从池子中取出来。
- 用完的连接对象不需要执行close()而是放回池子去。
package cn.jdbcUtils; import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.LinkedList;
import java.util.logging.Logger; import javax.sql.DataSource; import cn.day09.jdbc.jdbcUtil; /**
* @author Fzz
* @date 2017年11月12日
* @Description TODO:自定义JDBC连接池
*/ public class MyDataSource implements DataSource{//[1]实现接口
//[2]创建一个容器存储连接池里的Connection对象。
private static LinkedList<Connection> pool = new LinkedList<Connection>(); //[3]初始化3个Connection对象放进池子。
static{
Connection conn = null;
for (int i = 0; i < 3; i++) {
conn = jdbcUtil.getConnection();//这里我们使用上面创建的jdbcUtils来获取连接
pool.add(conn);
}
} @Override
/**
* [4]从池子里取连接对象
*/
public Connection getConnection() throws SQLException {
//使用前先判断连接池是否有连接对象,没有则添加
Connection conn = null;
if(pool.size() == 0){
for (int i = 0; i < 3; i++) {
conn = jdbcUtil.getConnection();
pool.add(conn);
}
}
conn = pool.removeFirst();//取出来
return conn;
} /**
* [5]用完归还连接到连接池
*/
public boolean returnConnToPool(Connection conn){
return pool.add(conn);
} //下面是未实现的方法。
@Override
public PrintWriter getLogWriter() throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
// TODO Auto-generated method stub }
@Override
public void setLoginTimeout(int seconds) throws SQLException {
// TODO Auto-generated method stub }
@Override
public int getLoginTimeout() throws SQLException {
// TODO Auto-generated method stub
return 0;
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
// TODO Auto-generated method stub
return null;
}
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
// TODO Auto-generated method stub
return false;
}
@Override
public Connection getConnection(String username, String password) throws SQLException {
// TODO Auto-generated method stub
return null;
}
}
【扩展:方法的增强】
自定义共享连接池到了这里基本已经完成,但美中不足的是:之前我们使用连接对象是这样的,用getConnection()方法获取,用完再用close()关闭。现在我们通过共享连接池来使用连接对象,是用getConnection()取出连接对象,使用returnConnToPool()归还连接对象。而美中不足的就是,我们希望通过共享连接池使用连接对象是仍然使用getConnection()和close()这两个方法,以保持前后一致的美感(呵呵),但我们是实现DataSource接口,接口中没有close()方法。可能你会说这是多余,就直接使用returnConnToPool()不挺好的吗,还能加深理解。
其实,这里我只是作为另一个知识点的引申——方法的增强,以此找了个小小的借口。(碧池)
目前有四种方法可以进行某个方法的增强,但各有优缺点:
- 使用继承增强方法。
使用前提是需要实现继承关系,子类通过继承父类方法,进而改进方法。 - 使用装饰者设计模式增强方法。
装饰者设计模式是专门用来增强方法的设计模式,使用前提是需要装饰者实现被装饰对象(即被增强对象)相同接口,以实现交互。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰者模式比继承灵活,但程序也相对复杂。 - 使用动态代理增强方法。(难点)
动态代理与装饰者模式类似,且需要使用反射技术。 - 使用字节码增强方法。(难点)
Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强的应用场景主要是减少冗余代码,对开发人员屏蔽底层的实现细节。字节码增强技术主要有两种实现机制:一种是通过创建原始类的一个子类;另一种是直接去修改原先的class字节码。
目前有cglib、Javassist等框架提供使用。
上面只是简单的介绍,有意者可以自行搜索。此处不是本文重点故不再赘述,其实是笔者自己也没学。(只想对笔者说一句:“多捞啊”)
2、C3P0连接池的使用
C3P0是开源的共享连接池,比如Sring、Hibernate等开源项目都有使用C3P0。C3P0是第三方工具,除了需要导出相应jar包,还需要编写配置文件 c3p0-config.xml。
- 导包
我们首先去下载一个C3P0压缩包(自行百度)。然后解压找到lib目录,导入第一个包即可:
aaarticlea/png;base64,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" alt="" /> - 编写配置文件:c3p0-config.xml
其实不一定非要配置文件,但相关设置比较麻烦建议编写。在压缩包的doc目录下有 index.html是c3p0的帮助文档(英文版):
aaarticlea/png;base64,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" alt="" />帮助文档中就有配置文件相关格式的说明,这里总结如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config> <!-- 默认配置1-->
<default-config>
<连接数据库的一些基本参数>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///FreeDB</property>
<property name="user">leslie</property>
<property name="password">030401</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config> <!-- 配置2命名 -->
<named-config name="mysql_web09">
<property name="driverClass">数据库驱动</property>
<property name="jdbcUrl">数据库url</property>
<property name="user">用户名</property>
<property name="password">密码</property>
<property name="initialPoolSize">最小连接数</property>
<property name="maxPoolSize">最大连接数</property>
</named-config> </c3p0-config> - C3P0Utils
c3p0提供了一个工具类可以方便我们的使用,免去了多余类和方法的学习和直接使用:package cn.c3p0Utils; import java.sql.Connection;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource; /**
* C3P0工具类
* @author Fzz
* @date 2017年11月12日 */
public class C3P0Utils {
//创建c3p0的连接池对象(注:ComboPooledDataSource空参数时使用默认配置,否则传入需要使用的配置名字即可)
private static ComboPooledDataSource datasource = new ComboPooledDataSource();
/**
* 返回DataSource
* @Title: getDataSource
* @Description: TODO:获得连接池对象
* @return: ComboPooledDataSource
*/
public static ComboPooledDataSource getDataSource(){
return datasource;//将连接池对象返回即可
}
/**
* 返回Connection
* @Title: getConnection
* @Description: TODO:获得连接对象(从池子中取)
* @return: Connection
*/
public static Connection getConnection(){
try {
return datasource.getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
注:这里C3P0Utils提供没有进行连接对象的归还方法,这是因为一我们在使用完连接对象conn后直接使用conn.close()即可归还。(c3p0使用代理已经增强了close()方法不是关闭是归还连接池,和上文拓展说的一个意思),二是后面我们要使用DBUtils工具类进行数据库操作,而DBUtils底层会自动维护连接对象,固此处不再提供归还方法。
六、使用DBUtils工具类进行数据库测CRUD(增查改删)
上文我们也说到JDBC工具类对提高代码复用率的重要性,DBUtils是Apache大佬提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时又不会影响程序的性能。
1、准备工作
- 导包:既然是第三方工具,就需要导包,包括数据库驱动包、DBUtils包和连接池包(这里我们使用C3P0连接池):
aaarticlea/png;base64,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" alt="" /> - 准备连接池:比如编写c3p0工具类和配置文件。
- JavaBean类的编写。JavaBean是一种JAVA语言规范写成可重用组件的类。写成JavaBean的类,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。比如我的数据库中有一个category表,那么我就可以设计一个JavaBean类。
package cn.domain; public class category {
private String cid;
private String cname;
public category(){ }
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
} }
2、三个核心类
在使用之前我们先学习DBUtils的三个核心类:提供SQL语句操作API的QueryRunner类、用于执行select语句后进行结果集封装的ResultSetHandler接口、提供资源关闭、处理事务等方法的DbUtils工具类。
- QueryRunner类:
new QueryRunner(DateSource ds):提供连接数据源(连接池)的方式。
update(String sql,Object...params):执行更新操作。
query(String sql,ResultSetHandler<T> rs,Object...paramas):执行查询操作。 - ResultSetHandler接口:(重点常用的三个已标红)
aaarticlea/png;base64,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" alt="" /> - DbUtils工具类:
closeQuietly(Connection conn):关闭连接,如果有异常try后不抛。
commitAndCloseQuietly(Connection conn):提交事务并关闭连接。
rollbackAndCloseQuietly(Connection conn):回滚事务并关闭连接。
3、实现CRUD操作
这里举一个例子作为参考,其他步骤基本一致:
//使用DBUtils查询数据库
@Test
public void queryAll(){
try {
//1、使用QueryRunner获得数据源(连接池)
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
//2、编写sql语句
String sql = "select * from category";
//3、执行sql语句
List<category> query = qr.query(sql,new BeanListHandler<category>(category.class));
//4、处理结果
for(category c:query){
System.out.println(c.getCid()+":"+c.getCname());
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
JDBC:从原理到应用的更多相关文章
- Javaweb学习笔记——(十七)——————JDBC的原理、四大核心类、四大参数、预编译、Dao模式、批处理、大数据、时间类型的转换
JDBC入门 *导入jar包:驱动 *加载驱动类:Class.forName("类名"); *给出url.username.password,其中url背下来 *使用DriverM ...
- JDBC之——原理和连接数据库
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...
- JDBC【2】-- JDBC工作原理以及简单封装
目录 1. 工作原理 1.1 加载驱动 1.1.1 类加载相关知识 1.1.2 为什么JDK 1.6之后不需要显示加载了? 1.2 驱动加载完成了,然后呢? 2. 简单封装 1. 工作原理 一般我们主 ...
- JDBC底层原理
Class.forName(“com.mysql.jdbc.Driver”)是 强制JVM将com.mysql.jdbc.Driver这个类加载入内存,并将其注册到DriverManager类,然后根 ...
- JDBC超时原理与设置
抄录自网上,因为担心以后找不到,因此抄录之.感谢分享的大神! 英文原版:http://www.cubrid.org/blog/dev-platform/understanding-jdbc-inter ...
- JDBC基础原理
一.DCL(了解) -- 1. 创建用户CREATE USER 'zhangsan'@'%' IDENTIFIED BY 'zhangsan';-- 2. 用户授权GRANT ALL ON heima ...
- 一个基础又很重要的知识点:JDBC原理(基本案例和面试知识点)
JDBC全称又叫做Java DataBase Connectivity,就是Java数据库连接,说白了就是用Java语言来操作数据库.这篇文章主要是对JDBC的原理进行讲解.不会专注于其使用.主要是理 ...
- sqoop关系型数据迁移原理以及map端内存为何不会爆掉窥探
序:map客户端使用jdbc向数据库发送查询语句,将会拿到所有数据到map的客户端,安装jdbc的原理,数据全部缓存在内存中,但是内存没有出现爆掉情况,这是因为1.3以后,对jdbc进行了优化,改进j ...
- JDBC操作数据库的三种方式比较
JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...
- JDBC——连接数据库
JDBC的基本介绍 1.概述:jdbc是使用Java访问各种数据库的一种技术 (1)jdbc工作原理 2.jdbc核心Java类(API) (1)DriverManager类 作用:管理各种数据库的驱 ...
随机推荐
- Python之黏包的解决
黏包的解决方案 发生黏包主要是因为接收者不知道发送者发送内容的长度,因为tcp协议是根据数据流的,计算机操作系统有缓存机制, 所以当出现连续发送或连续接收的时候,发送的长度和接收的长度不匹配的情况下就 ...
- lambda匿名函数透析
lambda匿名函数透析 目录 1 匿名函数的作用... 1 2 匿名函数的格式... 1 3 匿名函数实例代码... 3 1 匿名函数的作用 ...
- 关于 Integer 值比较的问题
今天刚好遇到这样的问题,别的不说,先上代码 public class TestInteger { public static void main(final String[] args) { fina ...
- Bellman-Ford算法的改进---SPFA算法
传送门: Dijkstra Bellman-Ford SPFA Floyd 1.算法思想 Bellman-Ford算法时间复杂度比较高,在于Bellman-Ford需要递推n次,每次递推需要扫描所有的 ...
- redis从入门到
下载 首先我们要到GitHub(https://github.com/MicrosoftArchive/redis/releases)上下载Source code (tar.gz) 上传到Linux上 ...
- [转]scrapy中的request.meta
作者:知乎用户链接:https://www.zhihu.com/question/54773510/answer/146971644 meta属性是字典,字典格式即{'key':'value'},字典 ...
- CentOS 6.8下二级域名及目录的绑定
二级域名对应目录的绑定: 第一步: 开启mod_rewrite模块,默认是开启的,这里可以查下是否开启 终端输入:vim /etc/httpd/conf/httpd.conf 回车 查看188行:L ...
- 深入理解.net - 1.继承的本质
最近偶然看到这个博客你必须知道的.net,作者6的飞起啊,干货十足,还是07年写的...写的也很赞,评论更精彩,在此强烈推荐一波,看的感觉就像沙漠里发现了绿洲一样,很兴奋,意犹未尽,迫不及待的看完一篇 ...
- svg param.js的大bug
在svg文件里定义控件,带参数,然后引用. 如果是 text 且没有为其它添加默认值,那么会报错. 即, <svg width="200" height="200& ...
- [JetBrains注册] 利用教育邮箱注册pycharm,idea等产品教程。
我们在使用JetBrains的一些产品时,大多使用网上的一些key去注册或者pojie的,但是由于提供这些key的服务器并不能保证稳定可用,所以可能一段时间我们使用的ide又需要重新pojie. 这里 ...