博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
企业级 SpringBoot教程(三)SpringBoot用JdbcTemplates访问Mysql
阅读量:6553 次
发布时间:2019-06-24

本文共 3446 字,大约阅读时间需要 11 分钟。

hot3.png

准备工作

  • jdk 1.8
  • maven 3.0
  • idea
  • 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的依赖:

org.springframework.boot
spring-boot-starter-jdbc

引入mysql连接类和连接池:

mysql
mysql-connector-java
runtime
com.alibaba
druid
1.0.29

开启web:

org.springframework.boot
spring-boot-starter-web

配置相关文件

在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
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; /** * Created by fangzhipeng on 2017/4/20. */@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
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
findAccountList() { List
list = jdbcTemplate.query("select * from account", new Object[]{}, new BeanPropertyRowMapper(Account.class)); if(list!=null && list.size()>0){ return list; }else{ return null; } }}

完整项目的源码来源 技术支持1791743380

转载于:https://my.oschina.net/u/3826344/blog/2208713

你可能感兴趣的文章
iOS开发多线程篇—线程间的通信
查看>>
【转】Office 2003 EXCEL多窗口打开
查看>>
代码实现导航栏分割线
查看>>
由ibatis向mybatis的转变
查看>>
Android Button事件
查看>>
IO流(PrintWriter) 很重要的一个类 核心
查看>>
python实现WordCount基础和拓展功能
查看>>
《开拓者研发团队》——基于弹幕评论的大数据分析平台项目的原型设计与开发...
查看>>
实践.Net Core在Linux环境下的第一个Hello World
查看>>
flask+redis实现抢购(秒杀)功能
查看>>
J2EE 十三个技术规范
查看>>
结对-象棋-测试过程
查看>>
SQLALchemy之介绍,基本使用
查看>>
堆——优先队列
查看>>
GDI+ Custom Controls with Visual C# 2005
查看>>
跨浏览器本地存储框架(store.js/USTORE.js/Box.js)
查看>>
css3关键帧动画实现轮播效果
查看>>
小白的进阶之路2
查看>>
通过python的import hooks实现像引用代码一样使用配置文件
查看>>
【Ecstore2.0】计划任务/队列/导入导出 的执行问题
查看>>