• JdbcTemplate概述和测试


    目录

     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.springframeworkgroupId>
    3. <artifactId>spring-jdbcartifactId>
    4. <version>5.0.5.RELEASEversion>
    5. dependency>
    6. <dependency>
    7. <groupId>org.springframeworkgroupId>
    8. <artifactId>spring-txartifactId>
    9. <version>5.0.5.RELEASEversion>
    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. <beans xmlns="http://www.springframework.org/schema/beans"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    4. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    5. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    6. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
    7. <property name="user" value="root"/>
    8. <property name="password" value="123456"/>
    9. bean>
    10. <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    11. <property name="dataSource" ref="dataSource"/>
    12. bean>
    13. beans>

    pom.xml中

    1. <project xmlns="http://maven.apache.org/POM/4.0.0"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <groupId>org.examplegroupId>
    6. <artifactId>javaMaven02artifactId>
    7. <version>1.0-SNAPSHOTversion>
    8. <dependencies>
    9. <dependency>
    10. <groupId>mysqlgroupId>
    11. <artifactId>mysql-connector-javaartifactId>
    12. <version>5.1.32version>
    13. dependency>
    14. <dependency>
    15. <groupId>c3p0groupId>
    16. <artifactId>c3p0artifactId>
    17. <version>0.9.1.2version>
    18. dependency>
    19. <dependency>
    20. <groupId>com.alibabagroupId>
    21. <artifactId>druidartifactId>
    22. <version>1.1.10version>
    23. dependency>
    24. <dependency>
    25. <groupId>junitgroupId>
    26. <artifactId>junitartifactId>
    27. <version>4.11version>
    28. dependency>
    29. <dependency>
    30. <groupId>org.springframeworkgroupId>
    31. <artifactId>spring-testartifactId>
    32. <version>5.0.5.RELEASEversion>
    33. dependency>
    34. <dependency>
    35. <groupId>org.springframeworkgroupId>
    36. <artifactId>spring-contextartifactId>
    37. <version>5.0.5.RELEASEversion>
    38. <scope>compilescope>
    39. dependency>
    40. <dependency>
    41. <groupId>org.springframeworkgroupId>
    42. <artifactId>spring-webartifactId>
    43. <version>5.0.5.RELEASEversion>
    44. dependency>
    45. <dependency>
    46. <groupId>org.springframeworkgroupId>
    47. <artifactId>spring-webmvcartifactId>
    48. <version>5.0.5.RELEASEversion>
    49. dependency>
    50. <dependency>
    51. <groupId>com.fasterxml.jackson.coregroupId>
    52. <artifactId>jackson-coreartifactId>
    53. <version>2.9.0version>
    54. dependency>
    55. <dependency>
    56. <groupId>com.fasterxml.jackson.coregroupId>
    57. <artifactId>jackson-databindartifactId>
    58. <version>2.9.0version>
    59. dependency>
    60. <dependency>
    61. <groupId>com.fasterxml.jackson.coregroupId>
    62. <artifactId>jackson-annotationsartifactId>
    63. <version>2.9.0version>
    64. dependency>
    65. <dependency>
    66. <groupId>org.springframeworkgroupId>
    67. <artifactId>spring-jdbcartifactId>
    68. <version>5.0.5.RELEASEversion>
    69. dependency>
    70. <dependency>
    71. <groupId>org.springframeworkgroupId>
    72. <artifactId>spring-txartifactId>
    73. <version>5.0.5.RELEASEversion>
    74. dependency>
    75. dependencies>
    76. 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. }

    运行结果:

     数据库中的变化

  • 相关阅读:
    怎么将vue的移动端项目打包成手机的app软件apk格式的。hbuilderx 云打包。
    Three.js之模型对象、材质
    好用免费的PPT模板
    mysql报错:mysql8插入sql关键字“rank”问题
    Elasticsearch学习--script
    并发容器线程安全应对之道-ConcurrentHashMap
    Math对象
    设置单击右键可以选择用VS Code打开文件
    【毕业设计】基于Django和协同过滤的电影推荐系统
    Autosar MCAL MCU配置时钟-基于cfg
  • 原文地址:https://blog.csdn.net/weixin_60719453/article/details/126138920