springboot (三)JdbcTemplate

添加pom依赖

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

properties中配置DataSource

spring.datasource.url=jdbc:mysql://localhost:3306/test01?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

编写dao层,service层。 dao接口

public interface UserDao {
    Integer addUser(String name, Integer age);
}

dao 实现类

@Repository
public class UserDaoImpl implements UserDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Override
    public Integer addUser(String name, Integer age) {
        return jdbcTemplate.update("INSERT  INTO USER VALUES (null,?,?);", name, age);
    }
}

service接口

public interface UserService {
    int addUser(String name, Integer age);
}
service实现类
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;
    @Override
    public int addUser(String name, Integer age) {
        try {
            return userDao.addUser(name,age);
        }catch (Exception e){
            e.printStackTrace();
            return  0;
        }
    }
}

创建mysql数据库和表

-- 创建数据库
CREATE DATABASE test01 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 创建用户表
CREATE TABLE user(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(30),
    age INT
);

完成controller和页面

UserController.java

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;
    @RequestMapping(value = "/")
    public String user() {
        return "/user";
    }
    @ResponseBody
    @RequestMapping(value = "/addUser")
    public Map<String, Object> addUser(@RequestParam(name = "uname") String name, @RequestParam(name = "age") Integer age) {
        Map<String, Object> map = new HashMap<>();
        int count = userService.addUser(name, age);
        map.put("name", name);
        map.put("age", age);
        map.put("msg", "操作" + (count > 0 ? "成功" : "失败"));
        return map;
    }
}

user.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户界面</title>
</head>
<body>
<h2>添加用户</h2>
<form method="post" action="./addUser">
    <label>用户名:</label><input type="text" name="uname">
    <label>年龄:</label><input type="number" name="age">
    <input type="submit" value="添加"/>
</form>
</body>
</html>

运行,添加数据,查看mysql数据库

原文发布于微信公众号 - 编程坑太多(idig88)

原文发表时间:2018-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

DBA生存警示:保护现场不要让事情更糟

张乐奕 云和恩墨副总经理 Oracle ACE 总监 ITPUB Oracle数据库管理版版主、Oracle高可用版版主、ACOUG联合创始人 今天收到一个发过...

30212
来自专栏xingoo, 一个梦想做发明家的程序员

[Hadoop大数据]——Hive部署入门教程

Hive是为了解决hadoop中mapreduce编写困难,提供给熟悉sql的人使用的。只要你对SQL有一定的了解,就能通过Hive写出mapreduce的程...

4725
来自专栏Android 开发学习

Android studio 2.2 JNI ffmpeg 简单的播放器(这里只有视频解码)include "libavcodec/avcodec.h"include "libavformat/avf

3933
来自专栏walterlv - 吕毅的博客

The undefined behaviors of WPF Grid (the so-called bugs)

发布于 2018-05-05 09:07 更新于 2018-08...

671
来自专栏技术小黑屋

Package Stopped State Since Android 3.1

Since Android 3.1, Android has introduced a LaunchControl mechanism. It’s call S...

971
来自专栏程序员笔记

Note_Motivation & Gamification

2186
来自专栏数据库新发现

How to Install Orabm

http://www.eygle.com/special/How.to.Install.Orabm.TPC.htm

1543
来自专栏技术点滴

Windows注册表操作基础代码

Windows注册表操作基础代码     Windows下对注册表进行操作使用的一段基础代码Reg.h: #pragma once #include<asser...

2079
来自专栏Linyb极客之路

你该怎么做?当你发现springboot扫描controller没有生效

加上@SpringBootApplication为啥就能扫描到,其实我也不知道。那就看下这个注解到底是个啥样的奇葩,它的注解构造了解一下

3.4K3
来自专栏醉梦轩

Linux上C语言写的简易telnet客户端

1592

扫码关注云+社区