{"id":538,"date":"2023-03-23T21:19:42","date_gmt":"2023-03-23T13:19:42","guid":{"rendered":""},"modified":"2023-03-23T21:19:42","modified_gmt":"2023-03-23T13:19:42","slug":"Spring JdbcTemplate\u6559\u7a0b","status":"publish","type":"post","link":"https:\/\/bianchenghao6.com\/538.html","title":{"rendered":"Spring JdbcTemplate\u6559\u7a0b"},"content":{"rendered":"
\n
\u5728\u6267\u884c\u67e5\u8be2\u4e4b\u524d\u548c\u4e4b\u540e\uff0c\u6211\u4eec\u9700\u8981\u7f16\u5199\u5f88\u591a\u4ee3\u7801\uff0c\u4f8b\u5982\u521b\u5efa\u8fde\u63a5\uff0c\u8bed\u53e5\uff0c\u5173\u95ed\u7ed3\u679c\u96c6\uff0c\u8fde\u63a5\u7b49\u3002<\/span> JdbcTemplate <\/span> <\/code>\n <\/div>\n <\/code>\n <\/div>\n <\/code>\n <\/div>\n <\/code>\n <\/div>\n <\/code>\n <\/div>\n <\/body>
\n \u6211\u4eec\u9700\u8981\u5728\u6570\u636e\u5e93\u903b\u8f91\u4e0a\u6267\u884c\u5f02\u5e38\u5904\u7406\u4ee3\u7801\u3002<\/span>
\n \u6211\u4eec\u9700\u8981\u5904\u7406\u4ea4\u6613\u3002<\/span>
\n \u5c06\u6240\u6709\u8fd9\u4e9b\u4ee3\u7801\u4ece\u4e00\u4e2a\u6570\u636e\u5e93\u903b\u8f91\u91cd\u590d\u5230\u53e6\u4e00\u4e2a\u6570\u636e\u5e93\u903b\u8f91\u662f\u4e00\u9879\u8017\u65f6\u7684\u5de5\u4f5c\u3002<\/span> <\/p>\n Spring JdbcTemplate\u7684\u4f18\u70b9<\/h2>\n
\n Spring Jdbc\u65b9\u6cd5<\/h2>\n
\n NamedParameterJdbcTemplate <\/span>
\n SimpleJdbcTemplate <\/span>
\n SimpleJdbcInsert\u548cSimpleJdbcCall <\/span> <\/p>\n
\n JdbcTemplate\u7c7b<\/h2>\n
\n org.springframework.dao <\/b>\u5305\u4e2d\u5b9a\u4e49\u7684\u5f02\u5e38\u7c7b\u7684\u5e2e\u52a9\u3002\n <\/div>\n\n\n
\n \u65b9\u6cd5<\/td>\n \u8bf4\u660e<\/td>\n<\/tr>\n \n public int update(String query)<\/td>\n \u7528\u4e8e\u63d2\u5165\uff0c\u66f4\u65b0\u548c\u5220\u9664\u8bb0\u5f55\u3002<\/td>\n<\/tr>\n \n public int update(String query\uff0cObject ... args)<\/td>\n \u7528\u4e8e\u901a\u8fc7\u4f7f\u7528\u7ed9\u5b9a\u53c2\u6570\u7684PreparedStatement\u63d2\u5165\uff0c\u66f4\u65b0\u548c\u5220\u9664\u8bb0\u5f55\u3002<\/td>\n<\/tr>\n \n public void execute(String query)<\/td>\n \u7528\u4e8e\u6267\u884cDDL\u67e5\u8be2\u3002<\/td>\n<\/tr>\n \n public T execute(String sql, PreparedStatementCallback action)<\/td>\n \u901a\u8fc7\u4f7f\u7528PreparedStatement\u56de\u8c03\u6267\u884c\u67e5\u8be2\u3002<\/td>\n<\/tr>\n \n public T query(String sql, ResultSetExtractor rse)<\/td>\n \u7528\u4e8e\u4f7f\u7528ResultSetExtractor\u83b7\u53d6\u8bb0\u5f55\u3002<\/td>\n<\/tr>\n \n public List query(String sql, RowMapper rse)<\/td>\n \u7528\u4e8e\u4f7f\u7528RowMapper\u83b7\u53d6\u8bb0\u5f55\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n
\n Spring JdbcTemplate\u7684\u793a\u4f8b<\/h3>\n
\r\ncreate table employee(\r\nid number(10),\r\nname varchar2(100),\r\nsalary number(10)\r\n);\r\n<\/pre>\n
\r\npackage <\/span>com.lidihuo;\r\npublic <\/span>class <\/span>Employee {\r\nprivate <\/span>int <\/span>id;\r\nprivate <\/span>String name;\r\nprivate <\/span>float<\/span> salary;\r\n\/\/no-arg and parameterized constructors\r\n\/\/getters and setters\r\n}\r\n<\/pre>\n
\r\npackage <\/span>com.lidihuo;\r\nimport org.springframework.jdbc.core.JdbcTemplate;\r\npublic <\/span>class <\/span>EmployeeDao {\r\nprivate <\/span>JdbcTemplate jdbcTemplate;\r\npublic void <\/span>setJdbcTemplate(JdbcTemplate jdbcTemplate) {\r\n this<\/span>.jdbcTemplate = jdbcTemplate;\r\n}\r\npublic <\/span>int <\/span>saveEmployee(Employee e){\r\n String query=\"insert into employee values(\r\n '\"<\/span><\/span><\/span><\/span><\/span><\/span>+e.getId<\/span>()+\"'<\/span><\/span><\/span><\/span><\/span><\/span>,'\"+e.getName<\/span>()+\"','\"+e.getSalary<\/span>()+\"')\";\r\n return <\/span>jdbcTemplate.update<\/span>(query);\r\n}\r\npublic <\/span>int <\/span>updateEmployee(Employee e){\r\n String query=\"update employee set \r\n name='\"+e.getName<\/span>()+\"',salary='\"+e.getSalary<\/span>()+\"' where id='\"+e.getId<\/span>()+\"<\/span>' \"<\/span>;\r\n return <\/span>jdbcTemplate.update<\/span>(query);\r\n}\r\npublic <\/span>int <\/span>deleteEmployee(Employee e){\r\n String query=\"delete from employee where id='<\/span>\"+e.getId<\/span>()+\"' \";\r\n return <\/span>jdbcTemplate.update<\/span>(query);\r\n}\r\n}\r\n<\/pre>\n
\n datasource <\/b>\u7684\u5c5e\u6027\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u9700\u8981\u5728JdbcTemplate\u7c7b\u4e2d\u4e3a\u6570\u636e\u6e90\u5c5e\u6027\u63d0\u4f9bDriverManagerDataSource\u5bf9\u8c61\u7684\u5f15\u7528\u3002\n <\/div>\n\r\n<?xml version=\"1.0\"<\/span> encoding=\"UTF-8\"<\/span>?>\r\n<beans\r\n xmlns=\"http:\/\/www.springframework.org\/schema\/beans\"<\/span>\r\n xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span>\r\n xmlns:p=\"http:\/\/www.springframework.org\/schema\/p\"<\/span>\r\n xsi:schemaLocation=\"http:\/\/www.springframework.org\/schema\/beans \r\nhttp:\/\/www.springframework.org\/schema\/beans\/spring-beans-3.0.xsd\">\r\n<bean id=\"ds\"<\/span><\/span> class=\"org.springframework.jdbc.datasource.DriverManagerDataSource\"<\/span>>\r\n<property name=\"driverClassName\"<\/span> value=\"oracle.jdbc.driver.OracleDriver\"<\/span> \/>\r\n<property name=\"url\"<\/span> value=\"jdbc:oracle:thin:@localhost:1521:xe\"<\/span> \/>\r\n<property name=\"username\"<\/span> value=\"system\"<\/span> \/>\r\n<property name=\"password\"<\/span> value=\"oracle\"<\/span> \/>\r\n<\/bean>\r\n<bean id=\"jdbcTemplate\"<\/span><\/span><\/span> class=\"org.springframework.jdbc.core.JdbcTemplate\"<\/span>>\r\n<property name=\"dataSource\"<\/span> ref=\"ds\"><\/property>\r\n<\/bean>\r\n<bean id=\"edao\"<\/span> class=\"com.lidihuo.EmployeeDao\"<\/span>>\r\n<property name=\"jdbcTemplate\" ref=\"jdbcTemplate\"><\/property>\r\n<\/bean>\r\n<\/beans>\r\n<\/pre>\n
\r\npackage <\/span>com.lidihuo;\r\nimport org.springframework.context.ApplicationContext;\r\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\r\npublic <\/span>class <\/span>Test {\r\npublic <\/span>static void <\/span>main(String[] args) {\r\n ApplicationContext ctx=new ClassPathXmlApplicationContext(\"applicationContext.xml\"<\/span>);\r\n \r\n EmployeeDao dao=(EmployeeDao)ctx.getBean<\/span>(\"edao\"<\/span>);\r\n int <\/span>status=dao.saveEmployee<\/span>(new Employee(102,\"Amit\"<\/span>,35000));\r\n System.out.println<\/span>(status);\r\n \r\n \/*int <\/span>status=dao.updateEmployee<\/span>(new Employee(102,\"Sonoo\"<\/span>,15000));\r\n System.out.println<\/span>(status);\r\n *\/\r\n \r\n \/*Employee e=new Employee();\r\n e.setId<\/span>(102);\r\n int <\/span>status=dao.deleteEmployee<\/span>(e);\r\n System.out.println<\/span>(status);*\/\r\n \r\n}\r\n}\r\n<\/pre>\n
\n ResultSetExtractor\u793a\u4f8b|\u901a\u8fc7Spring JdbcTemplate\u83b7\u53d6\u8bb0\u5f55
\n RowMapper\u793a\u4f8b|\u901a\u8fc7Spring JdbcTemplate\u83b7\u53d6\u8bb0\u5f55
\n Spring NamedParameterJdbcTemplate\u793a\u4f8b
\n Spring SimpleJdbcTemplate\u793a\u4f8b\n <\/div>\n
\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Spring JdbcTemplate\u6559\u7a0bzh-cn","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-bc_spring_jc"],"_links":{"self":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/538"}],"collection":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/comments?post=538"}],"version-history":[{"count":0,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/posts\/538\/revisions"}],"wp:attachment":[{"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/media?parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/categories?post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bianchenghao6.com\/wp-json\/wp\/v2\/tags?post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}