Spring IOC纯注解开发 整合 DButils和Juint遇到的错误
Spring IOC纯注解开发 整合 DButils和Juint遇到的错误
目录
1 使用InputStream读取Properties文件,注入Properties类,再将该类注入DruidDataSourceFactory对象中获取dataSource时无法获取?
properties 文件中存储的数据库连接信息需要按照固定的格式(名称),因为工厂对象的createDataSource 方法是按照特定的名称配对的,部分代码如下:
value = (String)properties.get("driverClassName");
if (value != null) {
dataSource.setDriverClassName(value);
}
properties 编写如下
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql:///spring_db?characterEncoding=utf-8&useSSL=false
username = root
password = 123456
initialSize=5
maxActive=10
maxWait=3000
2 纯注解开发如何使用log4j 打印日志?
纯注解开发需要在核心配置类中(@Configuration)添加@PropertySource(value = "classpath:log4j.properties")注释
并将log4j.properties文件(如下)放入resources目录下
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:/mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout
3 QueryRunner 如何编写 in 的 SQL 语句?
目前想到的解法为使用StringBuilder来动态拼接sql语句,建设根据id查询,传入的是一个ids数组,具体编写如下
StringBuilder sb = new StringBuilder("select * from account where id in (");
for (int i = 0; i < ids.length; i++) {
if (i!= ids.length-1) sb.append("? ,");
if (i == ids.length-1) sb.append("? )");
}
String sql = sb.toString();
4 错误 Wrong number of parameters: expected 4, was given 1 这种错误该如何解决?
因为使用了?位符,所以使用了多少个占位符该位置便需要传入多少参数,如果直接传入ids数组拿到的参数为1个(即[[1,2,3,4]]),可以通过Object[] prams 来解决,具体如下:
Object[] params = new Object[ids.length];
for (int i = 0; i < ids.length; i++) {
params[i] = ids[i];
}

浙公网安备 33010602011771号