学科分类
目录
SSM框架

execute()

execute(String sql)方法能够完成执行SQL语句的功能。下面以创建数据表的SQL语句为例,来演示此方法的使用,具体步骤如下。

(1)在MySQL中,创建一个名为spring的数据库,创建方式如图1所示。

图1 创建spring数据库

在图1中,首先使用SQL语句创建了数据库spring,然后选择使用spring。为了便于后续验证数据表是通过execute(String sql)方法执行创建的,这里使用了show tables语句查看数据库中的表,其结果显示为空。

(2)在Eclipse中,创建一个名为chapter04的Web项目,将运行Spring框架所需的5个基础JAR包、MySQL数据库的驱动JAR包、Spring JDBC的JAR包以及Spring事务处理的JAR包复制到项目的lib目录,并发布到类路径中。项目中所添加的JAR包如图2所示。

图2 Spring JDBC操作相关的JAR包

(3)在src目录下,创建配置文件applicationContext.xml,在该文件中配置id为dataSource的数据源Bean和id为jdbcTemplate的JDBC模板Bean,并将数据源注入到JDBC模板中,如文件1所示。

文件1 applicationContext.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 
 5         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
 6        <!-- 1配置数据源 -->
 7        <bean id="dataSource" class=
 8         "org.springframework.jdbc.datasource.DriverManagerDataSource">
 9            <!--数据库驱动 -->
 10            <property name="driverClassName" value="com.mysql.jdbc.Driver" />
 11            <!--连接数据库的url -->
 12            <property name="url" value="jdbc:mysql://localhost/spring" />
 13            <!--连接数据库的用户名 -->
 14            <property name="username" value="root" />
 15            <!--连接数据库的密码 -->
 16            <property name="password" value="root" />
 17        </bean>
 18        <!-- 2配置JDBC模板 -->
 19        <bean id="jdbcTemplate" 
 20               class="org.springframework.jdbc.core.JdbcTemplate">
 21            <!-- 默认必须使用数据源 -->
 22            <property name="dataSource" ref="dataSource" />
 23        </bean>
 24    </beans>

(4)在src目录下,创建一个com.itheima.jdbc包,在该包中创建测试类JdbcTemplateTest。在该类的main()方法中通过Spring容器获取在配置文件中定义的JdbcTemplate实例,然后使用该实例的execute(String sql)方法执行创建数据表的SQL语句,如文件2所示。

文件2 JdbcTemplateTest.java

 1    package com.itheima.jdbc;
 2    import org.springframework.context.ApplicationContext;
 3    import 
 4         org.springframework.context.support.ClassPathXmlApplicationContext;
 5    import org.springframework.jdbc.core.JdbcTemplate;
 6    public class JdbcTemplateTest {
 7        /**
 8         * 使用execute()方法建表
 9         */
 10        public static void main(String[] args) {
 11            // 加载配置文件
 12            ApplicationContext applicationContext = 
 13               new ClassPathXmlApplicationContext("applicationContext.xml");
 14            // 获取JdbcTemplate实例
 15            JdbcTemplate jdTemplate = 
 16                   (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
 17            // 使用execute()方法执行SQL语句,创建用户账户管理表account
 18            jdTemplate.execute("create table account(" + 
 19                                 "id int primary key auto_increment," +
 20                                 "username varchar(50)," + 
 21                                 "balance double)");
 22            System.out.println("账户表account创建成功!");
 23        }
 24    }

成功运行程序后,再次查询spring数据库,其结果如图3所示。

图3 spring数据库中的表

从图3可以看出,程序使用execute(String sql)方法执行的SQL语句已成功创建了数据表account。

多学一招:使用JUnit测试

在软件开发过程中,需要有相应的测试工作。依据测试目的不同,可以将软件测试分为单元测试、集成测试、确认测试和系统测试等。其中单元测试在软件开发阶段是最底层的测试,它易于及时发现并解决问题。JUnit就是一个进行单元测试的开源框架,下面以文件4-2为例,来简单学习一下单元测试框架JUnit4的使用。

将文件2中的main()方法,修改成名称为mainTest()普通方法,并在方法上添加单元测试的注解@Test,其代码如下所示。

@Test
public void mainTest() {
    // 加载配置文件
    ApplicationContext applicationContext = 
            new ClassPathXmlApplicationContext("applicationContext.xml");
    // 获取JdbcTemplate实例
    JdbcTemplate jdTemplate = 
            (JdbcTemplate) applicationContext.getBean("jdbcTemplate");
    // 使用execute()方法执行SQL语句,创建用户账户管理表account
    jdTemplate.execute("create table account(" + 
                           "id int primary key auto_increment," +
                           "username varchar(50)," + 
                           "balance double)");
    System.out.println("账户表account创建成功!");
}

@Test就是Junit4用来测试的注解,要测试哪个方法,只需要在相应测试的方法上添加此注解即可。当在需要测试的方法上添加@Test注解后,Eclipse会在所添加的@Test处报出Test cannot be resolved to a type的错误,将鼠标移到@Test处,会显示出错误提示框(如图4所示)。

图4 添加JUnit4

单击提示框中的Add JUnit4 library to the build path后,Eclipse会自动将JUnit4的支持包加入到项目中,如图5所示。

图5 JUnit框架支持包

加入后,在测试类中会自动导入org.junit.Test包,此时测试类中的代码将不再报错。在执行程序时,只需使用鼠标右键单击mainTest()方法,在弹出的快捷菜单中选择Run AsàJUnit Test选项来运行测试方法即可,如图6所示。

图6 运行JUnit

单击JUnit Test选项后,Eclipse中会多出一个名为JUnit的视图窗口,其显示结果如图7所示。

图7 JUnit控制台

在图7中,JUnit视图窗口的进度条为绿色表明运行结果正确,如果进度条为红色则表示有错误,并且会在窗口中显示所报的错误信息。

需要注意的是,在运行此方法时,需要先将数据库中已创建好的account表删除,否则执行此方法时会报出account表已经存在的错误。

测试执行通过后,Console控制台的输出结果如图8所示。

图8 运行结果

从图8可以看出,mainTest()方法已经执行成功,这就是单元测试的使用。

点击此处
隐藏目录