当前位置:Gxlcms > 数据库问题 > Java 之 JDBCTemplate

Java 之 JDBCTemplate

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

  步骤

    1、导入 jar 包

        技术图片

    2、创建 JDBCTemplate 对象,依赖于数据源 DataSource。

       数据池之数据源创建。

  1. <span style="font-size: 18px;">JdbcTemplate template = new JdbcTemplate(ds);</span>

    3、调用 JdbcTemplate 的方法来完成 CRUD 操作

  常用方法:

  1. <span style="font-size: 18px;">1、update():执行DML语句。增、删、改语句。
  2. 2、queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合,(注意:这个方法查询的结果集长度只能是1)
  3. 3、queryForList():查询结果将结果集封装为list集合(注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中)</span><br><span style="font-size: 18px;">4、query():查询结果,将结果封装成 JavaBean 对象,<br>  query的参数:RowMapper<br>         ① 创建一个匿名内部类 RowMapper,重写里面的方法<br>         ② 一般使用 BeanPropertyRowMapper 实现类,可以完成数据到 JavaBean 的自动封装<br>           new BeanPropertyRowMapper<类型>(类型.class)</span><br><span style="font-size: 18px;">5、queryForObject():查询结果,将结果封装成对象,一般用于聚合函数的查询</span>

  案例:

      在bookstores 数据库中有一个book表,表结构和记录如下:

    技术图片

    需求

    (1)修改1号数据的 num 为10;

    (2)添加一条记录;

    (3)删除刚刚添加的记录;

    (4)查询 id 为1的记录,将其封装为 Map 集合;

    (5)查询所有记录,将其封装为 List;

    (6)查询所有记录,将其封装为 Emp对象的 List 集合;

    (7)查询总记录数。

    代码实现:

  1. <span style="font-size: 18px;"><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> cn.ks.beans.Book;
  2. </span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> cn.ks.utils.JDBCUtils;
  3. </span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.junit.Test;
  4. </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.jdbc.core.BeanPropertyRowMapper;
  5. </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.jdbc.core.JdbcTemplate;
  6. </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.jdbc.core.RowMapper;
  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;"> java.sql.ResultSet;
  9. </span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.sql.SQLException;
  10. </span><span style="color: #008080;"> 10</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.List;
  11. </span><span style="color: #008080;"> 11</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Map;
  12. </span><span style="color: #008080;"> 12</span>
  13. <span style="color: #008080;"> 13</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> JdbcTemplateDemo {
  14. </span><span style="color: #008080;"> 14</span>
  15. <span style="color: #008080;"> 15</span> <span style="color: #008000;">//</span><span style="color: #008000;">1获取JDBCTemplate 对象</span>
  16. <span style="color: #008080;"> 16</span> <span style="color: #0000ff;">private</span> JdbcTemplate template = <span style="color: #0000ff;">new</span><span style="color: #000000;"> JdbcTemplate(JDBCUtils.getDataSource());
  17. </span><span style="color: #008080;"> 17</span>
  18. <span style="color: #008080;"> 18</span> <span style="color: #008000;">/*</span>
  19. <span style="color: #008080;"> 19</span> <span style="color: #008000;"> * 1、修改1号数据的 num 为10;
  20. </span><span style="color: #008080;"> 20</span> <span style="color: #008000;">*/</span>
  21. <span style="color: #008080;"> 21</span> <span style="color: #000000;"> @Test
  22. </span><span style="color: #008080;"> 22</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test1() {
  23. </span><span style="color: #008080;"> 23</span>
  24. <span style="color: #008080;"> 24</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 2 定义SQL</span>
  25. <span style="color: #008080;"> 25</span> String sql = "update book set num=10 where id=1"<span style="color: #000000;">;
  26. </span><span style="color: #008080;"> 26</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 3 执行SQL</span>
  27. <span style="color: #008080;"> 27</span> <span style="color: #0000ff;">int</span> count =<span style="color: #000000;"> template.update(sql);
  28. </span><span style="color: #008080;"> 28</span>
  29. <span style="color: #008080;"> 29</span> <span style="color: #000000;"> System.out.println(count);
  30. </span><span style="color: #008080;"> 30</span>
  31. <span style="color: #008080;"> 31</span> <span style="color: #000000;"> }
  32. </span><span style="color: #008080;"> 32</span>
  33. <span style="color: #008080;"> 33</span> <span style="color: #008000;">/*</span>
  34. <span style="color: #008080;"> 34</span> <span style="color: #008000;"> * 2 添加一条记录;
  35. </span><span style="color: #008080;"> 35</span> <span style="color: #008000;">*/</span>
  36. <span style="color: #008080;"> 36</span> <span style="color: #000000;"> @Test
  37. </span><span style="color: #008080;"> 37</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test2() {
  38. </span><span style="color: #008080;"> 38</span> String sql = "insert into book values(?,?,?,?,?)"<span style="color: #000000;">;
  39. </span><span style="color: #008080;"> 39</span> <span style="color: #0000ff;">int</span> count = template.update(sql, <span style="color: #0000ff;">null</span>, "红楼梦", 3, 33.0, 6<span style="color: #000000;">);
  40. </span><span style="color: #008080;"> 40</span> <span style="color: #000000;"> System.out.println(count);
  41. </span><span style="color: #008080;"> 41</span> <span style="color: #000000;"> }
  42. </span><span style="color: #008080;"> 42</span>
  43. <span style="color: #008080;"> 43</span> <span style="color: #008000;">/*</span>
  44. <span style="color: #008080;"> 44</span> <span style="color: #008000;"> * 3、删除刚刚添加的记录;
  45. </span><span style="color: #008080;"> 45</span> <span style="color: #008000;">*/</span>
  46. <span style="color: #008080;"> 46</span> <span style="color: #000000;"> @Test
  47. </span><span style="color: #008080;"> 47</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test3() {
  48. </span><span style="color: #008080;"> 48</span> String sql = "delete from book where id=?"<span style="color: #000000;">;
  49. </span><span style="color: #008080;"> 49</span> <span style="color: #0000ff;">int</span> count = template.update(sql, 3<span style="color: #000000;">);
  50. </span><span style="color: #008080;"> 50</span> <span style="color: #000000;"> System.out.println(count);
  51. </span><span style="color: #008080;"> 51</span> <span style="color: #000000;"> }
  52. </span><span style="color: #008080;"> 52</span>
  53. <span style="color: #008080;"> 53</span> <span style="color: #008000;">/*</span>
  54. <span style="color: #008080;"> 54</span> <span style="color: #008000;"> * 4、查询 id 为1的记录,将其封装为 Map 集合;
  55. </span><span style="color: #008080;"> 55</span> <span style="color: #008000;"> * 注意,这个方法查询的结果长度只能是1
  56. </span><span style="color: #008080;"> 56</span> <span style="color: #008000;">*/</span>
  57. <span style="color: #008080;"> 57</span> <span style="color: #000000;"> @Test
  58. </span><span style="color: #008080;"> 58</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test4() {
  59. </span><span style="color: #008080;"> 59</span> <span style="color: #008000;">//</span><span style="color: #008000;"> String sql = "select * from book where id=? or id=?";
  60. </span><span style="color: #008080;"> 60</span> <span style="color: #008000;">//</span><span style="color: #008000;"> Map<String, Object> map = template.queryForMap(sql, 1, 2);</span>
  61. <span style="color: #008080;"> 61</span> String sql = "select * from book where id=?"<span style="color: #000000;">;
  62. </span><span style="color: #008080;"> 62</span> Map<String, Object> map = template.queryForMap(sql, 1<span style="color: #000000;">);
  63. </span><span style="color: #008080;"> 63</span> <span style="color: #000000;"> System.out.println(map);
  64. </span><span style="color: #008080;"> 64</span> <span style="color: #008000;">//</span><span style="color: #008000;">{id=1, name=西游记, kind=1, price=22.0, num=5}</span>
  65. <span style="color: #008080;"> 65</span> <span style="color: #000000;"> }
  66. </span><span style="color: #008080;"> 66</span>
  67. <span style="color: #008080;"> 67</span> <span style="color: #008000;">/*</span>
  68. <span style="color: #008080;"> 68</span> <span style="color: #008000;"> 5、查询所有记录,将其封装为 List;
  69. </span><span style="color: #008080;"> 69</span> <span style="color: #008000;">*/</span>
  70. <span style="color: #008080;"> 70</span> <span style="color: #000000;"> @Test
  71. </span><span style="color: #008080;"> 71</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test5() {
  72. </span><span style="color: #008080;"> 72</span> String sql = "select * from book"<span style="color: #000000;">;
  73. </span><span style="color: #008080;"> 73</span> List<Map<String, Object>> list =<span style="color: #000000;"> template.queryForList(sql);
  74. </span><span style="color: #008080;"> 74</span>
  75. <span style="color: #008080;"> 75</span> <span style="color: #0000ff;">for</span> (Map<String,Object><span style="color: #000000;"> item : list) {
  76. </span><span style="color: #008080;"> 76</span> <span style="color: #000000;"> System.out.println(item);
  77. </span><span style="color: #008080;"> 77</span> <span style="color: #000000;"> }
  78. </span><span style="color: #008080;"> 78</span> <span style="color: #000000;"> }
  79. </span><span style="color: #008080;"> 79</span>
  80. <span style="color: #008080;"> 80</span> <span style="color: #008000;">/*</span>
  81. <span style="color: #008080;"> 81</span> <span style="color: #008000;"> 6、查询所有记录,将其封装为 Emp对象的 List 集合;
  82. </span><span style="color: #008080;"> 82</span> <span style="color: #008000;">*/</span>
  83. <span style="color: #008080;"> 83</span> <span style="color: #000000;"> @Test
  84. </span><span style="color: #008080;"> 84</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test6() {
  85. </span><span style="color: #008080;"> 85</span> String sql = "select * from book"<span style="color: #000000;">;
  86. </span><span style="color: #008080;"> 86</span> List<Book> list = template.query(sql, <span style="color: #0000ff;">new</span> RowMapper<Book>() { <span style="color: #008000;">//</span><span style="color: #008000;">匿名内部类</span>
  87. <span style="color: #008080;"> 87</span> <span style="color: #000000;"> @Override
  88. </span><span style="color: #008080;"> 88</span> <span style="color: #0000ff;">public</span> Book mapRow(ResultSet resultSet, <span style="color: #0000ff;">int</span> i) <span style="color: #0000ff;">throws</span><span style="color: #000000;"> SQLException {
  89. </span><span style="color: #008080;"> 89</span> Book book = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Book();
  90. </span><span style="color: #008080;"> 90</span> book.setId(resultSet.getInt("id"<span style="color: #000000;">));
  91. </span><span style="color: #008080;"> 91</span> book.setName(resultSet.getString("name"<span style="color: #000000;">));
  92. </span><span style="color: #008080;"> 92</span> book.setKind(resultSet.getString("kind"<span style="color: #000000;">));
  93. </span><span style="color: #008080;"> 93</span> book.setPrice(resultSet.getDouble("price"<span style="color: #000000;">));
  94. </span><span style="color: #008080;"> 94</span> book.setNum(resultSet.getInt("num"<span style="color: #000000;">));
  95. </span><span style="color: #008080;"> 95</span>
  96. <span style="color: #008080;"> 96</span> <span style="color: #0000ff;">return</span><span style="color: #000000;"> book;
  97. </span><span style="color: #008080;"> 97</span> <span style="color: #000000;"> }
  98. </span><span style="color: #008080;"> 98</span> <span style="color: #000000;"> });
  99. </span><span style="color: #008080;"> 99</span>
  100. <span style="color: #008080;">100</span> <span style="color: #0000ff;">for</span><span style="color: #000000;"> (Book book : list) {
  101. </span><span style="color: #008080;">101</span> <span style="color: #000000;"> System.out.println(book);
  102. </span><span style="color: #008080;">102</span> <span style="color: #000000;"> }
  103. </span><span style="color: #008080;">103</span> <span style="color: #000000;"> }
  104. </span><span style="color: #008080;">104</span>
  105. <span style="color: #008080;">105</span> <span style="color: #008000;">/*</span>
  106. <span style="color: #008080;">106</span> <span style="color: #008000;"> 6、查询所有记录,将其封装为 Emp对象的 List 集合;
  107. </span><span style="color: #008080;">107</span> <span style="color: #008000;">*/</span>
  108. <span style="color: #008080;">108</span> <span style="color: #000000;"> @Test
  109. </span><span style="color: #008080;">109</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test7() {
  110. </span><span style="color: #008080;">110</span> String sql = "select * from book"<span style="color: #000000;">;
  111. </span><span style="color: #008080;">111</span> List<Book> list = template.query(sql, <span style="color: #0000ff;">new</span> BeanPropertyRowMapper<Book>(Book.<span style="color: #0000ff;">class</span><span style="color: #000000;">));
  112. </span><span style="color: #008080;">112</span> <span style="color: #0000ff;">for</span><span style="color: #000000;"> (Book book : list) {
  113. </span><span style="color: #008080;">113</span> <span style="color: #000000;"> System.out.println(book);
  114. </span><span style="color: #008080;">114</span> <span style="color: #000000;"> }
  115. </span><span style="color: #008080;">115</span> <span style="color: #000000;"> }
  116. </span><span style="color: #008080;">116</span>
  117. <span style="color: #008080;">117</span> <span style="color: #008000;">/*</span>
  118. <span style="color: #008080;">118</span> <span style="color: #008000;"> * 7、查询总记录数。
  119. </span><span style="color: #008080;">119</span> <span style="color: #008000;">*/</span>
  120. <span style="color: #008080;">120</span> <span style="color: #000000;"> @Test
  121. </span><span style="color: #008080;">121</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test8() {
  122. </span><span style="color: #008080;">122</span> String sql = "select count(id) from book"<span style="color: #000000;">;
  123. </span><span style="color: #008080;">123</span> Long aLong = template.queryForObject(sql, Long.<span style="color: #0000ff;">class</span><span style="color: #000000;">);
  124. </span><span style="color: #008080;">124</span> <span style="color: #000000;"> System.out.println(aLong);
  125. </span><span style="color: #008080;">125</span> <span style="color: #000000;"> }
  126. </span><span style="color: #008080;">126</span> }</span>

 

    

 

Java 之 JDBCTemplate

标签:where   rri   turn   简单   html   pre   jdb   new   price   

人气教程排行