java Spring JdbcTemplate配合mysql实现数据库表数据(修改/删除操作)

文章展示了如何在Java项目中使用Spring框架的JdbcTemplate组件来操作MySQL数据库,包括创建实体类对应数据库表,定义DAO接口及其实现,以及使用XML配置文件进行数据库连接和组件扫描。示例代码涵盖了更新和删除用户信息的操作。
摘要由CSDN通过智能技术生成

首先 您需要有mysql数据库 然后创建这样一张表
在这里插入图片描述
然后 创建一个java项目 引入对应的Jar包
在这里插入图片描述

在src下创建一个包 叫 mydata 下面创建一个类 叫 user_list

参考代码如下

package mydata;

public class user_list {
    private int user_id;
    private String user_name;
    private String user_post;
    private int superior_id;
    public int getUser_id() {
        return user_id;
    }
    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }
    public String getUser_name() {
        return user_name;
    }
    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getUser_post() {
        return user_post;
    }
    public void setUser_post(String user_post) {
        this.user_post = user_post;
    }
    public int getSuperior_id() {
        return superior_id;
    }
    public void setSuperior_id(int superior_id) {
        this.superior_id = superior_id;
    }
}

这里大家应该有注意到 我们的 user_list 的属性 和 数据库中 user_list 表的字段 是一一对应的 一个实体类 代表一张表操作

然后 我们在src下创建一个包 叫 dao
在dao下创建一个接口 叫 BookDao

参考代码如下

package dao;

import mydata.user_list;

public interface BookDao {
    void update(user_list user_list,int user_id);
    void delete(int user_id);
}

这是一个接口 定义了两个抽象方法 分别对应
update 修改 接受两个参数 第一个是 user_list的实体 我们将根据实体内容修改数据 第二个 int 类型的用户di 我们将根据用户id确认具体修改哪一条数据

然后 我们写了接口 就要实现他
在dao目录下创建一个类 我这里叫 BookDaoImpl

参考代码如下

package dao;

import mydata.user_list;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class BookDaoImpl implements BookDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void update(user_list user_list,int user_id) {
        String sql = "UPDATE user_list SET user_name = ? WHERE user_id = ?;";
        int hangm = jdbcTemplate.update(sql,user_list.getUser_name(),user_id);
        System.out.println(hangm);
    }

    @Override
    public void delete(int user_id) {
        String sql = "delete FROM `user_list` WHERE user_id like ?;";
        int hangm = jdbcTemplate.update(sql,user_id);
        System.out.println(hangm);
    }
}

首先 我们定义了一个JdbcTemplate 的实体对象 将通过它完成数据库操作

然后update 修改方法 我们写了一段修改的sql 修改一条数据的user_name等于问号 条件是 这条数据 user_id 要等于问号

然后我们调用 jdbcTemplate下的update操作数据库 update接受两个参数 第一个参数 是一个sql的字符串 后面的参数是一个可变参数 你在sql中用了几个问号 就有几个参数 这个问号 执行时 你一个问号 他就从你的可变参数中填上去

所以 简单理解 sql执行时是这样的
UPDATE user_list SET user_name = user_list.getUser_name() WHERE user_id = user_id

然后 delete代表删除 那个sql中的问号也是一样的理解方法

然后 在src下创建目录 叫 senvice
在下面创建一个类 叫

package senvice;

import dao.BookDao;
import mydata.user_list;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Autowired
    protected BookDao BookDao;

    public void updateUser_list (user_list user_list,int user_id) {
        BookDao.update(user_list,user_id);
    }
    public void deleteUser_list (int user_id) {
        BookDao.delete(user_id);
    }
}

我们再这里 声明了一个dao包下的BookDao 的对象 然后 编写了两个方法 分别调用了dao包下BookDao 的修改和删除方法

这是三级架构 是一种规范

在src下创建bean.xml配置文件 参考代码如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

       <!-- 数据库连接池 -->
       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
             destroy-method="close">
              <property name="url" value="jdbc:mysql:///test" /><!--对应SQLyog里的数据库-->
              <property name="username" value="root" />            <!-- 用户名 -->
              <property name="password" value="root" />        <!-- 密码 -->
              <property name="driverClassName" value="com.mysql.jdbc.Driver" />
       </bean>

       <!-- JdbcTemplate对象 -->
       <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
              <!--注入dataSource属性-->
              <property name="dataSource" ref="dataSource"></property>
       </bean>

       <context:component-scan base-package="senvice"></context:component-scan>
       <context:component-scan base-package="dao"></context:component-scan>

</beans>

我们 配置文件 最下面 开启了 senvice和dao包的注解扫描 然后 上面的则都是数据库链接配置
要注意的是 jdbc:mysql:///要链接的数据库
例如 我是 jdbc:mysql:///test
在这里插入图片描述
链接test数据库

然后 username 代表用户名 如果没设置过 一般就是root password密码 没设置一般就没有 建议也搞成root

我们在src下创建测试类 试一下效果
测试类参考代码如下


import mydata.user_list;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import senvice.BookService;

public class text {
    public static void main(String args[]) {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        user_list user = new user_list();
        user.setUser_name("刘峰");
        bookService.updateUser_list(user,9);
    }
}

这里 我们的逻辑 就是 改id为 9的数据 user_name 为刘峰
我们看一下数据库
在这里插入图片描述
目前 名称为9的是赵国公

那么 我们运行测试类 运行效果如下

在这里插入图片描述
控制台告诉我们成功了 jdbcTemplate.update返回了个1 说明 我们的这个sql 对一条数据生效了

我们到数据库中刷新表 并重新打开
在这里插入图片描述
可以看到 我们名称修改就完成了
在这里插入图片描述

然后来试删除 测试类代码更改如下


import mydata.user_list;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import senvice.BookService;

public class text {
    public static void main(String args[]) {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        user_list user = new user_list();
        bookService.deleteUser_list(9);
    }
}

这里 我们直接调用删除方法 传个9 进去 看sql语句 那就是把 id为9的数据删掉

运行结果如下
在这里插入图片描述
控制台还是报出运行成功 jdbcTemplate.update返回1 说明 我们的这个sql 对一条数据生效了

还是刷新表 在重新打开

在这里插入图片描述
这里 我们的数据就成功删掉了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值