Spring中JdbcTemplate操作数据库时,测试类一直运行,很长时间不结束
今天在练习Spring中JdbcTemplate对数据库的crud操作时,用测试类往数据库中添加数据,一开始出现了几次红色进度条,但根据错误提示都解决掉了,最后一次运行测试类时,一直运行不完,既不是红色错误进度条,也不是绿色成功进度条,而是一直运行不完。如下图:
下面我把我的代码放出来
UserDao.java
package cn.gts.c3p0;
import org.springframework.jdbc.core.JdbcTemplate;
public class UserDao {
//得到JdbcTemplate对象
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
//添加操作
public void add() {
//创建jdbcTemplate对象
// JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "insert into user values(?,?)";
jdbcTemplate.update(sql, "李雷","520");
}
}
UserService.java
package cn.gts.c3p0;
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(){
userDao.add();
}
}
bean1.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhsot:3306/spring_day03"></property>
<property name="user" value="root"></property>
<property name="password" value="123"></property>
</bean>
<!-- 创建UserService对象和UserDao对象,在service对象中注入dao对象 -->
<bean id="userService" class="cn.gts.c3p0.UserService">
<!-- 注入UserDao对象 -->
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="cn.gts.c3p0.UserDao">
<!-- 注入JdbcTemplate对象 -->
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
<!-- 创建JdbcTemplate对象 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 把dataSource传递到模板对象里面 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
TestUserService.java
package cn.gts.c3p0;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestService {
@Test
public void testDemo(){
//创建对象
ApplicationContext context =new ClassPathXmlApplicationContext("bean1.xml");
UserService userService=(UserService) context.getBean("userService");
userService.add();
}
}
就在我重复测试几次后,我就开始了等待,它不能一直都不结束吧?终于,在我的耐心等待下,它结束了,是红色条。虽然显示的是有错误,但是还是很高兴,因为错误的提示信息又出现了。
最终仔细分析了错误信息,终于在配置文件中发现了错误,仅仅一个字母错了呀。
总结:
敲代码不容易啊,一定要有耐心,最重要的是要仔细,一个字母就可能酿成大祸。所以一般相同的代码能可以采用复制粘贴可以有效地避免手敲错的概率。