JdbcTemplate概述和测试

x33g5p2x  于2022-08-17 转载在 其他  
字(6.4k)|赞(0)|评价(0)|浏览(942)

JdbcTemplate概述

JdbcTemplate开发步骤

pom.xml中

测试java中实体类中

domain包下的account类下

运行结果: 

Spring产生JdbcTemplate对象

测试插入

在applicationContext1.xml下

pom.xml中

JdbcTemplateTest类下

运行结果:

数据库中的变化

 JdbcTemplate概述

他是spring框架中提供的一个对象,是对原始繁琐的jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HivernateTenplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等

JdbcTemplate开发步骤

  • ①导入spring-jdbc和spring-tx坐标  
  • ②创建数据库表和实体
  • ③创建JdbcTemplate对象
  • ④执行数据库操作

数据库中account表

 pom.xml中

  1. <dependency>
  2. <groupId>org.springframework</groupId>
  3. <artifactId>spring-jdbc</artifactId>
  4. <version>5.0.5.RELEASE</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework</groupId>
  8. <artifactId>spring-tx</artifactId>
  9. <version>5.0.5.RELEASE</version>
  10. </dependency>

测试java中实体类中

  1. package test;
  2. import com.mchange.v2.c3p0.ComboPooledDataSource;
  3. import org.junit.Test;
  4. import org.springframework.jdbc.core.JdbcTemplate;
  5. import java.beans.PropertyVetoException;
  6. public class JdbcTemplateTest {
  7. @Test
  8. //测试JdbcTemplate开发步骤
  9. public void test1() throws PropertyVetoException {
  10. //创建数据源对象
  11. ComboPooledDataSource dataSource=new ComboPooledDataSource();
  12. dataSource.setDriverClass("com.mysql.jdbc.Driver");
  13. //位置为本地,3306端口,test数据库
  14. dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test");
  15. //用户名
  16. dataSource.setUser("root");
  17. //用户密码
  18. dataSource.setPassword("123456");
  19. JdbcTemplate jdbcTemplate=new JdbcTemplate();
  20. //设置数据源对象,知道数据库在哪里
  21. jdbcTemplate.setDataSource(dataSource);
  22. //执行操作
  23. int row = jdbcTemplate.update("insert into account value(?,?)", "tom", 5000);
  24. System.out.println(row);
  25. }
  26. }

domain包下的account类下

  1. package domain;
  2. public class Account {
  3. private String name;
  4. private double money;
  5. public String getName() {
  6. return name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public double getMoney() {
  12. return money;
  13. }
  14. public void setMoney(double money) {
  15. this.money = money;
  16. }
  17. @Override
  18. public String toString() {
  19. return "Account{" +
  20. "name='" + name + '\'' +
  21. ", money=" + money +
  22. '}';
  23. }
  24. }

运行结果: 

数据库中的test数据库,account表

 Spring产生JdbcTemplate对象

测试插入

仔细看,这些都是参数注入(用了setXxx。。),我们可以将JdbcTemplate的创建权交给Spring,将数据源DataSource的创建权也交给Spring,在Spring容器内部将数据源DateSource注入到JdbcTemplate模版对象中,配置如下:

在test测试包下创建一系列

 在applicationContext1.xml下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!--数据源对象-->
  6. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  7. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  8. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
  9. <property name="user" value="root"/>
  10. <property name="password" value="123456"/>
  11. </bean>
  12. <!-- jdbc模版对象-->
  13. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  14. <property name="dataSource" ref="dataSource"/>
  15. </bean>
  16. </beans>

pom.xml中

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.example</groupId>
  7. <artifactId>javaMaven02</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <dependencies>
  10. <dependency>
  11. <groupId>mysql</groupId>
  12. <artifactId>mysql-connector-java</artifactId>
  13. <version>5.1.32</version>
  14. </dependency>
  15. <dependency>
  16. <groupId>c3p0</groupId>
  17. <artifactId>c3p0</artifactId>
  18. <version>0.9.1.2</version>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.alibaba</groupId>
  22. <artifactId>druid</artifactId>
  23. <version>1.1.10</version>
  24. </dependency>
  25. <dependency>
  26. <groupId>junit</groupId>
  27. <artifactId>junit</artifactId>
  28. <version>4.11</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-test</artifactId>
  33. <version>5.0.5.RELEASE</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework</groupId>
  37. <artifactId>spring-context</artifactId>
  38. <version>5.0.5.RELEASE</version>
  39. <scope>compile</scope>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework</groupId>
  43. <artifactId>spring-web</artifactId>
  44. <version>5.0.5.RELEASE</version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework</groupId>
  48. <artifactId>spring-webmvc</artifactId>
  49. <version>5.0.5.RELEASE</version>
  50. </dependency>
  51. <!-- 导入json相关依赖 -->
  52. <dependency>
  53. <groupId>com.fasterxml.jackson.core</groupId>
  54. <artifactId>jackson-core</artifactId>
  55. <version>2.9.0</version>
  56. </dependency>
  57. <dependency>
  58. <groupId>com.fasterxml.jackson.core</groupId>
  59. <artifactId>jackson-databind</artifactId>
  60. <version>2.9.0</version>
  61. </dependency>
  62. <dependency>
  63. <groupId>com.fasterxml.jackson.core</groupId>
  64. <artifactId>jackson-annotations</artifactId>
  65. <version>2.9.0</version>
  66. </dependency>
  67. <dependency>
  68. <groupId>org.springframework</groupId>
  69. <artifactId>spring-jdbc</artifactId>
  70. <version>5.0.5.RELEASE</version>
  71. </dependency>
  72. <dependency>
  73. <groupId>org.springframework</groupId>
  74. <artifactId>spring-tx</artifactId>
  75. <version>5.0.5.RELEASE</version>
  76. </dependency>
  77. </dependencies>
  78. </project>

JdbcTemplateTest类下

  1. public class JdbcTemplateTest {
  2. @Test
  3. //测试Spring产生jdbcTemplate对象
  4. public void test2() throws PropertyVetoException {
  5. ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext1.xml");
  6. JdbcTemplate jdbcTemplate=app.getBean(JdbcTemplate.class);
  7. int row = jdbcTemplate.update("insert into account value(?,?)", "KC", 50000);
  8. System.out.println(row);
  9. }
  10. }

运行结果:

 数据库中的变化

相关文章