日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用dbcp连接池创建进行表的增删改查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

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

?

?

數據庫.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连接池创建进行表的增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。