IDEA编程Java程序实现连接数据库以及增删改查JDBC

IDEA的mysql环境配置建议参考该博客:戳我

我用的是java11和此博客的配置略有出入,不过一般的问题都可以百度解决

这是我实验用的数据库

完整项目的结构,共5个类,1个配置文件
不使用配置文件可直接跳到1.DBUtil类

下面是我的代码

0.配置文件database.properties及读取类Config

database.properties
src文件夹下new->ResoureceBundle,文件名设置为database即可
具体可参考:IDEA配置文件

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf-8
user=root
pwd=你的密码

Config类

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class Config {Properties properties=new Properties();InputStream is=null;private static Config config=null;private Config(){is=Config.class.getClassLoader().getResourceAsStream("database.properties");try {properties.load(is);is.close();}catch (IOException e){e.printStackTrace();}}public synchronized static Config getInstance(){if(config==null){config=new Config();}return config;}public String getValue(String key){return properties.getProperty(key);}
}

1.连接mysql数据库的类DBUtil

要测试是否连接成功,再随便搞一个类写个Main方法调用就可以了,或者在下一个类中测试
1.不使用配置文件的方法

import java.sql.*;
public class DBUtil {public static String username="root";public static String password="你的密码";public static PreparedStatement pstm=null;protected static Connection con=null;private static String url="jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf-8";public static Connection getConn(){try {Class.forName("com.mysql.cj.jdbc.Driver");con=DriverManager.getConnection(url,username,password);System.out.println("连接成功");}catch (Exception e){e.printStackTrace();}return con;}public PreparedStatement getPs(){return pstm;}public void closeCon(ResultSet rs,PreparedStatement pstm,Connection con) throws Exception{if(rs!=null){rs.close();}if(pstm!=null){pstm.close();}if(con!=null){con.close();}}
}

2.使用配置文件的方法

import java.sql.*;
public class DBUtil {public static String username=Config.getInstance().getValue("user");public static String password=Config.getInstance().getValue("pwd");public static PreparedStatement pstm=null;protected static Connection con=null;private static String url=Config.getInstance().getValue("url");public static Connection getConn(){try {Class.forName(Config.getInstance().getValue("driver"));con=DriverManager.getConnection(url,username,password);System.out.println("连接成功");}catch (Exception e){e.printStackTrace();}return con;}public PreparedStatement getPs(){return pstm;}public void closeCon(ResultSet rs,PreparedStatement pstm,Connection con) throws Exception{if(rs!=null){rs.close();}if(pstm!=null){pstm.close();}if(con!=null){con.close();}}
}

2.数据表中的数据User类

我java学的不是很好,大概就这个意思哈
因为id我设置的是自增的,所以构造函数里没写id

public class User {int id;String username;String pwd;public User(String username, String pwd) {User.this.username=username;User.this.pwd=pwd;}
}

3.实现增删改查函数的Lab3类

这里封装的不是很好,可以把tablename再改进一下
强烈建议使用prepareStatement,但要注意占位符会给变量加上引号,所以有些地方不适合用占位符?
注意:查找的结果集ResultSet需要单独释放

可以先写个增加的函数浅试一下,再继续写其他三个

import java.sql.*;
public class Lab3 {static DBUtil db=new DBUtil();protected static PreparedStatement pstm=db.getPs();;protected static Connection con= db.getConn();
//    protected static ResultSet rs=null;//增public static void insertU(User newUser,String tableName) throws Exception{String sql_insert="insert into "+tableName+"(username,pwd) values(?,?)";
//        System.out.print(newUser.username);//state.executeUpdate(sql_insert);pstm=con.prepareStatement(sql_insert);pstm.setString(1,newUser.username);pstm.setString(2,newUser.pwd);int r=pstm.executeUpdate();System.out.println("插入成功");}//删public static void deleteU(int id,String tableName) throws Exception{PreparedStatement pstm=null;String sql_delete="delete from "+tableName+" where id="+Integer.toString(id);pstm=con.prepareStatement(sql_delete);int r=pstm.executeUpdate();System.out.println("删除成功");}//改public static void updateU(int id,User uUser,String tableName)throws Exception{String sql_update="update "+tableName+" set username=?,pwd=? where id="+Integer.toString(id);pstm=con.prepareStatement(sql_update);pstm.setString(1,uUser.username);pstm.setString(2,uUser.pwd);int r=pstm.executeUpdate();System.out.println("修改成功");}//查public static void selectU(int id_begin,int id_end,String tabele_name)throws Exception{String sql_update="select username,pwd from "+tabele_name+" where id between "+id_begin+" and "+id_end;pstm=con.prepareStatement(sql_update);ResultSet rs=pstm.executeQuery(sql_update);while (rs.next()){System.out.println(rs.getString(1)+" "+rs.getString(2));}System.out.println("查询成功");db.closeCon(rs,pstm,con);}public static void closeDB(){try {db.closeCon(null,pstm,con);System.out.println("关闭");} catch (Exception e) {e.printStackTrace();}}}

4.主函数MainDB类

因为一直到写完增加之前我都不知道我到底会写个什么出来,所以类名都起的很随意。。

public class MainDB {public static void main(String[] args) throws Exception {DBUtil db1=new DBUtil();User user1=new User("test3","1234567");User user2=new User("update","218808");Lab3 lab3=new Lab3();lab3.insertU(user1,"lab");lab3.deleteU(6,"test");lab3.updateU(3,user2,"test");lab3.selectU(2,4,"test");lab3.closeDB();}
}

参考资料:
https://blog.csdn.net/qq_36528734/article/details/93646928?spm=1001.2014.3001.5502
https://blog.csdn.net/weixin_34111790/article/details/93307147?spm=1001.2014.3001.5502
https://blog.csdn.net/qq_40356457/article/details/83057215?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164965554316780274155343%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164965554316780274155343&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-83057215.142v7pc_search_result_cache,157v4control&utm_term=IDEA%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6&spm=1018.2226.3001.4187

数据库实验IDEA编程Java程序实现连接数据库以及增删改查JDBC相关推荐

  1. Java程序员除了做增删改查还能干嘛?

    就以Java后端开发为例,说说不同级别程序员干的事情. 1 初级开发,大概是有3年Java开发经验. 22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪 ...

  2. mysql数据库实验+cmd界面运行基本操作总结(sql:数据增删改查,表格,视图,备份恢复)

    文章目录 mysql数据库实验--建表准备 1.dos界面中数据库的登录操作 #这里解决一个bug 2.数据库及表格创建 (1)利用sql语句创建数据库DBtest (2)表格创建 3.导入数据至数据 ...

  3. mysql源生插入数据_php+mysql源生连接数据库和增删改查数据

    php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...

  4. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File; import java.util.ArrayList; import java.util.L ...

  5. 若依前后端分离版怎样根据数据库生成代码并快速实现某业务的增删改查

    场景 使用若依的前后端分离版,怎样使用其代码生成实现对单表的增删改查导出的业务. 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程 ...

  6. 基于springmvc、ajax,后台连接数据库的增删改查

    前言 前段时间在博客园上找了一个springmvc的例子,照着学了一下,算是对springmvc有了一个初步的了解,打一个基础,下面是链接.(我只看了博客,视频太耗时间了) 博客链接:http://w ...

  7. Springboot 整合微信小程序实现登录与增删改查

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:我的大学到研究生自学 Java 之路,过程艰辛,不放弃,保持热情,最终发现我是这样拿到大厂 offer 的! 作 ...

  8. Spring Boot 整合微信小程序实现登录与增删改查

    程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 8 分钟. 作者:浮云骑士LIN cnblogs.com/ckfeng/p/12812214.html 项目描述:在微信小程序 ...

  9. Java项目——模拟电话薄联系人增删改查

    该项目模拟了电话本记录联系人的业务功能,用来练习对数据库的增删改查等操作. 菜单类:Menu -- 用来封装主菜单和个选项的子菜单 Person类: Person--联系人的实体类 TelNoteRe ...

最新文章

  1. 吃货的自我修养,Python 告诉你哪家口味虾最好吃?
  2. 当集合a为空集时a的取值范围_高中数学必修一第一章集合分节练习和章末测试题含答案[1] 2...
  3. 浅谈JSP表单中的form传值
  4. TOP命令 详解CPU 查看多个核心的利用率按1
  5. STL之Map完整(Linux内核)内部实现
  6. Mysql 用Not In 的问题:子查询的结果中有Null则查不出来
  7. python票务系统_列车票务系统
  8. oracle awr报告生成_5.性能测试 - Oracle体系结构和性能优化简介
  9. django admin下拉列表不显示值,显示为object的处理
  10. oracle表连接——处理连接过程中另外一张表没有相关数据不显示问题
  11. w ndows模拟器,DS4Windows模拟器
  12. Java随机生成4位随机数字+字母
  13. 2021 HTML面试题(最新)不定时更新
  14. 如何将Mac设置为热点?
  15. MapReduce之Map join操作
  16. 如何使用界面控件DevExpress WinForms自带的UI模板?其实很简单
  17. Qt,多语言软件,开发流程,总结
  18. 群晖 Drive 的团队文件夹显示 “无法取得“
  19. 蒲公英分布平台下载更新实现
  20. Java中的数组利用键盘输入求平均数

热门文章

  1. 数据结构学习心得体会
  2. java md5加密 jar包_练习MD5加密jar包编写
  3. 前端基础建设与架构10 代码拆分和按需加载:缩减 bundle size,把性能做到极致
  4. 动态 SQL 语句大全
  5. ZgPHP报告-我们学到了什么
  6. 2021年烟花爆竹储存找解析及专业培训历年考试错题集锦
  7. 面试官画像(十年沉浮 | 番外篇)
  8. Linux iptables端口开启及端口关闭
  9. “软件外包城”下的马鞍山 | 程序员有话说
  10. 通过windows自带程序【任务计划程序】实现任务自启