一、引入依赖
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version></dependency>
</dependencies>
二、编写Bean.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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="xyz.tom"></context:component-scan><bean id="runner" class="org.apache.commons.dbutils.QueryRunner" scope="prototype"><constructor-arg name="ds" ref="dataSource"></constructor-arg></bean><!-- 配置数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!-- 连接数据库的必备信息 --><property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql://www.greattom.xyz:3306/mysql?useUnicode=true&characterEncoding=utf8&useSSL=false"></property><property name="user" value="root"></property><property name="password" value="root"></property></bean>
</beans>
三、使用
@Repository("accountDao")
public class AccountDaoImpl implements AccountDao {@Autowiredprivate QueryRunner runner;public ArrayList<Account> findAllAccount() {try {List list = runner.query("select * from user", new BeanListHandler<Account>(Account.class));return (ArrayList<Account>) list;} catch (SQLException e) {throw new RuntimeException(e);}}public Account findAccountById(Integer id) {try {return runner.query("select * from user where id = ?", new BeanHandler<Account>(Account.class), id);} catch (SQLException e) {throw new RuntimeException(e);}}public void saveAccount(Account account) {try {runner.update("insert into user(name,money) values (?, ?)", account.getName(),account.getMoney());} catch (SQLException e) {throw new RuntimeException(e);}}public void updateAccount(Account account) {try {runner.update("update user set name=?,money=? where id=?", account.getName(),account.getMoney(),account.getId());} catch (SQLException e) {throw new RuntimeException(e);}}public void delAccount(Integer id) {try {runner.update("delete from user where id=?", id);} catch (SQLException e) {throw new RuntimeException(e);}}
}