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. c# 图片插入Excel

    引用COM:Microsoft Office 11.0 Object Library 引用类:    using System;    using System.Windows.Forms;    u ...

  2. python1113

    点点滴滴才可以来开距离,人与人的差距是在点点滴滴中拉开的 break 语句可以跳出 for 和 while 的循环体的当前循环 continue语句被用来告诉Python跳过当前循环块中的剩余语句,然 ...

  3. 不能够连接到主机(名称为localhost)上的MySQL服务”

    不能够连接到主机(名称为localhost)上的MySQL服务” -如果是服务未启动.那么就右键‘计算机’---->管理--->服务和应用程序---->服务,在右侧的栏目中找到名称为 ...

  4. input,select默认颜色修改

    input::-webkit-input-placeholder{color: #7f7f7f;} select{color: #7f7f7f} option{color: #7f7f7f;}

  5. The import util cannot be resolved

    代码: 明显的错误: 应改成 import java.util.*; 没有理解java的基本概念

  6. Unity3D用户手册

    Unity Manual 用户手册 Welcome to Unity. 欢迎使用Unity. Unity is made to empower users to create the best int ...

  7. java web----TCP/DUP 通信

    服务端和单客户端通信 注意事项:如果服务端或者客户端采用read() 一个字节这种读取数据,只要另一方没有关闭连接,read是永远读取不到-1,会陷入死循环中: 解决方法:加上一个判断,程序员自己跳出 ...

  8. linux添加自定义命令

    想添加一个命令, 比如我输入 cdms 按回车, 然后就执行了: cd /mnt/gopath/src/test/app/ 这条命令方法: vi /etc/bashrc 在文件末尾添加 alias c ...

  9. C++ Primer 笔记——数组

    1.数组的大小是固定不变的,声明时必须指定大小(或者使用列表初始化),而且大小必须大于0,C++ Primer里面也建议,如果不确定元素的个数,请使用vector. ]; , , }; //数组长度固 ...

  10. 论文阅读笔记二-ImageNet Classification with Deep Convolutional Neural Networks

    分类的数据大小:1.2million 张,包括1000个类别. 网络结构:60million个参数,650,000个神经元.网络由5层卷积层,其中由最大值池化层和三个1000输出的(与图片的类别数相同 ...