---------------------------------------------------------------------------------------------------------------------------

数据库.sql

/*

Navicat MySQL Data Transfer

Source Server         : mysql

Source Server Version : 50549

Source Host           : localhost:3306

Source Database       : dbcp

Target Server Type    : MYSQL

Target Server Version : 50549

File Encoding         : 65001

Date: 2019-08-15 18:46:32

*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for player

-- ----------------------------

DROP TABLE IF EXISTS `player`;

CREATE TABLE `player` (

`pid` int(11) NOT NULL AUTO_INCREMENT,

`pname` varchar(255) NOT NULL,

`pheight` double NOT NULL,

`pweight` double NOT NULL,

PRIMARY KEY (`pid`)

) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of player

-- ----------------------------

INSERT INTO `player` VALUES ('1', '保罗乔治', '203', '110');

INSERT INTO `player` VALUES ('2', '卡哇伊', '198', '115');

INSERT INTO `player` VALUES ('3', '贝弗利', '190', '80');

INSERT INTO `player` VALUES ('4', '哈雷尔', '200', '120');

INSERT INTO `player` VALUES ('5', '祖巴茨', '216', '108');

INSERT INTO `player` VALUES ('6', '路易威廉姆斯', '180', '79');

dbcpconfig.properties

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbcp
username=root
password=123456

#<!-- 初始化连接 -->
initialSize=10

#最大连接数量
maxActive=50

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60 -->
maxWait=60000

#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user"  "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=UTF8

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED

DbcpUtil

package com.henu.utils;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DbcpUtil {
    private static DataSource ds = null;

static{

try {
            InputStream is = DbcpUtil.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
            Properties prop = new Properties();
            prop.load(is);
            //创建数据源
            ds = BasicDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //从数据源获得数据库连接
    public static Connection getConnetion() throws SQLException {
        return ds.getConnection();
    }
    //释放资源
    public static void close(Connection conn, PreparedStatement ps, ResultSet rs){
        if (conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps != null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Player

package com.henu.bean;

public class Player {
    private int pid;
    private String pname;
    private double pheight;
    private double pweight;

public Player() {
    }

public Player(String pname, double pheight, double pweight) {
        this.pname = pname;
        this.pheight = pheight;
        this.pweight = pweight;
    }

public Player(int pid, String pname, double pheight, double pweight) {
        this.pid = pid;
        this.pname = pname;
        this.pheight = pheight;
        this.pweight = pweight;
    }

public int getPid() {
        return pid;
    }

public void setPid(int pid) {
        this.pid = pid;
    }

public String getPname() {
        return pname;
    }

public void setPname(String pname) {
        this.pname = pname;
    }

public double getPheight() {
        return pheight;
    }

public void setPheight(double pheight) {
        this.pheight = pheight;
    }

public double getPweight() {
        return pweight;
    }

public void setPweight(double pweight) {
        this.pweight = pweight;
    }

@Override
    public String toString() {
        return "Player{" +
                "pid=" + pid +
                ", pname='" + pname + '\'' +
                ", pheight=" + pheight +
                ", pweight=" + pweight +
                '}';
    }
}

PlayDao

package com.henu.dao;

import com.henu.bean.Player;

import java.util.List;

public interface PlayDao {
    int insert(Player player);
    int delete(int id);
    int update(Player player);
    List<Player> findAll();
    Player findPlayerById(int id);
    Player findPlayerByName(String name);
}

PlayDaoImpl

package com.henu.dao.impl;

import com.henu.bean.Player;
import com.henu.dao.PlayDao;
import com.henu.utils.DbcpUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class PlayDaoImpl implements PlayDao {
    @Override
    public int insert(Player player) {
        Connection conn = null;
        PreparedStatement ps = null;
        int res = 0;
        try {
            conn = DbcpUtil.getConnetion();
            String sql = "insert into player values (null,?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1,player.getPname());
            ps.setDouble(2,player.getPheight());
            ps.setDouble(3,player.getPweight());
            res = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DbcpUtil.close(conn,ps,null);
        }
        return res;
    }

@Override
    public int delete(int id) {
        Connection conn = null;
        PreparedStatement ps = null;
        int res = 0;
        try {
            conn = DbcpUtil.getConnetion();
            String sql = "delete from player where pid=?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,id);
            res = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DbcpUtil.close(conn,ps,null);
        }
        return res;
    }

@Override
    public int update(Player player) {
        Connection conn = null;
        PreparedStatement ps = null;
        int res = 0;
        try {
            conn = DbcpUtil.getConnetion();
            String sql = "update player set pname=?,pheight=?,pweight=? where pid=?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,player.getPname());
            ps.setDouble(2,player.getPheight());
            ps.setDouble(3,player.getPweight());
            ps.setInt(4,player.getPid());
            res = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DbcpUtil.close(conn,ps,null);
        }
        return res;
    }

@Override
    public List<Player> findAll() {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Player> list = new ArrayList<>();
        try {
            conn = DbcpUtil.getConnetion();
            String sql = "select * from player";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()){
                Player player = new Player(rs.getInt("pid"),rs.getString("pname"),
                        rs.getDouble("pheight"),rs.getDouble("pweight"));
                list.add(player);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DbcpUtil.close(conn,ps,rs);
        }
        return list;
    }

@Override
    public Player findPlayerById(int id) {

Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Player player = new Player();
        try {
            conn = DbcpUtil.getConnetion();
            String sql = "select * from player where pid = ?";
            ps = conn.prepareStatement(sql);
            ps.setInt(1,id);
            rs = ps.executeQuery();
            if (rs.next()){
                player = new Player(rs.getInt("pid"),rs.getString("pname"),
                        rs.getDouble("pheight"),rs.getDouble("pweight"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DbcpUtil.close(conn,ps,rs);
        }
        return player;

}

@Override
    public Player findPlayerByName(String name) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Player player = new Player();
        try {
            conn = DbcpUtil.getConnetion();
            String sql = "select * from player where pname = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,name);
            rs = ps.executeQuery();
            if (rs.next()){
                player = new Player(rs.getInt("pid"),rs.getString("pname"),
                        rs.getDouble("pheight"),rs.getDouble("pweight"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DbcpUtil.close(conn,ps,rs);
        }
        return player;
    }
}

Test

package com.henu.test;

import com.henu.bean.Player;
import com.henu.dao.PlayDao;
import com.henu.dao.impl.PlayDaoImpl;
import com.henu.utils.DbcpUtil;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public class Test {

//测试数据库连接是否成功
    @org.junit.Test
    public void conn() throws SQLException {
        Connection conn = DbcpUtil.getConnetion();
        System.out.println(conn);
    }

PlayDao playDao = new PlayDaoImpl();

//测试insert
    @org.junit.Test
    public void insert(){
        int res = playDao.insert(new Player("祖巴茨",216,109));
        System.out.println(res>0 ? "insert success" : "insert error");
    }

//测试delete
    @org.junit.Test
    public void delete(){
        int res = playDao.delete(7);
        System.out.println(res>0 ? "delete success" : "delete error");
    }

//测试update
    @org.junit.Test
    public void update(){
        int res = playDao.update(new Player(5,"祖巴茨",216,108));
        System.out.println(res>0 ? "update success" : "update error");
    }

//测试findAll
    @org.junit.Test
    public void findAll(){
        List<Player> list = playDao.findAll();
        for (Player p: list
        ) {
            System.out.println(p);
        }
    }

//测试findplayerbyid
    @org.junit.Test
    public void findplayerbyid(){
        Player player = playDao.findPlayerById(1);
        System.out.println(player);
    }

//测试findplayerbyname
    @org.junit.Test
    public void findplayerbyname(){
        Player player = playDao.findPlayerByName("卡哇伊");
        System.out.println(player);
    }

}

使用dbcp连接池创建进行表的增删改查相关推荐

  1. R操作MySQL数据库创建表、删除表、增删改查(CRUD)

    R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...

  2. Unity 2021连接外网数据库,建表,增删改查遇到的问题记录

    目录 一.连接外网数据库遇到的问题 二.解决问题的方案 动态链接库下载地址: 效果图 一.连接外网数据库遇到的问题 先抛出问题,就是连接内网数据库不会报错,连接外网时和查询时就报这个错: The gi ...

  3. spool命令、创建一个表,创建并且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站

      1.spool 命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创 ...

  4. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站...

      1.spool命令 spool "D:\test.txt" spool off SQL> host cls 2.创建一个表 SQL> --条件(1):有创建 ...

  5. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  6. Node连接MySQL数据库进行基本的增删改查操作(一看就会)

    Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...

  7. Java连接sqlserver数据库,并进行增删改查操作

    用编程语言连接数据库是程序员必备的技能,今天我们就来学习一下如何通过Java来连接sqlserver数据库,并实现增删改查操作. 需要用到的工具: Myeclipse,sqlserver数据库,Mic ...

  8. IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查

    IDEA2019 Java连接PostgreSQL数据库实现基础功能增删改查 注意: 每个方法对应单个java类,可以自行进行整理汇总到一个类中 一.Java通过JDBC连接到PostgreSQL数据 ...

  9. MYSQL表的增删改查进阶(下)

    MYSQL表的增删改查进阶 4. 查询 4.1 聚合查询 4.1.1 聚合函数 4.1.2 group by字句 4.1.3 having 4.2 联合查询 4.2.1 内连接 4.2.2 外连接 4 ...

最新文章

  1. WinRAR也能实现智能备份
  2. Linux System Programming --Chapter Three
  3. lsof 查看一个进程打开哪些fd及对应的文件或套接字操作
  4. textContent与innerText的不同(转)
  5. 年度布道师颁奖|盘点2020年网易智企的布道先锋们
  6. jdbc执行sql 不支持“variant”数据类型。
  7. npm run dev报错_React + TypeScript 从零开发Popup组件并发布到 npm
  8. 【C++ Primer】第十五章 友元、异常和其他 --之一---友元和嵌套类
  9. matlab中的tall,tall 数组 - MATLAB Simulink - MathWorks 中国
  10. 实战经验总结:怎么避免和解决LinkedIn领英帐号被封(被限制登录)?
  11. Java VM Options
  12. Java web 购物网站开发
  13. python的invalid syntax是什么意思_请问在python 中 出现 invalid syntax 是什么意思 ?
  14. [多-元-智-能]理论 IQ智商 EQ情商 AQ逆商 FQ财商 HQ健商 BQ戆商 CQ创商 MQ德商 DQ胆商 MQ心商 WQ志商 SQ灵商...
  15. Python Flask框架-开发简单博客-认证蓝图
  16. 在线编辑php文件的代码
  17. 微信群高效轻松拉人进群,轻松每日爆粉
  18. vue图片压缩image-conversion
  19. CSS中vertical-align不起作用
  20. ChinaJoy揭晓十大网游盗号木马黑榜

热门文章

  1. HDU - 4902 Nice boat(线段树)
  2. CodeForces - 739E Gosha is hunting(最大费用最大流+思维建边)
  3. 费用流:最大费用最大流和最小费用最大流(模板)
  4. POJ - 2112 Optimal Milking(二分+二分图最大匹配-多重匹配(修改匈牙利实现)+Floyd求最短路)
  5. 单击修复计算机英语怎么说,电脑选择语言方式,单击修复计算机
  6. 如何把荣耀手机的计算机移动到桌面,华为荣耀怎么把天气预报设置到桌面
  7. [Windows驱动开发](三)基础知识——驱动例程
  8. 函数调用方式__stdecl _stdcall _fastcall __thiscall介绍
  9. SQL 学习最强刷题网站!
  10. 架构演进,后端开发进入微服务时代!