今天突然想不用mybatis只用Spring来调取mysql的链接,于是这样配置了下,发现在service的实现层获取不到链接,空指针异常,问题代码是出在 connection=ds.getConnection();这句话上 这是为什么?有大佬解决下吗?
@Service
public class test_serviceIm implements test_service{
@Autowired
DataSource ds;
@Override
public String getString(int i) {
Connection connection;
ResultSet rs = null;
PreparedStatement ps = null;
String a = null;
try {
String sql="SELECT num FROM test_1 where id=?";
System.out.println(999);
connection=ds.getConnection();
connection.prepareStatement(sql);
ps.setInt(1, i);
System.out.println(1111);
while(rs.next()){
a=rs.getString("num");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public static void main(String[] args) {
test_serviceIm tsIm=new test_serviceIm();
System.out.println(tsIm.getString(1));
}
}
``` <!-- 整合数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
main 方法测试 demo
import java.util.Date;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.GenericXmlApplicationContext;
import com.fly.demo.entity.User;
import com.fly.demo.service.UserService;
/**
*
* MainRun
*
* @author 00fly
* @version [版本号, 2018-11-01]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class MainRun
{
private static Logger logger = LoggerFactory.getLogger(MainRun.class);
/**
* main
*
* @param args
* @see [类、类#方法、类#成员]
*/
public static void main(String[] args)
{
GenericXmlApplicationContext context = new GenericXmlApplicationContext();
context.setValidating(false);
context.load("classpath:/spring/spring.xml");
context.refresh();
int i = 1;
for (String beanName : context.getBeanDefinitionNames())
{
logger.info("{}.\t{}", i, beanName);
i++;
}
UserService userservice = context.getBean(UserService.class);
if (userservice.selectCount(null) == 0)
{
for (i = 0; i < 10; i++)
{
User user = new User();
user.setUsername("username_" + RandomStringUtils.randomAlphabetic(5));
user.setPassword("password_" + RandomStringUtils.randomAlphabetic(5));
user.setName("name_" + RandomStringUtils.randomAlphabetic(5));
user.setCreateDate(new Date());
user.setAge(RandomUtils.nextInt(10, 30));
user.setEnabled(true);
userservice.insert(user);
}
}
userservice.testTrans();
context.close();
}
}
spring包扫描加上了吗,并且你用main方法是测试不出来的