1.DBCP

  a.定义:DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开

  b.配置:

  <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/emp" />
<property name="username" value="root" />
<property name="password" value="admin"/>
<property name="maxActive" value="10"></property>
<property name="initialSize" value="2"></property>
<property name="minIdle" value="2"></property>
<property name="maxIdle" value="3"></property>
</bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>

  c.使用:

@Repository
public class UserDao {
@Resource
private JdbcTemplate template; //增
public void addUser(String name,String pwd){
int userType=1;
String sql="insert into users(user_name,user_pwd,user_type) values(?,?,?)";
jdbcTemplate.update(sql,new Object[]{name,pwd,userType});
} //删
public void delUserById(int id){
String sql="delete from users where user_id=?";
jdbcTemplate.update(sql,new Object[]{id});
} //改
public void updateUser(User user){
String sql="update users set user_name=?,user_pwd=?,user_type=? where user_id=?";
jdbcTemplate.update(sql,new Object[]{user.getUserName(),user.getUserPwd(),user.getUserType(),user.getUserId()});
} //查——方法一
public List<User> findAllUser(){
  String sql="select * from users";
  List<User> list=jdbcTemplate.query(sql,new BeanPropertyRowMapper(User.class));
  return list;
} //查——方法二
public List<User> getAllUser(){
String sql="select * from users";
List<User> list=jdbcTemplate.query(sql,new RowMapper(){ @Override
public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
User u=new User();
if(arg0!=null){
u.setUserId(arg0.getInt("user_id"));
u.setUserName(arg0.getString("user_name"));
u.setUserPwd(arg0.getString("user_pwd"));
u.setUserId(arg0.getInt("user_type"));
}
return u;
} });
return list;
} //多表联查
public List<User> getAllUserAndInfo(){
String sql="select u.user_name,u.user_type,i.info_nickName,i.info_email from users u left join userInfo i on u.user_id=i.user_id ";
List<User> list=jdbcTemplate.query(sql,new RowMapper(){ @Override
public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
User u=new User();
if(arg0!=null){
u.setUserName(arg0.getString("user_name"));
u.setUserType(arg0.getInt("user_type"));
UserInfo info=new UserInfo();
info.setInfoEmail(arg0.getString("info_email"));
info.setInfoNickName(arg0.getString("info_nickName"));
u.setInfo(info);
}
return u;
} });
return list;
} }

JavaEE 之 DBCP的更多相关文章

  1. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

  2. JavaEE连接池泄漏问题检测Oracle数据库

    1.项目环境 项目是典型的轻量级JavaEE项目,使用SSH框架构建,数据源使用DBCP管理,和Spring进行了整合. 项目数据库使用Oracle数据库. 项目DBCP配置内容如下 ###### D ...

  3. spring3+hibernate3+(dbcp+oracle+拦截器事务配置)整合(一)

    1.applicationContext-base.xml文件 <?xml version="1.0" encoding="UTF-8"?>< ...

  4. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  5. [转]DBCP连接池的最简单应用(用于ORACLE数据库)

    http://blog.csdn.net/iihero/article/details/8254107 http://www.programgo.com/article/81693457907/ 鉴于 ...

  6. 【Java】java数据库连接中C3P、DBCP、Druid连接池的使用

    使用JDBC的步骤:1.加载数据库驱动2.通过DriverManager获得数据库连接3.通过Connection获得Statement对象4.使用Statement执行SQL语句.5.操作结果集合6 ...

  7. 连接数据库 JDBC、DBCP、JNDI

    一.JDBC package com.direct.util; import java.sql.Connection; import java.sql.DriverManager; import ja ...

  8. JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合

    1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...

  9. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

随机推荐

  1. 转:vw适配中使用伪类选择器遇到的问题

    地址:https://blog.csdn.net/perryliu6/article/details/80965734 在使用vue init webpack构建的项目中,一开始我准备使用rem布局, ...

  2. 根据 label 的 text 的大小和长度 获取 尺寸

    NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:17]};CGSize size = [_cards ...

  3. ios  调整 label 的字体行间距

     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 200) ...

  4. 信息摘要算法之七:SHA在区块链中的应用

    最近几年比特币的火爆带动了人们对区块链技术的研究.当然我们在这里并不讨论区块链技术本身,而是讨论一下区块链中的SHA算法的应用.对于SHA系列算法我们已经在前面作了说明,在这里也不再重复. 1.区块链 ...

  5. Confluence 6 数据库表-空间(Spaces)

    这个表格与空间的管理有关. spaces 有关空间使用的信息:key,空间的名称和数字 ID. https://www.cwiki.us/display/CONF6ZH/Confluence+Data ...

  6. 如何在cmd中安装python第三方模块

    打开 cmd终端 1 输入pip  install   模块名. 2 等待安装完成即可.

  7. 【sqli-labs】Less7

    Less-7: 输出文件 sql导出文件语句 select * from table_test into outfile 'test.txt' 既然名字是输出文件,那肯定是和文件有关系. 首先,确保s ...

  8. tp3.2 事务

    public function exchangeTransfer($user_id, $type, $money, $config, $other_id = 0) { $r['code'] = ERR ...

  9. Laravel 项目中使用 Bootstrap 框架

    Laravel 如何引入 Bootstrap 如官方文档所言,Laravel 并不强制你使用 CSS 框架,但是开箱提供了对 Bootstrap 的支持,在 resources/js/bootstra ...

  10. PHP array_combine()

    // 需要替换 key 的数组 $arr_old = array( '0' => array('id' => 1, 'name' => 'Carroll'), '1' => a ...