文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot用JdbcTemplates访问Mysql的过程

2023-06-19 11:59

关注

本篇内容介绍了“SpringBoot用JdbcTemplates访问Mysql的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

准备工作

初始化mysql:

-- create table `account`DROP TABLE `account` IF EXISTSCREATE TABLE `account` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(20) NOT NULL,  `money` double DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;INSERT INTO `account` VALUES ('1', 'aaa', '1000');INSERT INTO `account` VALUES ('2', 'bbb', '1000');INSERT INTO `account` VALUES ('3', 'ccc', '1000');

创建工程

引入依赖:

在pom文件引入spring-boot-starter-jdbc的依赖:

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jdbc</artifactId>        </dependency>

引入mysql连接类和连接池:

<dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.0.29</version>        </dependency>

开启web:

<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>

配置相关文件

在application.properties文件配置mysql的驱动类,数据库地址,数据库账号、密码信息。

spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/testspring.datasource.username=rootspring.datasource.password=123456

通过引入这些依赖和配置一些基本信息,springboot就可以访问数据库类。

具体编码

实体类

public class Account {    private int id ;    private String name ;    private double money;....省略了getter. setter}

dao层

public interface IAccountDAO {    int add(Account account);    int update(Account account);    int delete(int id);    Account findAccountById(int id);    List<Account> findAccountList();}

具体的实现类:

package com.forezp.dao.impl;import com.forezp.dao.IAccountDAO;import com.forezp.entity.Account;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic class AccountDaoImpl implements IAccountDAO {    @Autowired    private JdbcTemplate jdbcTemplate;    @Override    public int add(Account account) {        return jdbcTemplate.update("insert into account(name, money) values(?, ?)",              account.getName(),account.getMoney());    }    @Override    public int update(Account account) {        return jdbcTemplate.update("UPDATE  account SET NAME=? ,money=? WHERE id=?",                account.getName(),account.getMoney(),account.getId());    }    @Override    public int delete(int id) {        return jdbcTemplate.update("DELETE from TABLE account where id=?",id);    }    @Override    public Account findAccountById(int id) {        List<Account> list = jdbcTemplate.query("select * from account where id = ?", new Object[]{id}, new BeanPropertyRowMapper(Account.class));        if(list!=null && list.size()>0){            Account account = list.get(0);            return account;        }else{            return null;        }    }    @Override    public List<Account> findAccountList() {        List<Account> list = jdbcTemplate.query("select * from account", new Object[]{}, new BeanPropertyRowMapper(Account.class));        if(list!=null && list.size()>0){            return list;        }else{            return null;        }    }}

service层

public interface IAccountService {    int add(Account account);    int update(Account account);    int delete(int id);    Account findAccountById(int id);    List<Account> findAccountList();}

具体实现类:

@Servicepublic class AccountService implements IAccountService {    @Autowired    IAccountDAO accountDAO;    @Override    public int add(Account account) {        return accountDAO.add(account);    }    @Override    public int update(Account account) {        return accountDAO.update(account);    }    @Override    public int delete(int id) {        return accountDAO.delete(id);    }    @Override    public Account findAccountById(int id) {        return accountDAO.findAccountById(id);    }    @Override    public List<Account> findAccountList() {        return accountDAO.findAccountList();    }}

构建一组restful api来展示

package com.forezp.web;import com.forezp.entity.Account;import com.forezp.service.IAccountService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;@RestController@RequestMapping("/account")public class AccountController {    @Autowired    IAccountService accountService;    @RequestMapping(value = "/list",method = RequestMethod.GET)    public  List<Account> getAccounts(){       return accountService.findAccountList();    }    @RequestMapping(value = "/{id}",method = RequestMethod.GET)    public  Account getAccountById(@PathVariable("id") int id){        return accountService.findAccountById(id);    }    @RequestMapping(value = "/{id}",method = RequestMethod.PUT)    public  String updateAccount(@PathVariable("id")int id , @RequestParam(value = "name",required = true)String name,    @RequestParam(value = "money" ,required = true)double money){        Account account=new Account();        account.setMoney(money);        account.setName(name);        account.setId(id);        int t=accountService.update(account);        if(t==1){            return account.toString();        }else {            return "fail";        }    }    @RequestMapping(value = "",method = RequestMethod.POST)    public  String postAccount( @RequestParam(value = "name")String name,                                 @RequestParam(value = "money" )double money){        Account account=new Account();        account.setMoney(money);        account.setName(name);        int t= accountService.add(account);        if(t==1){            return account.toString();        }else {            return "fail";        }    }}

可以通过postman来测试,具体的我已经全部测试通过,没有任何问题。注意restful构建api的风格。

“SpringBoot用JdbcTemplates访问Mysql的过程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯