对数据库中table信息的增删改查

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DBUtil {static {try {Class.forName("com.mysql.jdbc.Driver");// 加载驱动类} catch (ClassNotFoundException e) {e.printStackTrace();} // d、加载驱动类}/*** 获取数据库连接* * @author 王鸿翔*/private static Connection getConnection() {try {return DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root");// e、获取连接} catch (Exception e) {e.printStackTrace();}return null;}
//  private static Connection getConnection() {//      try {//          String url=PropertiesUtil.getValue("jdbc.url");
//          String name =PropertiesUtil.getValue("jdbc.url");
//          String password=PropertiesUtil.getValue("jdbc.url");
//          return DriverManager.getConnection(url,name,password);
//      } catch (SQLException e) {//          // TODO Auto-generated catch block
//          e.printStackTrace();
//      }
//      return null;
//  }/*** 判断数据是否存在* * @author 王鸿翔*/public static boolean exist(String sql) {class RowMapper implements IRowMapper {boolean state;public void rowMapper(ResultSet resultSet) {try {state = resultSet.next();} catch (SQLException e) { // TODO Auto-generated catch blocke.printStackTrace();}}}RowMapper rowMapper = new RowMapper();select(sql, rowMapper);return rowMapper.state;}/*** 判断数据是否存在* * @author 王鸿翔*/public static boolean exist(String sql, Object... params) {class RowMapper implements IRowMapper {boolean state;public void rowMapper(ResultSet resultSet) {try {state = resultSet.next();} catch (SQLException e) {e.printStackTrace();}}}RowMapper rowMapper = new RowMapper();select(sql, rowMapper, params);return rowMapper.state;}/*** 查询数据* * @author 王鸿翔*/public static void select(String sql, IRowMapper rowMapper) {Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {connection = getConnection();statement = connection.createStatement();// f、创建语句resultSet = statement.executeQuery(sql);// g、执行语句rowMapper.rowMapper(resultSet);// h、处理结果,以为rowMapper变量存的是IRowMapper接口实现类对象,所以程序运行时调用该对象中的rowMapper方法} catch (Exception e) {e.printStackTrace();} finally {// k、释放资源close(resultSet, statement, connection);}}/*** 查询数据* * @author 王鸿翔*/public static void select(String sql, IRowMapper rowMapper, Object... params) {Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {connection = getConnection();preparedStatement = connection.prepareStatement(sql);for (int i = 1; i <= params.length; i++) {preparedStatement.setObject(i, params[i - 1]);}resultSet = preparedStatement.executeQuery();// g、执行语句rowMapper.rowMapper(resultSet);} catch (Exception e) {e.printStackTrace();} finally {close(resultSet, preparedStatement, connection);}}/*** 修改数据* * @author 王鸿翔*/public static Boolean update(String sql) {Connection connection = null;Statement statement = null;try {connection = getConnection();statement = connection.createStatement();int result = statement.executeUpdate(sql);return result > 0;// 处理结果} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {// 释放资源close(statement, connection);}return false;}/*** 修改数据* * @author 王鸿翔*/public static boolean update(String sql, Object... params) {Connection connection = null;PreparedStatement preparedStatement = null;try {connection = getConnection();preparedStatement = connection.prepareStatement(sql);for (int i = 1; i <= params.length; i++) {preparedStatement.setObject(i, params[i - 1]);// 这个也就是索引,也就是读取信息把信息id name address mobile放到数据库中}int result = preparedStatement.executeUpdate();return result > 0;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {close(preparedStatement, connection);}return false;}/*** 释放资源* * @author 王鸿翔*/private static void close(Statement statement, Connection connection) {if (statement != null) {try {statement.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}/*** 释放资源* * @author 王鸿翔*/private static void close(ResultSet resultSet, Statement statement, Connection connection) {if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}close(statement, connection);}}

为了实现增删改查类进行了实现调用类对学生信息管理的增删改查,在这里面运用了lambed方式对接口interface IRowMapper简化代码,注释的为原来没用方法前的代码,来进行对比。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;import com.ji.Util.DBUtil;import com.ji.Util.IRowMapper;public class Login {static Scanner scanner = new Scanner(System.in);public static void menu() {System.out.println("学生管理系统\n");System.out.println("1,添加学生\n");System.out.println("2,删除学生\n");System.out.println("3,查找学生\n");System.out.println("请输入选项:");int x = scanner.nextInt();switch (x) {case 1: {System.out.println("请输入你的学号");String id = scanner.next();if (DBUtil.exist("select * from student where id=?", id)) {System.out.println("学号已存在,无法添加");return;}System.out.println("请输入你的姓名");String name = scanner.next();System.out.println("请输入你的电话");String mobile = scanner.next();System.out.println("请输入你的地址");String address = scanner.next();if (DBUtil.update("insert into student(id,name,mobile,address) values (?,?,?,?)", id, name, mobile,address)) {System.out.println("添加成功");} else {System.out.println("添加失败");}break;}case 2: {System.out.println("请输入学号:");String id = scanner.next();if (!DBUtil.exist("select * from student where id=?", id)) {System.out.println("学号不存在,删除失败");return;}if (DBUtil.update("delete from student where id=?", id)) {System.out.println("删除成功");} else {System.out.println("删除失败");}break;}case 3: {System.out.println("请输入学号:");String id = scanner.next();if (!DBUtil.exist("select * from student where id=?", id)) {System.out.println("学号不存在,修改失败");return;}System.out.println("");break;}case 4: {System.out.println("请输入学号:");String id = scanner.next();DBUtil.select("select * from student where id=?", (ResultSet resultSet) -> {try {if (resultSet.next()) {String name = resultSet.getString("name");String mobile = resultSet.getString("mobile");String address = resultSet.getString("address");System.out.println("id=" + id + ",name=" + name + ",mobile=" + mobile + ",address=" + address);} else {System.out.println("不存在");}} catch (SQLException e) {e.printStackTrace();}}, id);break;}}}
//          class RowMapper implements IRowMapper {//              @Override
//              public void rowMapper(ResultSet resultSet) {//                  try {//                      if (resultSet.next()) {//                          String name = resultSet.getString("name");
//                          String mobile = resultSet.getString("mobile");
//                          String address = resultSet.getString("address");
//                          System.out.println(
//                                  "id=" + id + ",name=" + name + ",mobile=" + mobile + ",address=" + address);
//                      } else {//                          System.out.println("不存在");
//                      }
//                  } catch (SQLException e) {//                      e.printStackTrace();
//                  }
//              }
//          };
//          DBUtil.select("select * from student where id=?", new RowMapper(), id);
//          break;
//      }
//      }public static void main(String[] args) {System.out.println("欢迎进入");System.out.println("~~~~~~~~~~~~~~~~~");while (true) {menu();}}
}

对于DBU的数据处理相关推荐

  1. 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)

    我们先来看一个关于查找的例子.查找,就是从复杂的数据结构中,找到满足某个条件的元素.通常可从以下两个方面来对数据进行查找操作:​ 根据元素的位置或索引来查找: 根据元素的数值特征来查找. 针对上述两种 ...

  2. 大规模数据处理Apache Spark开发

    大规模数据处理Apache Spark开发 Spark是用于大规模数据处理的统一分析引擎.它提供了Scala.Java.Python和R的高级api,以及一个支持用于数据分析的通用计算图的优化引擎.它 ...

  3. 2021年大数据Spark(二十六):SparkSQL数据处理分析

    目录 SparkSQL数据处理分析 基于DSL分析 基于SQL分析 第一步.注册为临时视图 第二步.编写SQL,执行分析 ​​​​​​​SparkSQL数据处理分析 在SparkSQL模块中,将结构化 ...

  4. 电子表单系列谈之表单数据处理

    袁永福( http://www.xdesigner.cn ) 2007-8-16 点击下载其表单工具概念版本 一般的电子表单工具都要求能自动显示和保存关系型数据库中的数据,比如可以使用SQL语句查询数 ...

  5. python怎么做彩票概率_用Python一次性把论文作图与数据处理全部搞定!

    一入科研深似海-- 年底将近,"防脱发用生姜还是黑芝麻?",研究僧们又开始为自己所剩无几的头发发愁了. 文献看到头秃,前沿课题总是无缘 置顶了一页实验组微信群.QQ群,想追踪前沿文 ...

  6. 【radar】毫米波雷达动态障碍物检测相关论文汇总(聚类、分类、稀疏2D点、4D点、雷达成像、原始数据处理)(4)

    [radar]毫米波雷达动态障碍物检测相关论文汇总(聚类.分类.稀疏2D点.4D点.雷达成像.原始数据处理)(4) Detection of Dynamic Objects Clustering 20 ...

  7. Javascript中二进制数据处理方法

    Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html

  8. nodejs操作sqlserver数据_pyspark操作MySQL、SQLServer数据库进行数据处理操作

    欢迎访问本人的CSDN博客[Together_CZ],我是沂水寒城. https://yishuihancheng.blog.csdn.net 在大数据处理领域里面,Hadoop和spark可以说是最 ...

  9. python中符号计算输出数学_Python科学计算与数据处理—符号运算库.doc

    Python 科学计算与数据处理 - 符号运算库 符号运算库目录从示例开始欧拉恒等式球体体积数学表达 式符号数值运算符和函数符号运算表达式转换和简化方程目录微分 方程积分其他函数符号运算库. 它的目标 ...

最新文章

  1. 一文梳理2019年腾讯广告算法大赛冠军方案
  2. 游戏维护关闭服务器,游戏服务器正在维护中
  3. 2021.02.05 Visual QA论文阅读
  4. android activity生命周期的一张经典图片
  5. 当VS2010安装了Hide Main Menu 插件,发现菜单栏不见了,怎么办?
  6. python二值化 感兴趣区域_Python+OpenCV感兴趣区域ROI提取方法
  7. IDEA安装Lombok插件失败的解决方案
  8. 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已准备好应对 2038 年问题
  9. cenos7部署samba
  10. eclipse jre 参数
  11. Atitit.Hibernate中Criteria 使用总结and 关联查询 and 按照子对象查询 o9o
  12. CREO:CREO软件的简介、安装(七大步骤)、学习路线大全(CREO软件各模块界面解释—菜单栏快速栏工作区、草绘/零件/工程图/装配设计讲解)、案例应用(几十个案例)之详细攻略
  13. linux dnf配置文件,RedHat8.1配置本地dnf源
  14. 模板消息php 群发,微信公众号模板消息群发php代码示例
  15. java中int count什么意思_int groupCount()
  16. 汤姆猫炫跑鸿蒙,汤姆猫炫跑最新版下载|汤姆猫炫跑新版本下载 安卓版 v1.4.0.470- 游娱下载站...
  17. 《声声慢·寻寻觅觅》 李清照
  18. JavaFX应用程序图标
  19. 董宏丽(帮别人名字作诗)
  20. Qt报错:calling ‘split‘ with incomplete return type ‘QStringList‘

热门文章

  1. html引导蒙层,web开发中实现图标点击态蒙层
  2. SEO老鸟与SEO菜鸟的区别
  3. echarts 多图表的自适应窗口大小,自动缩放
  4. 如何成为一位Unity3D游戏开发者:对游戏开发抱有热情
  5. UAC1.0和UAC2.0区别
  6. 关于wap上网及彩信的一点想法
  7. WSN(3)(1):第三章  无线传感网络的通信与组网
  8. SAP中国区总裁萧洁云:我加盟SAP的三个原因
  9. 盘点那些没用的上网小技巧-如何直接从一个网页获取自己想要的音频
  10. 什么是大数据开发?大数据开发要学什么?一个Java转行过程和经历