当前位置:Gxlcms > 数据库问题 > Java——JDBC小结(3)

Java——JDBC小结(3)

时间:2021-07-01 10:21:17 帮助过:2人阅读

=jdbc:oracle:thin:localhost:orcl jdbc.user=system jdbc.password=123 #dbcp param dbcp.maxActive=1 dbcp.initSize=1

可以看到就是在之前的文件之中加入了两句话,设置连接的初始和最大连接数,这里数量不要设置过大,否则会造成数据库瘫痪。

整体代码如下:

  1. <span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> jbbc_day01;
  2. </span><span style="color: #008080;"> 2</span>
  3. <span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
  4. </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.sql.Connection;
  5. </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.sql.SQLException;
  6. </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Properties;
  7. </span><span style="color: #008080;"> 7</span>
  8. <span style="color: #008080;"> 8</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.apache.commons.dbcp.BasicDataSource;
  9. </span><span style="color: #008080;"> 9</span>
  10. <span style="color: #008080;">10</span> <span style="color: #008000;">/**</span>
  11. <span style="color: #008080;">11</span> <span style="color: #008000;"> * 用来管理连接
  12. </span><span style="color: #008080;">12</span> <span style="color: #008000;"> * 数据库连接信息,保存在属性文件中
  13. </span><span style="color: #008080;">13</span> <span style="color: #008000;"> * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> jiawenzhe
  14. </span><span style="color: #008080;">14</span> <span style="color: #008000;"> *
  15. </span><span style="color: #008080;">15</span> <span style="color: #008000;">*/</span>
  16. <span style="color: #008080;">16</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> DBUtil3 {
  17. </span><span style="color: #008080;">17</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> BasicDataSource ds;
  18. </span><span style="color: #008080;">18</span> <span style="color: #008000;">//</span><span style="color: #008000;">1、加载驱动</span>
  19. <span style="color: #008080;">19</span> <span style="color: #0000ff;">static</span><span style="color: #000000;">{
  20. </span><span style="color: #008080;">20</span> <span style="color: #0000ff;">try</span><span style="color: #000000;"> {
  21. </span><span style="color: #008080;">21</span> <span style="color: #008000;">//</span><span style="color: #008000;">加载属性文件数据</span>
  22. <span style="color: #008080;">22</span> Properties prop = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Properties();
  23. </span><span style="color: #008080;">23</span> <span style="color: #000000;"> prop.load
  24. </span><span style="color: #008080;">24</span> (DBUtil3.<span style="color: #0000ff;">class</span><span style="color: #000000;">.getClassLoader().
  25. </span><span style="color: #008080;">25</span> <span style="color: #000000;"> getResourceAsStream
  26. </span><span style="color: #008080;">26</span> ("db.properties"<span style="color: #000000;">));
  27. </span><span style="color: #008080;">27</span> String driverclass = prop.getProperty("jdbc.driverclass"<span style="color: #000000;">);
  28. </span><span style="color: #008080;">28</span> String url = prop.getProperty("jdbc.url"<span style="color: #000000;">);
  29. </span><span style="color: #008080;">29</span> String user = prop.getProperty("jdbc.user"<span style="color: #000000;">);
  30. </span><span style="color: #008080;">30</span> String password = prop.getProperty("jdbc.password"<span style="color: #000000;">);
  31. </span><span style="color: #008080;">31</span> <span style="color: #000000;"> String strMaxActive
  32. </span><span style="color: #008080;">32</span> = prop.getProperty("dbcp.maxActive"<span style="color: #000000;">);
  33. </span><span style="color: #008080;">33</span> <span style="color: #000000;"> String strInitSize
  34. </span><span style="color: #008080;">34</span> = prop.getProperty("dbcp.initSize"<span style="color: #000000;">);
  35. </span><span style="color: #008080;">35</span> <span style="color: #008000;">//</span><span style="color: #008000;">实例化,并初始化连接池</span>
  36. <span style="color: #008080;">36</span> ds = <span style="color: #0000ff;">new</span><span style="color: #000000;"> BasicDataSource();
  37. </span><span style="color: #008080;">37</span> <span style="color: #000000;"> ds.setDriverClassName(driverclass);
  38. </span><span style="color: #008080;">38</span> <span style="color: #000000;"> ds.setUrl(url);
  39. </span><span style="color: #008080;">39</span> <span style="color: #000000;"> ds.setUsername(user);
  40. </span><span style="color: #008080;">40</span> <span style="color: #000000;"> ds.setPassword(password);
  41. </span><span style="color: #008080;">41</span> <span style="color: #000000;"> ds.setMaxActive
  42. </span><span style="color: #008080;">42</span> <span style="color: #000000;"> (Integer.parseInt(strMaxActive));
  43. </span><span style="color: #008080;">43</span> <span style="color: #000000;"> ds.setInitialSize
  44. </span><span style="color: #008080;">44</span> <span style="color: #000000;"> (Integer.parseInt(strInitSize));
  45. </span><span style="color: #008080;">45</span>
  46. <span style="color: #008080;">46</span> } <span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
  47. </span><span style="color: #008080;">47</span> <span style="color: #000000;"> e.printStackTrace();
  48. </span><span style="color: #008080;">48</span> <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> RuntimeException
  49. </span><span style="color: #008080;">49</span> ("读取属性文件错误"<span style="color: #000000;">,e);
  50. </span><span style="color: #008080;">50</span> <span style="color: #000000;"> }
  51. </span><span style="color: #008080;">51</span> <span style="color: #000000;"> }
  52. </span><span style="color: #008080;">52</span> <span style="color: #008000;">//</span><span style="color: #008000;">2、创建连接</span>
  53. <span style="color: #008080;">53</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> Connection getConnection() <span style="color: #0000ff;">throws</span><span style="color: #000000;"> SQLException{
  54. </span><span style="color: #008080;">54</span> <span style="color: #0000ff;">return</span><span style="color: #000000;"> ds.getConnection() ;
  55. </span><span style="color: #008080;">55</span> <span style="color: #000000;"> }
  56. </span><span style="color: #008080;">56</span>
  57. <span style="color: #008080;">57</span> <span style="color: #008000;">//</span><span style="color: #008000;">3、关闭连接</span>
  58. <span style="color: #008080;">58</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> close(Connection conn){
  59. </span><span style="color: #008080;">59</span> <span style="color: #0000ff;">if</span>(conn!=<span style="color: #0000ff;">null</span><span style="color: #000000;">){
  60. </span><span style="color: #008080;">60</span> <span style="color: #0000ff;">try</span><span style="color: #000000;"> {
  61. </span><span style="color: #008080;">61</span> <span style="color: #000000;"> conn.close();
  62. </span><span style="color: #008080;">62</span> } <span style="color: #0000ff;">catch</span><span style="color: #000000;"> (SQLException e) {
  63. </span><span style="color: #008080;">63</span> <span style="color: #000000;"> e.printStackTrace();
  64. </span><span style="color: #008080;">64</span> <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> RuntimeException("关闭连接错误"<span style="color: #000000;">,e);
  65. </span><span style="color: #008080;">65</span> <span style="color: #000000;"> }
  66. </span><span style="color: #008080;">66</span> <span style="color: #000000;"> }
  67. </span><span style="color: #008080;">67</span> <span style="color: #000000;"> }
  68. </span><span style="color: #008080;">68</span> }

这里面同样是调用了close()方法,但是我们不能像之前那样理解为关闭连接,而我们应该认为他是归还给连接池,用Properties类读取出来的初始化和最大连接数量是字符串类型,而需要将字符串类型转换为Integer类型。

这里需要在介绍一个新类:BasicDataSource();

在我看来这个类再一次的优化了连接的封装

在实例化这个类之后,他有一系列的set属性方法,就是将Properties类get得到的值放入其中去统一初始化连接的准备工作,而不用想工具类2中那样放入到对应的方法中,而且这个类实现的对象直接就可以调用getConnection对象返回一个连接。

这样最终版本的JDBC工具类就写好了,我们再进行JDBC操作的时候可以直接拿来使用这个工具类,而之前所述的那两个工具类,都是为了最终引出这个工具类而做的前提铺垫

所以只需要记住这个工具类即可!

未完待续!

 

Java——JDBC小结(3)

标签:

人气教程排行