多语言展示
当前在线:1119今日阅读:168今日分享:49

如何在Spring-boot中使用jdbcTemplate操作MySQL

spring-boot是一个微服务应用框架,应用自然离不开数据库,这里介绍如何使用Spring jdbcTemplate的方式在Spring-boot应用环境中连接和访问MySQL数据库。
工具/原料
1

Spring-boot

2

Maven

3

IntelliJ Idea

方法/步骤
1

准备好MySQL数据库服务环境,创建测试用的数据库和数据表前提条件:数据库ideadb, 数据表ideaCREATE TABLE `idea` (  `id` char(12) NOT NULL,  `name` varchar(125) NOT NULL,  `content` varchar(1024) NOT NULL,  `content_file` varchar(255) DEFAULT NULL,  `img_file` varchar(255) DEFAULT NULL,  `author` varchar(50) NOT NULL,  `create_date` date NOT NULL,  `update_date` date DEFAULT NULL,  `version` smallint(2) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3

创建Maven spring-boot工程引入spring-boot依赖包parent:spring-boot-starter-parentdependency:spring-boot-starter-we

4

引入MySQL驱动包和spring jdbctemplate包    mysql    mysql-connector-java    org.springframework.boot    spring-boot-starter-jdbc

5

在application.properties配置文件中配置MySQL数据库连接信息server.port = 9527spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ideadbspring.datasource.username=hxbspring.datasource.password=hxbspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.max-idle=10spring.datasource.max-wait=10000spring.datasource.min-idle=5spring.datasource.initial-size=5

6

创建数据表idea中的数据对象模型类idea:package fantasy;/** * Created by Administrator on 2017/7/12 0012. */import org.springframework.format.datetime.DateFormatter;import java.util.Date;import java.util.Locale;public class Idea  implements java.io.Serializable{    private String id; //Max len =12    private String name; //max len = 125    private String content;    private String contentFile;    private String imgFile;    private String author;    private Date createDate;    private Date updateDate;    private String version;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }    public String getContentFile() {        return contentFile;    }    public void setContentFile(String contentFile) {        this.contentFile = contentFile;    }    public String getImgFile() {        return imgFile;    }    public void setImgFile(String imgFile) {        this.imgFile = imgFile;    }    public String getAuthor() {        return author;    }    public void setAuthor(String author) {        this.author = author;    }    public Date getCreateDate() {        return createDate;    }    public void setCreateDate(Date createDate) {        this.createDate = createDate;    }    public Date getUpdateDate() {        return updateDate;    }    public void setUpdateDate(Date updateDate) {        this.updateDate = updateDate;    }    public String getVersion() {        return version;    }    public void setVersion(String version) {        this.version = version;    }    @Override    public String toString() {        DateFormatter dateFormatter = new DateFormatter();        dateFormatter.setPattern('yyyyMMddHHmmss');        String createDateStr = '';        if(createDate!=null)        {           createDateStr= dateFormatter.print(createDate, Locale.CHINA);        }        return 'Idea{' +                'id='' + id + '\'' +                ', name='' + name + '\'' +                ', content='' + content + '\'' +                ', contentFile='' + contentFile + '\'' +                ', imgFile='' + imgFile + '\'' +                ', author='' + author + '\'' +                ', createDate=' + createDateStr +                ', updateDate=' + updateDate+                ', version='' + version + '\'' +                '}';    }}

7

创建数据表Idea控制类IdeaController,进行数据的插入以及Spring-boot服务的启动package fantasy;/** * Created by Administrator on 2017/8/8 0008. */import org.springframework.boot.*;import org.springframework.boot.autoconfigure.*;import org.springframework.format.datetime.DateFormatter;import org.springframework.stereotype.*;import org.springframework.web.bind.annotation.*;import java.text.DateFormat;import java.text.ParseException;import java.util.Map.Entry;import java.util.Date;import java.util.Locale;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@Controller@EnableAutoConfiguration@RestController@RequestMapping('/idea')public class IdeaController {    @Autowired    private JdbcTemplate jdbcTemplate;    //日期格式yyyyMMddHHmmss    @RequestMapping('/new')    @ResponseBody    Idea addIdea(@RequestParam('id') String id, @RequestParam('name') String name,@RequestParam('content') String content,@RequestParam('author') String author,@RequestParam('createDate') String createDateStr) {        Idea idea= new Idea();        idea.setId(id);        idea.setName(name);        idea.setContent(content);        idea.setAuthor(author);        try {            DateFormatter dateFormatter = new DateFormatter();            dateFormatter.setPattern('yyyyMMddHHmmss');            Date createDate = dateFormatter.parse(createDateStr, Locale.CHINA);            idea.setCreateDate(createDate);        }        catch(ParseException e)        {            e.printStackTrace();            idea.setCreateDate(new Date());        }        System.out.println('idea='+idea);        String[] types = { 'java.lang.String', 'java.lang.String', 'java.lang.String','java.lang.String','java.util.Date' };        jdbcTemplate.update('insert into idea (id,name,content,author,create_date) values(?,?,?,?,?)',idea.getId(),idea.getName(),idea.getContent(),idea.getAuthor(),idea.getCreateDate());        return idea;    }    public static void main(String[] args) throws Exception {        SpringApplication.run(IdeaController.class, args);    }}

8

运行IdeaController,进行数据插入测试1)启动IdeaController主类2)在浏览器中发送插入数据的请求http://127.0.0.1:9527/idea/new?id=B001&name=zhandouji&content=Iamagoodman&author=fantasy&createDate=203)在数据库中查看表idea的数据可以看到数据已经插入成功

推荐信息