JDBC增删改查(使用Java对数据库操作)

使用JDBC进行增删改查

前一天给大家分享了一些基本的JDBC知识,今天给大家做了一分最详尽的增删改查总结。Let’s go!

复习一下MySQL的语法

作用

关键字

举例

是否需要返回数据

添加(增)

INSERT

INSERT INTO customers(id)VALUES(9)

显示受到影响,不返回值

删除(删)

DELETE

DELETE FROM customers WHERE id=9

同上

修改(改)

UPDATE

update customers set name = ‘周星驰’ where id = 9

同上

查询(查)

SELECT

SELECT * FROM customers

有结果返回

对上述表进行分析,发现对表的添加、删除以及修改都是不需要返回值的,按照长期对于Java代码的理解,那么,我们就像代码中不需要返回值的一律为void方法,我们可以试着把它归为一类,而查询是需要由返回值的,我们就只能将其单独划分一类。

添加、删除以及修改

一、我们先来分析一下我们如果需要对一个数据库的表进行操作,需要那几步叭

  • ①对数据库进行连接(昨天讲过了)
  • ②写sql语句(因为这个肯定也是需要自己编写sql语句进行操作的)
  • ③执行sql语句
  • ④关闭资源

二、以添加为例子先看看

	/**添加*/
	/**因为涉及到关闭资源,这里就不采用throw来抛出异常,采用的是try……catch的形式*/
    public void connection(){
        PreparedStatement ps=null;
        Connection conn =null;
        //读取配置文件中的4个基本信息
        try {
            InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
            Properties pros = new Properties();
            pros.load(inputStream);


            String user = pros.getProperty("user");
            String password = pros.getProperty("password");
            String url = pros.getProperty("url");
            String driverClass = pros.getProperty("driverClass");

            //加载区间
            Class.forName(driverClass);

            //获取连接
            conn = DriverManager.getConnection(url,user,password);
            

            //4预编译sql语句,返回PreparedStatement的实例
            String sql = "insert into customers(name,email,birth)values(?,?,?)";
            ps = conn.prepareStatement(sql);

            //填充占位符
            ps.setString(1,"小阿七");
            ps.setString(2,"xiaoaqi@gmail.com");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            java.util.Date date = sdf.parse("1996-09-08");
            ps.setDate(3,new Date(date.getTime()));


            //执行操作
            //execute()执行sql语句,返回的是一个布尔值
            ps.execute();
        }catch (Exception e){
            System.out.println(e.getMessage());
        }finally {
            //释放资源
            try {
                if(conn!=null && ps!=null) {
                    conn.close();
                    ps.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        }
    }

结果展示

  • 添加前的数据

  • 添加后的数据

在这里插入图片描述

分析一下,上面的的代码,我们不管做哪一个操作,我们都需要的是连接,执行还有释放资源,仅仅只是语句和占位符不一样,这里我们完全可以把她的 代码单独用一个方法包装起来。下面我们试着取写一个通用的方法。

将代码升级到通用的情况

jdbc.properties文件

user=你的用户名

password=用户名对应的密码

url=连接数据库的地址image-20211104153830841

driverClass=com.mysql.jdbc.Driver

注:文件里面的配置文件尽量不要使用空格,否则会出现报错嫌疑!!!

user=root
password=123456
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.jdbc.Driver

通用的工具类

看下面的代码想一想为什么本人会在设置连接时选择的是用throws关键字抛出异常,而在关闭资源时选择用try……catch来处理异常呢?

	/**设置连接*/
    public static Connection getConnection() throws Exception{
        //读取配置文件中的4个基本信息
        InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
        Properties pros = new Properties();
        pros.load(inputStream);
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        String ur
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值