MySQL详解进行JDBC编程与增删改查方法


Posted in MySQL onJune 16, 2022

Java的数据库编程JDBC

概念

  • JDBC是一种用于执行sql语句的Java API,他是java中的数据库连接规范,这个API由一些接口和类组成。它为java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问
  • 本质是通过代码自己实现一个MySQL客户端,通过网络和服务器进行数据的交互,客户端不能凭空出现,所以数据库提供了一组API方便我们实现
  • 数据库的种类有很多,不同的数据库提供的API不太一样,所以java为了解决这一问题提供了JDBC,java自带的一种数据库操作API,这种API覆盖所有数据库操作的操作方式
  • 本质上是java自身完成了JDBC API和数据库API之间进行转换

MySQL详解进行JDBC编程与增删改查方法

使用步骤

创建DataSource对象,这个对象就描述了数据库服务器在哪

DataSource dataSource = new MysqlDataSource();
		//设置数据库所在的地址
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/lmp?characterEncoding=utf8&useSSL=false");
        //设置登录数据库的用户名
        ((MysqlDataSource)dataSource).setUser("root");
        //设置登录数据库的密码
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");

通过Connection连接数据库(输入密码连接成功)

//import java.sql.Connection;
 Connection connection  = dataSource.getConnection();

拼接sql语句(写入sql语句)

String sql = "insert into student values(1,'张三')";

将sql语句包装成对象

PreparedStatement statement = connection.prepareStatement(sql);

执行sql语句(按下回车执行sql语句)

int ret = statement.executeUpdate();
  • 执行 update delete insert 使用 executeUpdate() 方法
  • 执行 select 使用 executeQuery() 方法
  • 使用 executeQuery() 方法 会返回一个resultSet集合, 包含查找到的数据, 初始情况下resultSet不指向任一行记录, 使用next,让他指向第一条记录, 再使用next指向下一条记录

释放资源

statement.close();
 connection.close();

利用JDBC实现增加(insert)

public class TestJDBC {
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf-8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
        Connection connection = dataSource.getConnection();
        System.out.println("输入id");
        int id = scanner.nextInt();
        System.out.println("输入名字");
        String name = scanner.next();
        String sql = "insert into student values(?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);
        int ret = statement.executeUpdate();
        if(ret == 1){
            System.out.println("插入成功");
        }else {
            System.out.println("插入失败");
        }
        statement.close();
        connection.close();
    }
}

利用JDBC实现删除(delete)

public class TestJDBCDelete
{
    public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
        Connection connection = dataSource.getConnection();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的id");
        int id = scanner.nextInt();
        String sql = "delete from student where id = ?";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1,id);
        int ret = preparedStatement.executeUpdate();
        System.out.println(ret);
        preparedStatement.close();
        connection.close();
    }

利用JDBC实现修改(update)

public class TestJDBCUpdate {
    public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("woshizhu123");
        Connection connection = dataSource.getConnection();
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的学生id");
        int id = scanner.nextInt();
        System.out.println("请输入要修改的学生姓名");
        String name = scanner.next();
        String sql = "update student set name = ? where id = ?";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setString(1,name);
        statement.setInt(2,id);
        int ret = statement.executeUpdate();
        System.out.println(ret);
        statement.close();
        connection.close();
    }
}

利用JDBC实现查找(select)

public static void testJDBCSelect() throws SQLException {
        //1创建DataSource对象
        DataSource dataSource = new MysqlDataSource();
        //2连接数据库
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java_5_31?characterEncoding=utf-8&useSSL=true");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("listen");
        Connection connection = dataSource.getConnection();
        //3拼接sql
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
        //4执行sql
        ResultSet resultSet = statement.executeQuery();
        //5遍历得到的集合
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int classId = resultSet.getInt("classId");
            System.out.println("id " + id + " name " + name + " classId " + classId);
        }
        //6关闭资源
        resultSet.close();
        statement.close();
        connection.close();
    }

到此这篇关于MySQL详解进行JDBC编程与增删改查方法的文章就介绍到这了,更多相关MySQL JDBC编程内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

MySQL 相关文章推荐
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
SQL实战演练之网上商城数据库商品类别数据操作
Oct 24 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
mysql中varchar类型的日期进行比较、排序等操作的实现
Nov 17 MySQL
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
分享几个简单MySQL优化小妙招
Mar 31 MySQL
mysql如何查询连续记录
May 11 MySQL
MySQL范围查询优化的场景实例详解
Jun 10 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 MySQL
MySQL慢查询中的commit慢和binlog中慢事务的区别
Jun 16 #MySQL
MySQL聚簇索引和非聚簇索引的区别详情
关于mysql中string和number的转换问题
Jun 14 #MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 #MySQL
手把手带你彻底卸载MySQL数据库
MYSQL中文乱码问题的解决方案
Jun 14 #MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 #MySQL
You might like
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
JS与C#编码解码
2013/12/03 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
金鑫耀Java笔试题
2014/09/06 面试题
家长给孩子的评语
2014/01/30 职场文书
个人查摆剖析材料
2014/02/04 职场文书
超市国庆节促销方案
2014/02/20 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
社区娱乐活动方案
2014/08/21 职场文书
购房意向书
2014/08/30 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
党性分析材料格式
2014/12/19 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
MySQL事务操作的四大特性以及并发事务问题
2022/04/12 MySQL