直接上代码!!!

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

数据库.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');

c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>

<default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/dbcp</property>
        <property name="user">root</property>
        <property name="password">123456</property>

<property name="acquireIncrement">5</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">5</property>
        <property name="maxPoolSize">20</property>
    </default-config>

</c3p0-config>

JdbcUtil

package com.henu.util;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;

public class JdbcUtil {

private static ComboPooledDataSource ds = null;

//在静态代码块中创建数据库连接池
    static{
        try{
            ds = new ComboPooledDataSource("c3p0-config");//使用C3P0的命名配置来创建数据源

        }catch (Exception e) {
            throw new ExceptionInInitializerError(e);
        }
    }

public static ComboPooledDataSource getDataSourse(){
        return ds;
    }

public static Connection getConnection() throws SQLException{
        //从数据源中获取数据库连接
        return ds.getConnection();
    }

public static void close(Connection conn,Statement st,ResultSet rs){
        if(rs!=null){
            try{
                rs.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
        if(st!=null){
            try{
                st.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }

if(conn!=null){
            try{
                conn.close();
            }catch (Exception 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.PlayerDao;
import com.henu.util.JdbcUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

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

public class PlayDaoImpl implements PlayerDao {
    @Override
    public int insert(Player player) {
        QueryRunner qr = new QueryRunner(JdbcUtil.getDataSourse());
        String sql = "insert into player values (null,?,?,?)";
        int res = 0;
        try {
            res = qr.update(sql,new Object[]{player.getPname(),player.getPheight(),player.getPweight()});
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return res;
    }

@Override
    public int delete(int id) {
        QueryRunner qr = new QueryRunner(JdbcUtil.getDataSourse());
        String sql = "delete from player where pid = ?";
        int res = 0;
        try {
            res = qr.update(sql,id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return res;
    }

@Override
    public int update(Player player) {
        QueryRunner qr = new QueryRunner(JdbcUtil.getDataSourse());
        String sql = "update player set pname=?,pheight=?,pweight=? where pid=?";
        int res = 0;
        try {
            res = qr.update(sql,new Object[]{player.getPname(),player.getPheight(),player.getPweight(),player.getPid()});
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return res;
    }

@Override
    public List<Player> findAll() {
        QueryRunner qr = new QueryRunner(JdbcUtil.getDataSourse());
        String sql = "select * from player";
        List<Player> list = null;
        try {
            list = (List<Player>) qr.query(sql,new BeanListHandler<>(Player.class));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }

@Override
    public Player findPlayerById(int id) {
        QueryRunner qr = new QueryRunner(JdbcUtil.getDataSourse());
        String sql = "select * from player where pid = ?";
        Player player= null;
        try {
            player = qr.query(sql, new BeanHandler<>(Player.class),id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return player;
    }

@Override
    public Player findPlayerByName(String name) {
        QueryRunner qr = new QueryRunner(JdbcUtil.getDataSourse());
        String sql = "select * from player where pname = ?";
        Player player= null;
        try {
            player = qr.query(sql, new BeanHandler<>(Player.class),name);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return player;
    }
}

Test

package com.henu.test;

import com.henu.bean.Player;
import com.henu.dao.PlayerDao;
import com.henu.dao.impl.PlayDaoImpl;

import java.util.List;

public class Test {

PlayerDao playerDao = new PlayDaoImpl();
    @org.junit.Test
    public void insert(){
        int res = playerDao.insert(new Player("格林", 206, 103));
        System.out.println(res>0 ? "insert success" : "insert error");
    }

@org.junit.Test
    public void delete(){
        int res = playerDao.delete(8);
        System.out.println(res>0 ? "delete success" : "delete error");
    }

@org.junit.Test
    public void update(){
        int res = playerDao.update(new Player(6,"鲍尔默",178,80));
        System.out.println(res>0 ? "update success" : "update error");
    }

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

@org.junit.Test
    public void findbyid(){
        Player player = playerDao.findPlayerById(5);
        System.out.println(player);
    }

@org.junit.Test
    public void findbyname(){
        Player player = playerDao.findPlayerByName("卡哇伊");
        System.out.println(player);
    }

}

使用dbutils对表进行增删改查相关推荐

  1. Django 操作Mysql数据库 对表进行增删改查

    为什么80%的码农都做不了架构师?>>>    首先说明:以下方法都是根据表已有的字段添加数据,若想新增字段,则需在类里面新建静态字段, 可参考Django 操作数据库建表  ,增删 ...

  2. Java笔记-使用达梦(DM)数据库接口对表进行增删改查

    目录 基本概念 代码与演示 基本概念 其实厂家已经提供了资料和代码,但感觉不如自己总结得爽,也直接.下面给出的全是干货. 首先是SQL语言,达梦是没有use XXX这种的,如果要检索某个表,直接这样操 ...

  3. 若依微服务版怎样新增业务子模块并使用代码生成实现对表的增删改查

    场景 若依微服务版手把手教你本地搭建环境并运行前后端项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/109363303 在前 ...

  4. 大数据_Hbase-shell命令_操作hbase_完成对表的增删改查---Hbase工作笔记0005

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们再来看,上面安装了hbase以后,这里我们开始说怎么来基本的用这个 hbase. 首先,上 ...

  5. 数据库授予用户增删改查的权限的语句_软件测试之浅谈数据库技术概述

    软件测试这一行业,其实对于数据库的要求还是比较高的,最基本的增删改查操作,一定是少不了的.之前看一些企业或者公司面试要求,需要去掌握一些常用的数据库,比如说mysql,Oracle等.今天咱们就说一下 ...

  6. dmo Java_java DMO及增删改查代码的自动生成

    在web开发过程中,尤其是后台管理系统的开发中,少不了增删改成的基础操作,原来我自己的做法是一份一份的拷贝粘贴,然后修改其中的不同,然而这样既枯燥无味又浪费了大量的时间,所以根据自己项目结构的特点写了 ...

  7. 安卓增删改查用sql语句号码_详解Android中一些SQLite的增删改查操作

    在Android开发中经常要涉及到对数据的操作.Android本身提供了四种数据存储方式.包括:SharePreference,SQLite,Content Provider,File. 在Andro ...

  8. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  9. 使用dbutils对mysql数据库做增删改查的基本操作方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.数据库名:phoenix_uml,t_user.sql 表结构 SET FOREIGN_KEY_CHECKS=0;-- - ...

最新文章

  1. 验证(verification)和确认(validation)
  2. Jvm 系列(十一)Java 语法糖背后的真相
  3. str python3_python3 str(字符串)
  4. 后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)
  5. GiliSoft Video Editor 13中文版
  6. 【MaxCompute】学习笔记常用查询sql
  7. js 操作cookies 方法
  8. 玩转二算法课的笔记-第一章
  9. 电脑无线网络与服务器共享,图文详解win7笔记本如何实现内置无线局域网卡共享...
  10. java将属性练成字符串,Java中通过属性字符串名取属性内容
  11. Debian For ARM Webmin Server
  12. 详解 HTTPS 移动端对称加密套件优
  13. 设计模式在项目中的应用案例_三菱PLC实际项目应用案例讲解
  14. 拼图技巧,一家人的健康码行程码拼图怎么拼
  15. 网络层 --- 路由器工作原理
  16. .net NPOI读写Doc文件
  17. 解决androidstudio unable to delete directory的办法
  18. 宽和窄俯卧撑哪个更难_窄距俯卧撑到底该多窄?
  19. ubuntu添加用户
  20. Java 8新特性(三):Optional类

热门文章

  1. CodeForces - 856B Similar Words(AC自动机+树形dp)
  2. POJ - 3436 ACM Computer Factory(最大流+输出残余网络)
  3. Linux 信号量 源码,一文读懂go中semaphore(信号量)源码
  4. 机器学习-关联之Apriori算法原理及实战
  5. java数据同步处理_Java如何处理多线程的数据同步问题
  6. C++指向成员函数的指针
  7. TCP/IP TIME_WAIT状态原理
  8. Android 图形驱动初始化
  9. Safari 14.0 的功臣 Webp?
  10. 高级数据结构与算法 | 哈希 :哈希冲突、负载因子、哈希函数、哈希表、哈希桶