连接数据库

1.加载驱动

Class.forName("com.mysql.jdbc.Driver");

本行代码主要作用是加载(注册)数据库驱动(到JVM)

2.创建链接

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&characterEncoding=utf8","root","123");
System.out.println("创建链接成功");

通过connection与DriverManager建立与数据库的连接

对数据库的操作

查询账户操作

3.创建sql语句

String sql = "select * from user";

4.得到statement对象

statement = connection1.prepareStatement(sql);

5.执行sql语句,得到结果集

resultSet = statement.executeQuery();

6.处理结果集

while(resultSet.next()){int Uno = resultSet.getInt("id");String Uname = resultSet.getString("username");String Upwd = resultSet.getString("password");System.out.println("用户编号:\t" + Uno + "   用户名:\t" + Uname + "   用户密码:\t" + Upwd);}

7.关闭对象,回收数据库资源

if(resultSet!=null){try {resultSet.close();}catch (SQLException e){e.printStackTrace();}}if(statement!=null){try {statement.close();}catch (SQLException e){e.printStackTrace();}}if(connection!=null){try {connection.close();}catch (SQLException e){e.printStackTrace();}}

关闭结果集-->关闭数据库操作对象-->关闭连接

结果

增添账户操作

完整代码

public class insert {public static void main(String[] args){PreparedStatement statement=null;Connection connection=null;//1.加载驱动try{Class.forName("com.mysql.jdbc.Driver");//2.创建连接Connection connection1 = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&characterEncoding=utf8","root","123");System.out.println("创建链接成功");Scanner sc2=new Scanner(System.in);Scanner sc3=new Scanner(System.in);//3.创建sql语句String sql="insert into user (id,username,password) values(?,?,?)";//4.得到statement对象System.out.print("请输入要添加的用户编号:");int Uno = sc2.nextInt();System.out.print("请输入要添加的用户名:");String Uname = sc3.nextLine();System.out.print("请输入要添加的用户密码:");String Upwd = sc3.nextLine();statement=connection1.prepareStatement(sql);statement.setInt(1,Uno);statement.setString(2,Uname);statement.setString(3,Upwd);statement.executeUpdate();}catch(Exception e){e.printStackTrace();}finally{if(statement!=null){try {statement.close();}catch (SQLException e){e.printStackTrace();}}if(connection!=null){try {connection.close();}catch (SQLException e){e.printStackTrace();}}}}
}

结果

修改用户操作

核心代码

            Scanner upd1=new Scanner(System.in);Scanner upd2=new Scanner(System.in);//3.创建sql语句String updSql="update user set username=? , password=? where id=?";//4.得到statement对象statement2=connection2.prepareStatement(updSql);System.out.print("请输入要修改的用户编号:");int aid = upd1.nextInt();System.out.print("请输入修改后的用户名:");String un = upd2.nextLine();System.out.print("请输入修改后的用户密码:");String pw = upd2.nextLine();statement2.setString(1,un);statement2.setString(2,pw);statement2.setInt(3,aid);statement2.executeUpdate();

结果

删除用户操作

核心代码

Scanner del=new Scanner(System.in);//3.创建sql语句String delSql="delete from user where (id)=(?)";//4.得到statement对象System.out.print("请输入要删除的用户编号:");int id = del.nextInt();statement1=connection.prepareStatement(delSql);statement1.setInt(1,id);statement1.executeUpdate();

结果

连接数据库与回收数据库资源的封装

在src下新建util包,新建一个DBUtil类用来封装各种操作同样需求的操作。

public class DBUtil {public static Connection getConnection(){try {Class.forName("com.mysql.jdbc.Driver");//2.创建连接Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?useSSL=true&characterEncoding=utf8","root","123");return conn;}catch(Exception e){e.printStackTrace();}return null;}public static void close(ResultSet resultSet, Statement statement,Connection connection){if(resultSet!=null){try {resultSet.close();}catch (SQLException e){e.printStackTrace();}}if(statement!=null){try {statement.close();}catch (SQLException e){e.printStackTrace();}}if(connection!=null){try {connection.close();}catch (SQLException e){e.printStackTrace();}}}
}

封装后便可将原有的代码修改,形式变得更加简洁:

public class JDBC {public static void main(String[] args){ResultSet resultSet=null;PreparedStatement statement=null;Connection connection=null;//1.加载驱动try{Connection connection1= DBUtil.getConnection();System.out.println("创建链接成功");//3.创建sql语句String sql = "select * from user";//4.得到statement对象statement = connection1.prepareStatement(sql);//5.执行sql 得到结果集resultSet = statement.executeQuery();//6.处理结果集while(resultSet.next()){int Uno = resultSet.getInt("id");String Uname = resultSet.getString("username");String Upwd = resultSet.getString("password");System.out.println("用户编号:\t" + Uno + "   用户名:\t" + Uname + "   用户密码:\t" + Upwd);//System.out.println(resultSet.getInt("id" ));//System.out.println(resultSet.getString( "username"));//System.out.println(resultSet.getString( "password"));}}catch(Exception e){e.printStackTrace();}finally{DBUtil.close(resultSet,statement,connection);}}}

浅谈IDEA中JBDC的简单增删查改操作及简单封装相关推荐

  1. 浅谈android手机联系人开发之增删查改

    最近在做手机联系人的功能模块的时候,遇到了很多的坑,在网上搜索的有一些所谓的最全的手机联系人开发的介绍还存在一些bug,所以我把我最近的项目心得和方法写下来,既能帮助大家减少了解android开发手机 ...

  2. server sql 中类型为bit应该插入什么值_关于SQL Server中bit类型字段增删查改的一些事...

    前言 本文主要给大家介绍了关于SQL Server中bit类型字段增删查改的一些事,话说BIT类型字段之前,先看"诡异"的一幕,执行Update成功,但是查询出来的结果依然是1,而 ...

  3. java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】

    本文实例讲述了MongoDB增删查改操作.分享给大家供大家参考,具体如下: MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的. Insert操作: 单条插入 v ...

  4. 火山视窗文本数组类增删查改操作

    本源码转载自利快云https://www.lkuaiy.com/ 火山视窗文本数组类增删查改操作     文本数组类可对文本型数据进行数组操作,本类可以非常方便的实现对文本数组的增删查改.   一.添 ...

  5. 火山视窗整数数组类增删查改操作

    本源码转载自利快云https://www.lkuaiy.com/ 火山视窗整数数组类增删查改操作     整数数组类可对整数数据进行数组操作,本类可以非常方便的实现对整数数组的增删查改.   一.添加 ...

  6. C++通过ODBC方式连接数据库SQLServer及增删查改操作【图书借阅系统为例】

    C++通过ODBC方式连接数据库SQLServer及增删查改操作[图书借阅系统为例] 文章目录 前言 一.ODBC如何配置 二.SQL Server如何设置账号密码 三.C++连接数据库以及增删查改操 ...

  7. 【TcaplusDB知识库】GO快速上手PB表的增删查改操作

    PROTOBUF说明 PROTO表是基于PROTOBUF协议设计的TcaplusDB表,PROTOBUF协议是Google开源的通用RPC通信协议,用于TcaplusDB存储数据的序列化.反序列化等操 ...

  8. axios 的简单增删查改 使用json-server启动的josn

    使用axios 获取json-server启动的json数据 进行增删查改 一.启动json-server 1.1启动 json-server是用来模仿后台接口而使用的. 安装:npm install ...

  9. 【MySQL】数据库中表的增删查改操作详解

    文章目录 前言 SQL的通用语法 一.表的创建与表的新增 语法 数据类型的介绍 演示 二.表的删除 语法 删整张表的语法 删记录的语法 演示 三.表的查询 查询整张表 (一)全列查询 (二)指定列查询 ...

最新文章

  1. MySQL计算指标连续两月金额相比_20160929
  2. ubuntu修改gcc版本
  3. [转载] 七龙珠第一部——第095话 悟空对抗克林
  4. 【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )
  5. 一种 Android 应用内全局获取 Context 实例的装置
  6. python12个基本语法_12-25python基本语法
  7. 计算机硬件:固态硬盘选购的技巧
  8. Python 学习线路图,码住!
  9. jQuery的页面加载事件
  10. sql注入语句示例大全_通过示例了解SQL EXCEPT语句
  11. repaire mysql_sql错误:……is marked as crashed and should be repaire
  12. 算法注册机编写扫盲之续篇---第二课
  13. 《Redis开发与运维》阅读笔记:键管理之单个键管理
  14. 纸鸢|物联网云平台倒闭的原因和案例
  15. 请求servlet操作成功后,在JSP页面弹出提示框
  16. 如何以软文宣传的方式成功推广洗发水的新产品上市?
  17. Windows10自带软件一款性能监控工具
  18. 服务器维护配件,服务器维修,服务器升级,服务器配件,磁盘柜维修及维护
  19. 【论文阅读】——Spons Shields: Practical Isolation for Trusted Execution
  20. 深入理解 Proxy 和 Reflect-- JavaScript

热门文章

  1. Android 11:bluetooth@1.0蓝牙架构分析
  2. 学PE文件结构之记笔记
  3. 在HTML中让边框变透明,如何用CSS设置DIV边框透明
  4. Tableau图表 • 树状图
  5. 正交实验法+功能图法
  6. 「BalticOI 2014 Day 1」三个朋友(进制hash)
  7. 查看计算机计划,win10系统查看任务计划的具体办法
  8. 嵌入式Linux驱动程序开发
  9. Nutanix喊你来共同启动“企业云”未来
  10. ssm毕设项目基于JAVAEE的车检预约系统846ks(java+VUE+Mybatis+Maven+Mysql+sprnig)