170623、springboot编程之JdbcTemplate操作数据库
使用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操作数据库的更多相关文章
- 170622、springboot编程之JPA操作数据库
JPA操作数据库 什么事JAP?JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 1.在pom ...
- Spring Boot入门系列(十四)使用JdbcTemplate操作数据库,配置多数据源!
前面介绍了Spring Boot 中的整合Mybatis并实现增删改查.如何实现事物控制.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/c ...
- JdbcTemplate操作数据库
1.JdbcTemplate操作数据库 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中.同时,为了支 ...
- 编写DAO,通过JdbcTemplate操作数据库的实践
目的:编写DAO,通过Spring中的JdbcTemplate,对数据库中的学生数据进行增删改查操作. 要操作的数据库表结构为: 一.大体框架 1.要利用JdbcTemplate,首先要添加Sprin ...
- 使用JdbcTemplate操作数据库(二十九)
使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...
- Spring Boot教程(二十九)使用JdbcTemplate操作数据库
使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...
- JAVA - SpringBoot项目引用MyBatis操作数据库
JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...
- 界面编程之QT的数据库操作20180801
/*******************************************************************************************/ 一.数据库连 ...
- Spring4.3.1 JDBCTemplate操作数据库
个人总结,转载请注明出处:http://www.cnblogs.com/lidabnu/p/5679354.html 基于Spring4.3.1官方文档总结,官方文档链接http://docs.spr ...
随机推荐
- TensorFlow基础笔记(14) 网络模型的保存与恢复_mnist数据实例
http://blog.csdn.net/huachao1001/article/details/78502910 http://blog.csdn.net/u014432647/article/de ...
- implicit declaration of function 'copy_from_user'
内核中使用copy_from_user()和copy_to_user()函数,编译出现错误: implicit declaration of function 'copy_from_user' 需要添 ...
- linux -- 管道“|”
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入.连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入 ...
- 最简单的基于FFMPEG+SDL的音频播放器 ver2 (採用SDL2.0)
===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...
- redis的学习使用(ubuntu系统下)
1.安装redis,/usr/local/redis-4.0.1/src/redis-server启动服务,若想启动后自动退出redis控制台进行其他操作,可配置redis.config中 daem ...
- oracle的varchar2和clob类型在hibernate中使用
1.在oracle中 varchar2的最大长度为4000 bytes,即varchar2(4000),最多能储存2000个汉子或4000位的数字字母.当储存值超过时可以使用clob(Characte ...
- 【Java集合的详细研究2】浅谈Arrays.asList的使用
首先,该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表 ...
- hbase shell学习-2
一个学生成绩表的例子来演示hbase的用法. name grade course math english Tom 5 97 87 Jim 4 89 80 表的创建:语法:create '表名称',' ...
- R-CNN目标检测的selective search(SS算法)
候选框确定算法 对于候选框的位置确定问题,简单粗暴的方法就是穷举或者说滑动窗口法,但是这必然是不科学的,因为时间和计算成本太高,直观的优化就是假设同一种物体其在图像邻域内有比较近似的特征(例如颜色.纹 ...
- linux vi编辑器中,如何通过快捷键上下翻页?
需求说明: 之前在vi的时候,如果想看下一页,就直接按住 ↓ 这个箭头一直翻,现在觉得有些麻烦, 就找了下上,下翻页的快捷方式.在此记录下. 记录: 1.向下翻页快捷键(下一页):Ctrl + f 2 ...