使用JdbcTemplate操作mysql数据库!

1、在pom中引入jpa包

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

2、编写UserDao.java

package com.rick.apps.dao;

import com.rick.apps.entity.User;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository; import javax.annotation.Resource;
import java.sql.*;
import java.util.List; /**
* Desc : JdbcTemplate操作数据库
* User : RICK
* Time : 2017/8/21 16:52
*/ @Repository
public class UserDao { @Resource
private JdbcTemplate jdbcTemplate; /**
* Desc : 添加用户
* User : RICK
* Time : 2017/8/21 17:09
*/ public void addUser(User user){
String sql = "insert into user(id,user_name,pass_word) values(null,?,?)"; jdbcTemplate.update(new PreparedStatementCreator() {
@Override
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.setString(1, user.getUserName());
ps.setString(2, user.getPassWord());
return ps;
}
});
} /**
* Desc : 删除用户
* User : RICK
* Time : 2017/8/21 17:10
*/ public void delUser(int id){
final String sql = "delete from user where id=?";
jdbcTemplate.update(sql,new Object[]{id});
} /**
* Desc : 更新用户
* User : RICK
* Time : 2017/8/21 17:10
*/
public void updateUser(User user){
final String sql = "update user set user_name=?,pass_word=? where id=?";
jdbcTemplate.update(sql,new Object[]{user.getUserName(),user.getPassWord(),user.getId()});
} /**
* Desc : 查询所有用户信息
* User : RICK
* Time : 2017/8/21 17:16
*/ public List<User> findAll() {
return jdbcTemplate.query("select * from user", new UserRowMapper());
} /**
* Desc : 查询单个用户
* User : RICK
* Time : 2017/8/21 17:16
*/ public User findUserById(int id) {
return jdbcTemplate.queryForObject("select * from user where id=?", new Object[]{id}, new UserRowMapper());
} /**
* Desc : 封装用户获取数据类
* User : RICK
* Time : 2017/8/21 17:15
*/ class UserRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setUserName(rs.getString("user_name"));
user.setPassWord(rs.getString("pass_word"));
return user;
} } }

3、编写UserService.java 引入UserDao,直接调用底层的增删改查方法(此处我只写了一个保存方法)

package com.rick.apps.service;

import com.rick.apps.dao.UserDao;
import com.rick.apps.entity.User;
import com.rick.apps.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; @Transactional
@Service
public class UserService { @Autowired
private UserRepository userRepository; @Autowired
private UserDao userDao; public void save(User user){
userRepository.save(user);
} public void addUser(User user){
userDao.addUser(user);
}
}

4、编写HelloController.java,引入UserService,写保存方法add

package com.rick.apps.controller;

import com.rick.apps.entity.User;
import com.rick.apps.service.UserService;
import com.rick.common.ResultJson;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController
public class HelloController { @Resource
private UserService userService; @RequestMapping("/hello")
public String hello(){
System.out.println(1/0);
return "Hello World!";
} @GetMapping(value = "/save")
public ResultJson saveDemo(){
User user = new User();
user.setUserName("rick");
user.setPassWord("123456");
userService.save(user);
ResultJson resultJson = ResultJson.buildSuccessInstance();
return resultJson;
} @GetMapping(value = "/add")
public ResultJson addUser(){
User user = new User();
user.setUserName("anna");
user.setPassWord("123123");
userService.addUser(user);
ResultJson resultJson = ResultJson.buildSuccessInstance();
return resultJson;
}
}

5、启动项目测试

查看数据库

项目清单:

170623、springboot编程之JdbcTemplate操作数据库的更多相关文章

  1. 170622、springboot编程之JPA操作数据库

    JPA操作数据库 什么事JAP?JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 1.在pom ...

  2. Spring Boot入门系列(十四)使用JdbcTemplate操作数据库,配置多数据源!

    前面介绍了Spring Boot 中的整合Mybatis并实现增删改查.如何实现事物控制.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/c ...

  3. JdbcTemplate操作数据库

    1.JdbcTemplate操作数据库 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中.同时,为了支 ...

  4. 编写DAO,通过JdbcTemplate操作数据库的实践

    目的:编写DAO,通过Spring中的JdbcTemplate,对数据库中的学生数据进行增删改查操作. 要操作的数据库表结构为: 一.大体框架 1.要利用JdbcTemplate,首先要添加Sprin ...

  5. 使用JdbcTemplate操作数据库(二十九)

    使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...

  6. Spring Boot教程(二十九)使用JdbcTemplate操作数据库

    使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...

  7. JAVA - SpringBoot项目引用MyBatis操作数据库

    JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...

  8. 界面编程之QT的数据库操作20180801

    /*******************************************************************************************/ 一.数据库连 ...

  9. Spring4.3.1 JDBCTemplate操作数据库

    个人总结,转载请注明出处:http://www.cnblogs.com/lidabnu/p/5679354.html 基于Spring4.3.1官方文档总结,官方文档链接http://docs.spr ...

随机推荐

  1. 更改HDFS权限

    hdfs dfs -chmod -R 755 / 之前执行过这条语句,但是总是提示: 15/05/21 08:10:18 WARN util.NativeCodeLoader: Unable to l ...

  2. PHP 初探

    由于不可描述的原因,需要运行一个PHP项目,折腾了半天却无甚效果---概念缺失. 一怒之下,决定还是先了解下PHP本身再说.先得感谢下W3School,介绍简洁明了. PHP是脚本语言! PHP不需要 ...

  3. AMD和RequireJS初识----优化Web应用前端(按需动态加载JS)

    RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一.最新版本的RequireJS压缩后只有14K,堪称非常轻量.它还同时可以和其他的框架协同工作,使用Re ...

  4. 10篇写给Git初学者的最佳教程(转)

    身为网页设计师或者网页开发者的你,可能已经听说过Git这个正快速成长的版本控制系统.它由GitHub维护:GitHub是一个开放性的.存储众人代码的网站.如果你想学习如何使用Git,请参考本文.在文章 ...

  5. [CS]C#操作word

    近期在做的项目已经改了好几版,近期这一版用到了word,当然不是直接使用word,而是使用第三方的ActiveX控件:dsoframer.ocx.此控件的使用和其它控件的使用流程没有不论什么差别.接下 ...

  6. MySQL(二)之服务管理与配置文件修改和连接MySQL

    上一篇给大家介绍了怎么在linux和windows中安装mysql,本来是可以放在首页的,但是博客园说“安装配置类文件”不让放在首页.接下来给大家介绍一下在linux和windows下MySQL的一下 ...

  7. 解决 openpyxl 垂直分页符和水平分页符同时添加的问题

    前言 十天前知乎上有人提问 python:openpyxl模块怎么给表格添加分页符?实现分页打印功能?,看到问题之后,我很快的给他了一个如何添加垂直分页符或水平分页符的示例,你以为问题就结束了?我是这 ...

  8. mysqldump备份时,--master-data选项的作用是什么?

    需求描述: 今天在研究mysql的备份和恢复,使用mysqldump备份数据库时,用到--master-data选项, 在此,测试并记录选项的作用 测试过程: 1.不使用--master-data进行 ...

  9. css hack整理 (摘)

    CSS Hack Table     Y 渲染 N 不渲染 H 部分版本或部分属性渲染 B 样式失效   windows Mobile Linux Mac IE Firefox Chrome Safa ...

  10. Effective C++ Item 17 Store newed objects in smart pointer in standalone statements

    If you trying to do multiple things in one statement, you should think carefully abnormal behavior e ...