目录
2.DataConfig 替换applicationContext.xml
1.同一个业务方法的多个dao方法公用一个connection对象
一、xml方式实现
1.介绍lombok插件
dbUtil-阿帕奇提供操作数据库的插件
2.功能
对实体类自动,动态生成getset,无参有参 toString.....
3.步骤
3.1 idea安装插件(只做一次)
3.2 添加坐标
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
3.3 编写注解
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Account implements Serializable {
private int aid;
private String aname;
private int amoney;
public Account(String aname, int amoney) {
this.aname = aname;
this.amoney = amoney;
}
}
4.核心类
4.1 QueryRunner
//操作数据库的核心类
QueryRunner queryRunner;
public void setQueryRunner(QueryRunner queryRunner) {
this.queryRunner = queryRunner;
}
4.2 query() 查询
@Override
public void save(Account account) {
try {
queryRunner.update("insert into account(aname,amoney) value(?,?)",account.getAname(),account.getAmoney());
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
@Override
public void updateById(Account account) {
try {
queryRunner.update("udpate account set aname=?,amoney=? where aid=?",account.getAname(),account.getAmoney(),account.getAid());
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
@Override
public void deleteById(int id) {
try {
queryRunner.update("delete from account where aid=?",id);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
4.3 update() 增删改
@Override
public Account findByName(String name) {
try {
return queryRunner.query("select * from account where aname=?",new BeanHandler<Account>(Account.class),name);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}
@Override
public List<Account> findAll() {
try {
return queryRunner.query("select * from account",new BeanListHandler<Account>(Account.class));
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}
5.配置文件applicationContext.xml
<!--加载资源文件-->
<context:property-placeholder location="jdbc.properties"></context:property-placeholder>
<!--注入数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${msg1}"></property>
<property name="jdbcUrl" value="${msg2}"></property>
<property name="user" value="${msg3}"></property>
<property name="password" value="${msg4}"></property>
</bean>
<!--注入QueryRunner-->
<bean id="queryRunner" class="org.apache.commons.dbutils.QueryRunner">
<constructor-arg name="ds" ref="dataSource"></constructor-arg>
</bean>
<!--注入dao-->
<bean id="mapperImp" class="com.ztt.dao.AccountMapperImp">
<property name="queryRunner" ref="queryRunner"></property>
</bean>