applicationContext.xml文件配置
<bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost/person_blog?useUnicode=true&characterEncoding=UTF8"></property>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner">
<constructor-arg name="ds" ref="comboPooledDataSource"></constructor-arg>
</bean>
Text测试
@RunWith(SpringRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestCom {
@Autowired
@Qualifier("comboPooledDataSource")
DataSource dataSource;
@Autowired
@Qualifier("queryRunner")
QueryRunner queryRunner;
@Test
public void test() throws SQLException {
String sql = "select * from article";
List<ArticleBean> allArticles = queryRunner.query(sql, new BeanListHandler<ArticleBean>(ArticleBean.class));
System.out.println(allArticles);
}
}
==在Java正式代码里面写时候,只需要把dataSource和queryRunner传入dao层即可,由controller来解决。==
Java(正式)代码中只需要用注解传递就行,最终到controller层在用加载applicationContext.xml文件。
例:
import com.zhanqiao.domain.MessageBean;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.List;
@Repository
public class MessageDao implements MassageDao{
@Autowired
@Qualifier("comboPooledDataSource")
DataSource dataSource;
@Autowired
@Qualifier("queryRunner")
QueryRunner queryRunner;
@Override
public int insertMessage(MessageBean messageBean) {
return 0;
}
@Override
public int deleteMessage(int articleId) {
return 0;
}
@Override
public List<MessageBean> selectAll(String page,String limit) throws SQLException {
int p=Integer.valueOf(page);
int l=Integer.valueOf(limit);
Object []pars={(p-1)*l,l};
List<MessageBean> Messages = queryRunner.query("SELECT massage.*,user.uname FROM massage,user where massage.uid=user.uid GROUP BY mid limit ?,?",pars, new BeanListHandler<>(MessageBean.class));
System.out.println(Messages);
return Messages;
}
}