Spring Boot整合jdbctemplate
来源:互联网 发布:手机淘宝评价中心在哪 编辑:程序博客网 时间:2024/05/21 10:52
jdbctemplate在之前的开发中用的还是比较多的,它和mybatis有点类似都是需要自己写sql语句,也是对jdbc做了封装,缺点也比较明显就是移植性有些差。但日常的中小型开发也够用,这次就来一个Spring Boot整合jdbctemplate实现增删改查的小例子
一 依赖的引入
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId></dependency>
二 配置文件
#DataBase DataSourcesspring.datasource.url = jdbc:mysql://localhost:3306/springbootspring.datasource.username = rootspring.datasource.password = 123456spring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.max-active=20spring.datasource.max-idle=8spring.datasource.min-idle=8spring.datasource.initial-size=10
package com.debug.pojo;public class UserInfo {private int id;private String name;private String address;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}
四 数据库访问层DAO和service
package com.debug.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.List;import javax.annotation.Resource;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.jdbc.support.GeneratedKeyHolder;import org.springframework.jdbc.support.KeyHolder;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import com.debug.pojo.UserInfo;import com.mysql.jdbc.Statement;@Repositorypublic class UserDao {@Resourceprivate JdbcTemplate jdbcTemplate;public UserInfo createUser(UserInfo u) {String sql = "insert into user(name,address) values(?,?)";KeyHolder holder=new GeneratedKeyHolder();jdbcTemplate.update(new PreparedStatementCreator() {public PreparedStatement createPreparedStatement(Connection conn) throws SQLException { PreparedStatement ps=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); ps.setString(1, u.getName()); ps.setString(2, u.getAddress()); return ps;}}, holder);int insertId=holder.getKey().intValue();u.setId(insertId);return u;}public void deleteUser(int id) {String sql="delete from user where id=?";jdbcTemplate.update(sql, new Object[] {id},new int[] {java.sql.Types.INTEGER});}public void updateUser(UserInfo u) {String sql="update user set name=? where id=?";jdbcTemplate.update(sql, new Object[] {u.getName(),u.getId()});}public List<UserInfo> queryUser(int id) {String sql="select * from user where id=?";//RowMapper<UserInfo> rowMapper = new BeanPropertyRowMapper<>(UserInfo.class);return jdbcTemplate.query(sql,new Object[] {id},new UserRowMapper());} class UserRowMapper implements RowMapper<UserInfo>{public UserInfo mapRow(ResultSet res, int arg1) throws SQLException {UserInfo u=new UserInfo();u.setId(res.getInt("id"));u.setName(res.getString("name"));u.setAddress(res.getString("address"));return u;}}}
package com.debug.service;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.debug.dao.UserDao;import com.debug.pojo.UserInfo;@Servicepublic class UserService { @Resource private UserDao userDao; public UserInfo createUser(UserInfo u) {return userDao.createUser(u); } public void deleteUser(int id) { userDao.deleteUser(id); } public void updateUser(UserInfo u) { userDao.updateUser(u); } public List<UserInfo> queryUser(int id){ return userDao.queryUser(id); }}
五 控制器controller
package com.debug.controller;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.debug.pojo.UserInfo;import com.debug.service.UserService;@RestController@RequestMapping("/user")public class UserController {@Resourceprivate UserService userService;@RequestMapping("/createUser")public UserInfo createUser() {UserInfo u=new UserInfo();u.setName("林志玲");u.setAddress("上海浦东");UserInfo u1=userService.createUser(u);//System.out.println(u1.getId());return u1;}@RequestMapping("/deleteUser")public String deleteUser() {userService.deleteUser(15);return "删除成功";}@RequestMapping("/updateUser")public String updateUser() {UserInfo u1=new UserInfo();u1.setId(16);u1.setName("Justin Timberlake");userService.updateUser(u1);return "修改成功";}@RequestMapping("/queryUser")public List<UserInfo> queryUser(){return userService.queryUser(16);}}
上面的几段代码难度比较大的主要在DAO里,主要是查询结果集的方法封装和数据保存返回主键的那个插入方法,关于这点如果不明白就百度一下
阅读全文
0 0
- Spring Boot整合jdbctemplate
- Spring Boot 使用JdbcTemplate
- spring boot之JdbcTemplate
- Spring Boot (六) JdbcTemplate
- spring boot jdbctemplate使用
- spring boot集成JdbcTemplate
- Spring boot 五 jdbcTemplate
- spring boot学习系列:spring boot与jdbcTemplate的整合案例
- Spring 整合JDBCTemplate
- spring boot中使用JdbcTemplate
- Spring Boot JdbcTemplate ACE 模板
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- spring boot + JdbcTemplate 使用druid数据源
- Spring Boot 配置JdbcTemplate访问数据库
- Spring Boot中使用JdbcTemplate访问数据库
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- Spring Boot中使用JdbcTemplate访问数据库
- Spring boot 与 JdbcTemplate 一起工作
- springboot 在@Autowire无法注入bean时的临时处理办法
- 排列
- Jenkins
- 原码、反码与补码
- ES6--异步操作之Promise
- Spring Boot整合jdbctemplate
- 简单的数据备份与恢复
- flash真的会被淘汰掉吗?
- VS 2013各版本的激活码
- 清除浮动方法总结
- 【爬虫学习2】Requests cookies爬取知乎个人timeline
- rand5()生成rand7()
- spring batch + spring boot 配置
- java 1054. 求平均值