{"id":303,"date":"2022-04-08T15:55:07","date_gmt":"2022-04-08T07:55:07","guid":{"rendered":"https:\/\/blog.lijiajia.top\/?p=303"},"modified":"2026-06-19T21:38:36","modified_gmt":"2026-06-19T13:38:36","slug":"spring%e6%a1%86%e6%9e%b6%e5%ad%a6%e4%b9%a0%ef%bc%9ajdbctemplate%e7%9a%84curd%e5%8d%81%e4%b8%83","status":"publish","type":"post","link":"https:\/\/blog.ttwow.top\/?p=303","title":{"rendered":"Spring\u6846\u67b6\u5b66\u4e60\uff1aJdbcTemplate\u7684CURD(\u5341\u516b)"},"content":{"rendered":"<h3>xml\u914d\u7f6e\uff1a<\/h3>\n<pre><code class=\"language-xml\">    &lt;!--\u7ec4\u4ef6\u626b\u63cf--&gt;\n    &lt;context:component-scan base-package=&quot;com.spring5&quot;&gt;&lt;\/context:component-scan&gt;\n\n    &lt;!-- \u6570\u636e\u5e93\u8fde\u63a5\u6c60 --&gt;\n    &lt;bean id=&quot;dataSource&quot; class=&quot;com.alibaba.druid.pool.DruidDataSource&quot;\n          destroy-method=&quot;close&quot;&gt;\n        &lt;property name=&quot;url&quot; value=&quot;jdbc:mysql:\/\/\/test&quot; \/&gt;\n        &lt;property name=&quot;username&quot; value=&quot;root&quot; \/&gt;\n        &lt;property name=&quot;password&quot; value=&quot;test&quot; \/&gt;\n        &lt;property name=&quot;driverClassName&quot; value=&quot;com.mysql.jdbc.Driver&quot; \/&gt;\n    &lt;\/bean&gt;\n\n    &lt;!--jdbcTemplate\u5bf9\u8c61--&gt;\n    &lt;bean id=&quot;jdbcTemplate&quot; class=&quot;org.springframework.jdbc.core.JdbcTemplate&quot;&gt;\n        &lt;!--\u6ce8\u5165dataSource--&gt;\n        &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;&gt;&lt;\/property&gt;\n    &lt;\/bean&gt;<\/code><\/pre>\n<h3>\u5b9e\u4f53\u7c7b:<\/h3>\n<pre><code class=\"language-java\">public class User {\n\n    private String userId;\n\n    private String username;\n\n    private String ustatus;\n\n    public String getUserId() {\n        return userId;\n    }\n\n    public void setUserId(String userId) {\n        this.userId = userId;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    public String getUstatus() {\n        return ustatus;\n    }\n\n    public void setUstatus(String ustatus) {\n        this.ustatus = ustatus;\n    }\n\n    @Override\n    public String toString() {\n        return &quot;User{&quot; +\n                &quot;userId=&#039;&quot; + userId + &#039;\\&#039;&#039; +\n                &quot;, username=&#039;&quot; + username + &#039;\\&#039;&#039; +\n                &quot;, ustatus=&#039;&quot; + ustatus + &#039;\\&#039;&#039; +\n                &#039;}&#039;;\n    }\n}<\/code><\/pre>\n<h3>service\uff1a<\/h3>\n<pre><code class=\"language-java\">package com.spring5.service;\n\nimport com.spring5.dao.UserDao;\nimport com.spring5.entity.User;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n@Service\npublic class UserService {\n\n    \/\/\u6ce8\u5165dao\n    @Autowired\n    private UserDao userDao;\n\n    public void add(User user){\n        userDao.add(user);\n    }\n\n    public void update(User user) {\n        userDao.update(user);\n    }\n    public void delete(String id) {\n        userDao.delete(id);\n    }\n\n    public int queryCount() {\n        return userDao.queryCount();\n    }\n\n    public User queryOne(String id) {\n        return userDao.queryOne(id);\n    }\n\n    public List&lt;User&gt; querList() {\n        return userDao.querList();\n    }\n\n    public void batchAdd(List&lt;Object[]&gt; list){\n        userDao.batchAdd(list);\n    }\n    public void batchUpdate(List&lt;Object[]&gt; list){\n        userDao.batchUpdate(list);\n    }\n\n    public void batchDelete(List&lt;Object[]&gt; list){\n        userDao.batchDelete(list);\n    }\n}\n<\/code><\/pre>\n<h3>Dao\uff1a<\/h3>\n<pre><code class=\"language-java\">public interface UserDao {\n\n    void add(User user);\n\n    void update(User user);\n\n    void delete(String id);\n\n    int queryCount();\n\n    User queryOne(String id);\n\n    List&lt;User&gt; querList();\n\n    void batchAdd(List&lt;Object[]&gt; list);\n\n    void batchUpdate(List&lt;Object[]&gt; list);\n\n    void batchDelete(List&lt;Object[]&gt; list);\n}<\/code><\/pre>\n<h3>Dao\u5b9e\u73b0\u7c7b\uff1a<\/h3>\n<pre><code class=\"language-java\">@Repository\npublic class UserDaoImpl implements UserDao{\n\n    \/\/\u6ce8\u5165JdbcTemplate\n    @Autowired\n    private JdbcTemplate jdbcTemplate;\n\n    \/\/\u6dfb\u52a0\u7684\u65b9\u6cd5\n\n    \/**\n     * update(String sql,Object...args)\n     * \u6709\u4e24\u4e2a\u53c2\u6570\n     * \u7b2c\u4e00\u4e2a\u53c2\u6570\uff1asq1\u8bed\u53e5\n     * \u7b2c\u4e8c\u4e2a\u53c2\u6570\uff1a\u53ef\u53d8\u53c2\u6570\uff0c\u8bbe\u7f6esql\u8bed\u53e5\u503c\n     *\/\n    @Override\n    public void add(User user) {\n        \/\/\u521b\u5efasql\u8bed\u53e5\n        String sql = &quot;insert into user values (? , ? , ?)&quot;;\n        Object[] args = {user.getUserId(),user.getUsername(),user.getUstatus()};\n        int update = jdbcTemplate.update(sql, args);\n        System.out.println(&quot;\u5f71\u54cd\u7684\u884c\u6570\uff1a&quot;+update);\n    }\n\n    @Override\n    public void update(User user) {\n        \/\/\u521b\u5efasql\u8bed\u53e5\n        String sql = &quot;update user set username = ? , ustatus = ? where userId = ?&quot;;\n        Object[] args = {user.getUsername(),user.getUstatus(),user.getUserId(),};\n        int update = jdbcTemplate.update(sql, args);\n        System.out.println(&quot;\u5f71\u54cd\u7684\u884c\u6570\uff1a&quot;+update);\n    }\n\n    @Override\n    public void delete(String id) {\n        String sql = &quot;delete from user where userId = ?&quot;;\n        int update = jdbcTemplate.update(sql, id);\n        System.out.println(&quot;\u5f71\u54cd\u7684\u884c\u6570\uff1a&quot;+update);\n    }\n\n    \/**\n     * 2\u3001\u4f7f\u7528JdbcTemplate\u5b9e\u73b0\u67e5\u8be2\u8fd4\u56de\u67d0\u4e2a\u503c\u4ee3\u7801\n     * queryForObject(String sql,Class&lt;T&gt;requiredType)\n     * \u6709\u4e24\u4e2a\u53c2\u6570\n     * \u7b2c\u4e00\u4e2a\u53c2\u6570\uff1asq1\u8bed\u53e5\n     * \u7b2c\u4e8c\u4e2a\u53c2\u6570\uff1a\u8fd4\u56de\u7c7b\u578bClass\n     *\/\n    @Override\n    public int queryCount() {\n        String sql = &quot;select count(*) from user&quot;;\n        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);\n        return count;\n    }\n\n    \/**\n     *queryForObject(String sgl,RowMapper&lt;T&gt;rowMapper,Object...args)\n     * \u6709\u4e09\u4e2a\u53c2\u6570\n     * \u7b2c\u4e00\u4e2a\u53c2\u6570\uff1asq1\u8bed\u53e5\n     * \u7b2c\u4e8c\u4e2a\u53c2\u6570\uff1aRowMapper\u662f\u63a5\u53e3\uff0c\u9488\u5bf9\u8fd4\u56de\u4e0d\u540c\u7c7b\u578b\u6570\u636e\uff0c\u4f7f\u7528\u8fd9\u4e2a\u63a5\u53e3\u91cc\u9762\u5b9e\u73b0\u7c7b\u5b8c\u6210\u6570\u636e\u5c01\u88c5\n     * \u7b2c\u4e09\u4e2a\u53c2\u6570\uff1asq1\u8bed\u53e5\u503c-\u53c2\u6570\u503c\n     *\/\n    @Override\n    public User queryOne(String id) {\n        String sql = &quot;select * from user where userId = ?&quot;;\n        User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper&lt;User&gt;(User.class), id);\n        return user;\n    }\n\n    \/**\n     * query(String sql,RowMapper&lt;T&gt;rowMapper,Object...args)\n     * \u6709\u4e09\u4e2a\u53c2\u6570:\n     * \u7b2c\u4e00\u4e2a\u53c2\u6570\uff1asq1\u8bed\u53e5\n     * \u7b2c\u4e8c\u4e2a\u53c2\u6570\uff1aRowMapper\u662f\u63a5\u53e3\uff0c\u9488\u5bf9\u8fd4\u56de\u4e0d\u540c\u7c7b\u578b\u6570\u636e\uff0c\u4f7f\u7528\u8fd9\u4e2a\u63a5\u53e3\u91cc\u9762\u5b9e\u73b0\u7c7b\u5b8c\u6210\u6570\u636e\u5c01\u88c5\n     * \u7b2c\u4e09\u4e2a\u53c2\u6570\uff1asq1\u8bed\u53e5\u503c-\u53c2\u6570\u503c\n     *\/\n    @Override\n    public List&lt;User&gt; querList() {\n        String sql = &quot;select * from user&quot;;\n        List&lt;User&gt; list = jdbcTemplate.query(sql, new BeanPropertyRowMapper&lt;User&gt;(User.class));\n        return list;\n    }\n\n    @Override\n    public void batchAdd(List&lt;Object[]&gt; list) {\n        String sql = &quot;insert into user values (? , ? , ?)&quot;;\n        int[] ints = jdbcTemplate.batchUpdate(sql, list);\n        System.out.println(&quot;\u5f71\u54cd\u7684\u884c\u6570\uff1a&quot;+ Arrays.toString(ints));\n    }\n\n    @Override\n    public void batchUpdate(List&lt;Object[]&gt; list) {\n        String sql = &quot;update user set username = ? , ustatus = ? where userId = ?&quot;;\n        int[] ints = jdbcTemplate.batchUpdate(sql, list);\n        System.out.println(&quot;\u5f71\u54cd\u7684\u884c\u6570\uff1a&quot;+ Arrays.toString(ints));\n    }\n\n    @Override\n    public void batchDelete(List&lt;Object[]&gt; list) {\n        String sql = &quot;delete from user where userId = ?&quot;;\n        int[] ints = jdbcTemplate.batchUpdate(sql, list);\n        System.out.println(&quot;\u5f71\u54cd\u7684\u884c\u6570\uff1a&quot;+ Arrays.toString(ints));\n    }\n}<\/code><\/pre>\n<h3>junit\u6d4b\u8bd5\u7c7b\uff1a<\/h3>\n<pre><code class=\"language-java\">    @Test\n    public void testCurd(){\n\n        ApplicationContext context = new ClassPathXmlApplicationContext(&quot;bean1.xml&quot;);\n\n        UserService userService = context.getBean(&quot;userService&quot;, UserService.class);\n\n        \/\/\u65b0\u589e\n\/\/        User user = new User();\n\/\/        user.setUserId(&quot;3&quot;);\n\/\/        user.setUsername(&quot;Tom&quot;);\n\/\/        user.setUstatus(&quot;0&quot;);\n\/\/        userService.add(user);\n\n        \/\/\u4fee\u6539\n\/\/        User user = new User();\n\/\/        user.setUserId(&quot;3&quot;);\n\/\/        user.setUsername(&quot;Tom2&quot;);\n\/\/        user.setUstatus(&quot;1&quot;);\n\/\/        userService.update(user);\n\n        \/\/\u5220\u9664\n\/\/        userService.delete(&quot;3&quot;);\n\n        \/\/\u67e5\u8be2-\u8fd4\u56de\u67d0\u4e00\u4e2a\u503c\n        int count = userService.queryCount();\n        System.out.println(&quot;count : &quot;+count);\n\n        \/\/\u67e5\u8be2-\u5bf9\u8c61\n        User user = userService.queryOne(&quot;1&quot;);\n        System.out.println(user);\n\n        \/\/\u67e5\u8be2-\u5217\u8868\n        List&lt;User&gt; users = userService.querList();\n        System.out.println(users);\n    }\n\n    @Test\n    public void testBatchCurd(){\n\n        ApplicationContext context = new ClassPathXmlApplicationContext(&quot;bean1.xml&quot;);\n\n        UserService userService = context.getBean(&quot;userService&quot;, UserService.class);\n\n        \/\/\u6279\u91cf\u65b0\u589e\n\/\/        List&lt;Object[]&gt; list = new ArrayList&lt;&gt;();\n\/\/        Object[] o1 = {&quot;11&quot;,&quot;T1&quot;,&quot;6&quot;};\n\/\/        Object[] o2 = {&quot;12&quot;,&quot;T2&quot;,&quot;7&quot;};\n\/\/        Object[] o3 = {&quot;13&quot;,&quot;T3&quot;,&quot;8&quot;};\n\/\/        list.add(o1);\n\/\/        list.add(o2);\n\/\/        list.add(o3);\n\/\/        userService.batchAdd(list);\n\n        \/\/\u6279\u91cf\u4fee\u6539\n\/\/        List&lt;Object[]&gt; list = new ArrayList&lt;&gt;();\n\/\/        Object[] o1 = {&quot;G1&quot;,&quot;16&quot;,&quot;11&quot;};\n\/\/        Object[] o2 = {&quot;G1&quot;,&quot;17&quot;,&quot;12&quot;};\n\/\/        Object[] o3 = {&quot;G1&quot;,&quot;18&quot;,&quot;13&quot;};\n\/\/        list.add(o1);\n\/\/        list.add(o2);\n\/\/        list.add(o3);\n\/\/        userService.batchUpdate(list);\n\/\/\n\/\/        \/\/\u5220\u9664\n        List&lt;Object[]&gt; list = new ArrayList&lt;&gt;();\n        Object[] o1 = {&quot;11&quot;};\n        Object[] o2 = {&quot;12&quot;};\n        list.add(o1);\n        list.add(o2);\n        userService.batchDelete(list);\n\n    }<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>xml\u914d\u7f6e\uff1a &lt;!&#8211;\u7ec4\u4ef6\u626b\u63cf&#8211;&gt; &lt;context:component-scan bas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[43,68],"class_list":["post-303","post","type-post","status-publish","format-standard","hentry","category-java-backend","tag-jdbctemplate","tag-spring"],"_links":{"self":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=303"}],"version-history":[{"count":1,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":2144,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts\/303\/revisions\/2144"}],"wp:attachment":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}