时间:2021-07-01 10:21:17 帮助过:4人阅读
1、导入 jar 包
2、创建 JDBCTemplate 对象,依赖于数据源 DataSource。
数据池之数据源创建。
- <span style="font-size: 18px;">JdbcTemplate template = new JdbcTemplate(ds);</span>
3、调用 JdbcTemplate 的方法来完成 CRUD 操作
- <span style="font-size: 18px;">1、update():执行DML语句。增、删、改语句。
- 2、queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合,(注意:这个方法查询的结果集长度只能是1)
- 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)查询总记录数。
代码实现:
- <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;
- </span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> cn.ks.utils.JDBCUtils;
- </span><span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.junit.Test;
- </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.jdbc.core.BeanPropertyRowMapper;
- </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.jdbc.core.JdbcTemplate;
- </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.springframework.jdbc.core.RowMapper;
- </span><span style="color: #008080;"> 7</span>
- <span style="color: #008080;"> 8</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.sql.ResultSet;
- </span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.sql.SQLException;
- </span><span style="color: #008080;"> 10</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.List;
- </span><span style="color: #008080;"> 11</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.Map;
- </span><span style="color: #008080;"> 12</span>
- <span style="color: #008080;"> 13</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> JdbcTemplateDemo {
- </span><span style="color: #008080;"> 14</span>
- <span style="color: #008080;"> 15</span> <span style="color: #008000;">//</span><span style="color: #008000;">1获取JDBCTemplate 对象</span>
- <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());
- </span><span style="color: #008080;"> 17</span>
- <span style="color: #008080;"> 18</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;"> 19</span> <span style="color: #008000;"> * 1、修改1号数据的 num 为10;
- </span><span style="color: #008080;"> 20</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;"> 21</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;"> 22</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test1() {
- </span><span style="color: #008080;"> 23</span>
- <span style="color: #008080;"> 24</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 2 定义SQL</span>
- <span style="color: #008080;"> 25</span> String sql = "update book set num=10 where id=1"<span style="color: #000000;">;
- </span><span style="color: #008080;"> 26</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 3 执行SQL</span>
- <span style="color: #008080;"> 27</span> <span style="color: #0000ff;">int</span> count =<span style="color: #000000;"> template.update(sql);
- </span><span style="color: #008080;"> 28</span>
- <span style="color: #008080;"> 29</span> <span style="color: #000000;"> System.out.println(count);
- </span><span style="color: #008080;"> 30</span>
- <span style="color: #008080;"> 31</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 32</span>
- <span style="color: #008080;"> 33</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;"> 34</span> <span style="color: #008000;"> * 2 添加一条记录;
- </span><span style="color: #008080;"> 35</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;"> 36</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;"> 37</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test2() {
- </span><span style="color: #008080;"> 38</span> String sql = "insert into book values(?,?,?,?,?)"<span style="color: #000000;">;
- </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;">);
- </span><span style="color: #008080;"> 40</span> <span style="color: #000000;"> System.out.println(count);
- </span><span style="color: #008080;"> 41</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 42</span>
- <span style="color: #008080;"> 43</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;"> 44</span> <span style="color: #008000;"> * 3、删除刚刚添加的记录;
- </span><span style="color: #008080;"> 45</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;"> 46</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;"> 47</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test3() {
- </span><span style="color: #008080;"> 48</span> String sql = "delete from book where id=?"<span style="color: #000000;">;
- </span><span style="color: #008080;"> 49</span> <span style="color: #0000ff;">int</span> count = template.update(sql, 3<span style="color: #000000;">);
- </span><span style="color: #008080;"> 50</span> <span style="color: #000000;"> System.out.println(count);
- </span><span style="color: #008080;"> 51</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 52</span>
- <span style="color: #008080;"> 53</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;"> 54</span> <span style="color: #008000;"> * 4、查询 id 为1的记录,将其封装为 Map 集合;
- </span><span style="color: #008080;"> 55</span> <span style="color: #008000;"> * 注意,这个方法查询的结果长度只能是1
- </span><span style="color: #008080;"> 56</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;"> 57</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;"> 58</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test4() {
- </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=?";
- </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>
- <span style="color: #008080;"> 61</span> String sql = "select * from book where id=?"<span style="color: #000000;">;
- </span><span style="color: #008080;"> 62</span> Map<String, Object> map = template.queryForMap(sql, 1<span style="color: #000000;">);
- </span><span style="color: #008080;"> 63</span> <span style="color: #000000;"> System.out.println(map);
- </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>
- <span style="color: #008080;"> 65</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 66</span>
- <span style="color: #008080;"> 67</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;"> 68</span> <span style="color: #008000;"> 5、查询所有记录,将其封装为 List;
- </span><span style="color: #008080;"> 69</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;"> 70</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;"> 71</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test5() {
- </span><span style="color: #008080;"> 72</span> String sql = "select * from book"<span style="color: #000000;">;
- </span><span style="color: #008080;"> 73</span> List<Map<String, Object>> list =<span style="color: #000000;"> template.queryForList(sql);
- </span><span style="color: #008080;"> 74</span>
- <span style="color: #008080;"> 75</span> <span style="color: #0000ff;">for</span> (Map<String,Object><span style="color: #000000;"> item : list) {
- </span><span style="color: #008080;"> 76</span> <span style="color: #000000;"> System.out.println(item);
- </span><span style="color: #008080;"> 77</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 78</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 79</span>
- <span style="color: #008080;"> 80</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;"> 81</span> <span style="color: #008000;"> 6、查询所有记录,将其封装为 Emp对象的 List 集合;
- </span><span style="color: #008080;"> 82</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;"> 83</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;"> 84</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test6() {
- </span><span style="color: #008080;"> 85</span> String sql = "select * from book"<span style="color: #000000;">;
- </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>
- <span style="color: #008080;"> 87</span> <span style="color: #000000;"> @Override
- </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 {
- </span><span style="color: #008080;"> 89</span> Book book = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Book();
- </span><span style="color: #008080;"> 90</span> book.setId(resultSet.getInt("id"<span style="color: #000000;">));
- </span><span style="color: #008080;"> 91</span> book.setName(resultSet.getString("name"<span style="color: #000000;">));
- </span><span style="color: #008080;"> 92</span> book.setKind(resultSet.getString("kind"<span style="color: #000000;">));
- </span><span style="color: #008080;"> 93</span> book.setPrice(resultSet.getDouble("price"<span style="color: #000000;">));
- </span><span style="color: #008080;"> 94</span> book.setNum(resultSet.getInt("num"<span style="color: #000000;">));
- </span><span style="color: #008080;"> 95</span>
- <span style="color: #008080;"> 96</span> <span style="color: #0000ff;">return</span><span style="color: #000000;"> book;
- </span><span style="color: #008080;"> 97</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;"> 98</span> <span style="color: #000000;"> });
- </span><span style="color: #008080;"> 99</span>
- <span style="color: #008080;">100</span> <span style="color: #0000ff;">for</span><span style="color: #000000;"> (Book book : list) {
- </span><span style="color: #008080;">101</span> <span style="color: #000000;"> System.out.println(book);
- </span><span style="color: #008080;">102</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">103</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">104</span>
- <span style="color: #008080;">105</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;">106</span> <span style="color: #008000;"> 6、查询所有记录,将其封装为 Emp对象的 List 集合;
- </span><span style="color: #008080;">107</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;">108</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;">109</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test7() {
- </span><span style="color: #008080;">110</span> String sql = "select * from book"<span style="color: #000000;">;
- </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;">));
- </span><span style="color: #008080;">112</span> <span style="color: #0000ff;">for</span><span style="color: #000000;"> (Book book : list) {
- </span><span style="color: #008080;">113</span> <span style="color: #000000;"> System.out.println(book);
- </span><span style="color: #008080;">114</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">115</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">116</span>
- <span style="color: #008080;">117</span> <span style="color: #008000;">/*</span>
- <span style="color: #008080;">118</span> <span style="color: #008000;"> * 7、查询总记录数。
- </span><span style="color: #008080;">119</span> <span style="color: #008000;">*/</span>
- <span style="color: #008080;">120</span> <span style="color: #000000;"> @Test
- </span><span style="color: #008080;">121</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> test8() {
- </span><span style="color: #008080;">122</span> String sql = "select count(id) from book"<span style="color: #000000;">;
- </span><span style="color: #008080;">123</span> Long aLong = template.queryForObject(sql, Long.<span style="color: #0000ff;">class</span><span style="color: #000000;">);
- </span><span style="color: #008080;">124</span> <span style="color: #000000;"> System.out.println(aLong);
- </span><span style="color: #008080;">125</span> <span style="color: #000000;"> }
- </span><span style="color: #008080;">126</span> }</span>
Java 之 JDBCTemplate
标签:where rri turn 简单 html pre jdb new price