链接数据库增删改通用

实现对SQLServer和MySql数据库通用链接及数据的增删改

我们经常需要和数据库打交道,对数据库数据进行增改删查的操作,首先我们必须要先链接数据库,然后对数据内容进行相关增删改操作。

首先看一下目录结构
在这里插入图片描述
程序解读:一共有三个子包分别为model包test包和util包
@:model包是数据信息的类
@@:test包是对数据进行查询获取内容
@@@:util包里的DBUtil是对数据库进行链接和增删改操作的内容,info文件是数据库的相关信息包括,url,name和pwd等

下面向大家展示代码

util包的DBUtil.java

package com.util;import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;/** 通用增删改!!!!!!!!!!!!!!* 数据库驱动* 张叔行*/
public class DBUtil {public DBUtil() {System.out.println("启动jdbc");}/*** 定义变量*/private static String driver = null;//驱动private static String url    = null;//mysql链接private static String name   = null;//数据库链接账户private static String pwd    = null;//数据库链接密码/*** 定义静态代码块*/static {Properties porperties = new Properties();//java 的配置文件try {porperties.load(DBUtil.class.getResourceAsStream("info.properties"));driver = porperties.getProperty("driver");url = porperties.getProperty("url");name = porperties.getProperty("name");pwd = porperties.getProperty("pwd");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 链接数据库*/public static Connection getConn() {Connection conn  = null;try {Driver.class.forName(driver);conn = DriverManager.getConnection(url,name,pwd);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("数据库链接成功");return conn;}/*** 关闭数据库*/public static void setClose(Connection conn,PreparedStatement ps , ResultSet rs) {try {if(conn != null) {conn.close();}else if(ps != null) {ps.close();}else if(rs != null) {rs.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 通用增删改*/public static boolean executeUpdate(String sql , Object[] obj) {PreparedStatement ps = null;Connection conn = getConn();Boolean bool   = false;int rsInt = 0;try {sql = "insert into user(u_id,u_name,u_sex,u_phone,u_money,u_map) values(?,?,?,?,?,?)";ps = conn.prepareStatement(sql);for(int i = 0;i<obj.length;i++) {ps.setObject(i+1, obj[i]);}rsInt = ps.executeUpdate();if(rsInt < 0) {System.out.println("添加失败");bool = false;}else {System.out.println("添加成功");bool = true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return bool;}/*** 通用查通用查不能用list指定的返回类型要是通用的ResultSet来返回* 通用指的是任何查询都能用*/public static ResultSet executeSelect(String sql , Object[] obj) {Connection conn = getConn();PreparedStatement ps = null;ResultSet rs = null;try {ps = conn.prepareStatement(sql);//如果object的值不等于空来执行这一句话if( obj != null) {for(int i = 0;i<obj.length;i++) {ps.setObject(i+1, obj[i]);}}rs = ps.executeQuery();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return rs;}
}

util包里的info文件:

特别注意:此处是实现对不同数据库链接及增删改操作的重要部分,***链接不同的数据库要修改相对应的url,name和pwd***,修改了之后就可以实现对SQLServer或者MySql数据库等的链接及增删改操作了。

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/log?useUnicode=true&characterEncoding=utf8
name=root
pwd=root

test包里的test.java

package com.test;import com.util.DBUtil;import java.sql.ResultSet;
import java.sql.SQLException;public class test {public static void main(String[] args) {// TODO Auto-generated method stub//通用的增删改String sql = "select * from user where u_name = ?";Object obj[] = {"hwl"};ResultSet selectS  = DBUtil.executeSelect(sql, obj);try {while(selectS.next()) {System.out.println(selectS.getString(1)+"\t"+selectS.getString(2)+"\t"+selectS.getString(3)+"\t"+selectS.getInt(4)+"\t"+selectS.getString(5)+"\t"+selectS.getString(6));}} catch (SQLException e) {e.printStackTrace();}}}

model包里的user.java

package com.model;public class user {private static String UId;private static String UName;private static String USex;private static String UPhone;private static int    UMoney;private static String UMap;public static String getUId() {return UId;}public static void setUId(String uId) {UId = uId;}public static String getUName() {return UName;}public static void setUName(String uName) {UName = uName;}public static String getUSex() {return USex;}public static void setUSex(String uSex) {USex = uSex;}public static String getUPhone() {return UPhone;}public static void setUPhone(String uPhone) {UPhone = uPhone;}public static int getUMoney() {return UMoney;}public static void setUMoney(int uMoney) {UMoney = uMoney;}public static String getUMap() {return UMap;}public static void setUMap(String uMap) {UMap = uMap;}}

看到这里相信已经能够解决你的困惑了,快去执行数据库吧!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021爱智先行者—(2)零基础APP开发实例

【本文正在参与"2021爱智先行者-征文大赛"活动】&#xff0c;活动链接&#xff1a;https://bbs.csdn.net/topics/602601454 欢迎关注 『Python小白的项目实战』 系列&#xff0c;持续更新 2021爱智先行者—&#xff08;1&#xff09;开箱点评 2021爱智先行者—&#…

ATM取款机系统

模拟银行实现ATM机取款系统 该系统使用( ( (SQLServer) ) )数据库 功能介绍&#xff1a; 开户&#xff08;到银行填写开户申请单&#xff09;取钱存钱查询余额转账 根据需求设计相对应的数据库概念模型 流程分步详解 1 创建数据库Bank_db --创建数据库 CREATE DATABASE B…

【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理(cv2.threshold)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理 按照颜色对图像进行分类&#xff0c;可以分为二值图像、灰度图像和彩色图像。 二值图像&#xff1a;只有黑色和白色两种颜色的图像。每个像素点可以用 0/1 表示&#xff0c;0…

【OpenCV 例程200篇】38. 图像的反色变换(图像反转)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】38. 图像的反色变换&#xff08;图像反转&#xff09; 灰度变换是图像增强的重要方法&#xff0c;可以使图像动态范围扩大、图像对比度增强&#xff0c;图像更清晰&#xff0c;特征更明显&#xff0c;从而改善图…

【OpenCV 例程200篇】39. 图像灰度的线性变换

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】39. 图像灰度的线性变换 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 线性灰度变化对图像的每一个像素作线性拉伸&#xff0c;可以凸显图像的细节&#xff0c;提高图像的…

网络编程基础

网络协议 TCP/IP协议 IP地址与端口

获取焦点改变状态

表格显示文本内容&#xff0c;当用鼠标点击时获取到焦点文本变为可输入的输入框&#xff0c;点击空白处时失去焦点变为文本显示的文本内容 先看效果图 失去焦点的时候&#xff08;文本内容只能看不能编辑&#xff09; 获取焦点的时候&#xff08;文本内容变为可以编辑的输入框…

【OpenCV 例程300篇】40. 图像分段线性灰度变换

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】40. 图像分段线性灰度变换 分段线性变换函数可以增强图像各部分的反差&#xff0c;增强感兴趣的灰度区间、抑制不感兴趣的灰度级。 分段线性函数的优点是可以根据需要拉伸特征物的灰度细节&#xff…

Ajax链接输出数据库

使用Ajax链接数据库并且获取数据库里的内容显示在页面 两大步骤&#xff1a; 设计并实现数据库进行数据库链接并获取数据库内容显示 先看效果图 没有查询并显示数据之前效果 点击查询按钮之后获取数据库内容显示在页面 下面进行程序的讲解 一 数据库的设计及实现 新建一…

【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】41. 图像的灰度变换&#xff08;灰度级分层&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 分段线性变换函数可以增强图像各部分的反差&#xff0c;增强感兴趣…

python学习服务器端socket建立

C/S模式简介 Tcp通信模型 Udp通信模型 python标准库中的socket模块 用socket建立TCP服务器端 用socket建立UDP服务器端 socket TCP服务器端测试代码 #coding:utf-8 import socket#Host表示为本机地址 HOST PORT3214#默认为IPV4,TCP协议 ssocket.socket() s.bind((HOST,PORT))s.…

【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】42. 图像的灰度变换&#xff08;比特平面分层&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 分段线性变换函数可以增强图像各部分的反差&#xff0c;增强感兴…

SQLServer奇偶数的输出

编写SQLServer程序分别输出1-100内的奇数和偶数 一 1-100内奇数的输出 执行语句 declare number intset number1while number<101beginif number%21begin print numberendset number1end奇数输出的效果图 二 1-100内偶数的输出 执行语句 declare number intset number1…

python学习socket的客户端实现

服务端见点击打开链接 socket的异常 socket的TCP和UDP客户端模型 TCP的客户端 import socket#ip:127.0.0.1,port 3214 HOST #warning:Ip addr can only be dropped in server! PORT3214#AF_INET IPV4 #SOCK_DGRAM UDP ssocket.socket()#try to receive data from server &…

【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】43. 图像的灰度变换&#xff08;对数变换&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 对数变换可以由以下公式描述&#xff1a; Dtc∗log(1D)Dt c * log(1…

【OpenCV 例程200篇】45. 图像的灰度直方图(cv2.calcHist)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】45. 图像的灰度直方图 图像直方图是反映图像像素分布的统计表&#xff0c;横坐标代表像素值的取值区间&#xff0c;纵坐标代表每一像素值在图像中的像素总数或者所占的百分比。 灰度直方图是图像灰度级的函数&am…

【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】44. 图像的灰度变换&#xff08;伽马变换&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 幂律变换也称伽马变换&#xff0c;可以提升暗部细节&#xff0c;对发…

【OpenCV 例程300篇】46. 直方图处理之直方图均衡化(cv2.equalizeHist)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】46. 直方图处理之直方图均衡化&#xff08;cv2.equalizeHist&#xff09; 图像直方图是反映图像像素分布的统计表&#xff0c;横坐标代表像素值的取值区间&#xff0c;纵坐标代表每一像素值在图像中的…

【OpenCV 例程300篇】47. 直方图处理之直方图匹配

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】47. 直方图处理之直方图匹配 图像直方图是反映图像像素分布的统计表。 灰度直方图是图像灰度级的函数&#xff0c;用来描述每个灰度级在图像矩阵中的像素个数。 直方图均衡直接对图像全局进行均衡化…