测试积点老人 发表于 2021-11-16 10:30:13

javaEE 单元测试报错!求慧眼!

折磨了我一天一夜,人彻底傻了!
这是单元测试报错的

代码如下这是配置文件<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 1 配置数据源-->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <!-- 数据库驱动-->
      <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
      <!-- 连接数据库的url-->
      <property name="url" value="jdbc:mysql://localhost:3306/spring"></property>
      <!-- 连接数据库的用户名-->
      <property name="username" value="root"></property>
      <!-- 连接数据库的密码-->
      <property name="password" value="123456"></property>
    </bean>
    <!-- 2 配置JDBC模板-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <!-- 默认必须使用数据源 -->
      <property name="dataSource" ref="dataSource" />
    </bean>
   
    <!-- 定义id为accountDao的Bean -->
    <bean id="accountDao" class="com.itheima.jdbc.AccountDaoImpl">
      <!-- 将jdbcTemplate注入到accountDao实例中 -->
      <property name="jdbcTemplate" ref="jdbcTemplate" />
    </bean>   
</beans>
这是Account.java
```java
package com.itheima.jdbc;
public class Account {
    private Integer id;         //账户id
    private String username;      //用户名
    private Double balance;       //账户余额
    public Integer getId() {
      return id;
    }
    public void setId(Integer id) {
      this.id = id;
    }
    public String getUsername() {
      return username;
    }
    public void setUsername(String username) {
      this.username = username;
    }
    public Double getBalance() {
      return balance;
    }
    public void setBalance(Double balance) {
      this.balance = balance;
    }
    public String toString() {
      return "Account [id=" + id + ", "
                + "username=" + username +
                ", balance=" + balance + "]";
    }
   
}
这是AccountDao.javapackage com.itheima.jdbc;
import java.util.List;
public interface AccountDao {
    //添加
    public int addAccount(Account account);
    //更新
    public int updateAccount(Account account);
    //删除
    public int deleteAccount(int id);
    //通过id查询
    public Account findAccountById(int id);
    //查询所有账户
    public List<Account> findAllAccount();

}
这是AccountDaoImpl.java

```java
package com.itheima.jdbc;
import java.util.List;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
public class AccountDaoImpl implements AccountDao {
    //声明jdbcTemplate属性及其setter方法
    private JdbcTemplate jdbcTemplate;
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
      this.jdbcTemplate = jdbcTemplate;
    }
    // 添加账户
      public int addAccount(Account account) {
            // 定义SQL
            String sql = "insert into account(username,balance) values(?,?)";
            // 定义数组来存放SQL语句中的参数
            Object[] obj = new Object[] {
                               account.getUsername(),
                               account.getBalance()
             };
            // 执行添加操作,返回的是受SQL语句影响的记录条数
            int num = this.jdbcTemplate.update(sql, obj);
            return num;
      }
      // 更新账户
      public int updateAccount(Account account) {
            // 定义SQL
            String sql = "update account set username=?,balance=? where id = ?";
            // 定义数组来存放SQL语句中的参数
            Object[] params = new Object[] {
                                 account.getUsername(),
                                 account.getBalance(),
                                 account.getId()
            };
            // 执行添加操作,返回的是受SQL语句影响的记录条数
            int num = this.jdbcTemplate.update(sql, params);
            return num;
      }
    //删除账户
    public int deleteAccount(int id) {
      // 定义SQL
      String sql="deletefrom account where id=? ";
      //执行删除操作,返回的是受SQL语句影响的记录条数
      int num=this.jdbcTemplate.update(sql, id);
      return num;
    }
    //通过id查询账户信息
    public Account findAccountById(int id) {
      //定义sql语句
      String sql="select * from account where id =?";
      //创建一个新的BeanPropertyRowMapper对象
      RowMapper<Account> rowMapper=
                new BeanPropertyRowMapper<Account>(Account.class);
      //将id绑到SQL语句中,并通过RowMapper返回一个Object类型的单行记录
      return this.jdbcTemplate.queryForObject(sql, rowMapper, id);
    }
    //查询所有账户信息
    public List<Account> findAllAccount(){
      //定义SQL语句
      String sql="select * from account";
      //创建一个新的BeanPropertyRowMapper对象
      RowMapper<Account> rowMapper=
                new BeanPropertyRowMapper<Account>(Account.class);
      //执行静态的SQL查询,并通过RowMapper返回结果
      return this.jdbcTemplate.query(sql, rowMapper);
    }
}接下来的是三个一运行就报错的单元测试!@Test
      public void addAccountTest() {
      //加载配置文件
      ApplicationContext applicationContext=
                new ClassPathXmlApplicationContext("applicationContext.xml");
      //获取AccountDao实例
         AccountDao accountDao=(AccountDao) applicationContext.getBean("accountDao");
      //创建Account对象,并向Account对象中添加数据
         Account account=new Account();
         account.setUsername("tom");
         account.setBalance(1000.00);
         //执行addAccount()方法,并获取返回结果
         int num=accountDao.addAccount(account);
         if(num>0) {
             System.out.println("成功插入了"+ num + "条数据!");
         }else {
            System.out.println("插入操作执行失败!");
      }
      }
      
      @Test
      public void updateAccountTest() {
      //加载配置文件
      ApplicationContext applicationContext=
                new ClassPathXmlApplicationContext("applicationContext.xml");
      //获取AccountDao实例
         AccountDao accountDao=(AccountDao) applicationContext.getBean("accountDao");
      //创建Account对象,并向Account对象中添加数据
         Account account=new Account();
         account.setId(1);
         account.setUsername("tom");
         account.setBalance(2000.00);
         //执行updateAccount()方法,并获取返回结果
         int num=accountDao.addAccount(account);
         if(num>0) {
             System.out.println("成功修改了"+num + "条数据!");
         }else {
            System.out.println("修改操作执行失败!");
      }
      }

@Test
      public void findAccountByIdTest() {
      //加载配置文件
      ApplicationContext applicationContext=
                new ClassPathXmlApplicationContext("applicationContext.xml");
      //获取AccountDao实例
         AccountDao accountDao=(AccountDao) applicationContext.getBean("accountDao");
         
         //执行findAccountById()方法,并获取返回结果
         Account account = accountDao.findAccountById(1);
         System.out.println(account);
      }
      

海海豚 发表于 2021-11-17 10:28:03

https://blog.csdn.net/jitianyu123/article/details/74352587看下这个

qqq911 发表于 2021-11-17 10:38:46

报错内容是什么
页: [1]
查看完整版本: javaEE 单元测试报错!求慧眼!