一天学习一个问题,慢慢积累,把自己碰到的问题写出来希望对道友们有所帮助。
参考博客: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版本的,网上好多教程跑起来有问题,所以需要自己去解决好多问题
如上目录结果,需要在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
对应数据库插入一条数据