在IDEA中springboot连接数据库MySQL并插入数据

一天学习一个问题,慢慢积累,把自己碰到的问题写出来希望对道友们有所帮助。
参考博客:https://blog.csdn.net/sinat_34104446/article/details/82781936
https://blog.csdn.net/adam8560/article/details/101995405
https://www.cnblogs.com/assistants/p/9583946.html
https://www.jianshu.com/p/414ef5b49a69
首先建好一个springboot项目,为了方便我没有很详细的分包结构,我的IDEA是2019.2版本的,网上好多教程跑起来有问题,所以需要自己去解决好多问题
在IDEA中springboot连接数据库MySQL并插入数据_第1张图片
如上目录结果,需要在resources文件下新建application.yml文件,其中配置如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=UTC
    driverClassName: com.mysql.cj.jdbc.Driver
    username: root
    password: a1b2c3
    type: com.alibaba.druid.pool.DruidDataSource

其中需要注意的地方比较多:(1)serverTimezone=UTC。我在网上看到好多的例子都是没有加serverTimezone=UTC,我实测不加就会报错,出现以下问题
在这里插入图片描述
(2)driverClassName: com.mysql.cj.jdbc.Driver,好多都是没有加cjdriverClassName: com.mysql.jdbc.Driver是可能是我的版本比较新推荐我用driverClassName: com.mysql.cj.jdbc.Driver,这个需要在pom.xml配置文件中加入依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

(3)type: com.alibaba.druid.pool.DruidDataSource需要加入依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.4</version>
</dependency>

实体类User:

package com.example.demo;

public class User {
    private Long id;
    private String realName;
    private String nickName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }


}

接口UserDao:

package com.example.demo;

import java.util.List;

public interface UserDao {
    int add(User user);
}

实现接口UserDaoJdbcTemplateImpl:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Repository
public class UserDaoJdbcTemplateImpl implements UserDao {

    @Autowired
    private NamedParameterJdbcTemplate jdbcTemplate;

    @Override
    public int add(User user) {
        String sql = "insert into t_author(id,real_name,nick_name) " +
                "values(:id,:realName,:nickName)";
        Map<String, Object> param = new HashMap<>();
        param.put("id", user.getId());
        param.put("realName", user.getRealName());
        param.put("nickName", user.getNickName());

        return (int) jdbcTemplate.update(sql, param);
    } 
}

ControllerDao类:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class ControllerDao {

    @Autowired
    private UserDao userDao;

   @ResponseBody
    @RequestMapping(value = "/test",method = RequestMethod.GET)
    public User controllerDao(){
        User user = new User();
        user.setId(i);
        user.setRealName("二哈");
        user.setNickName("哈子");
        userDao.add(user);
        System.out.print("可以么?");
        return user;
    }
}

在浏览器输入http://localhost:8080/test
在IDEA中springboot连接数据库MySQL并插入数据_第2张图片
对应数据库插入一条数据
在IDEA中springboot连接数据库MySQL并插入数据_第3张图片

你可能感兴趣的:(在IDEA中springboot连接数据库MySQL并插入数据)