内容简介:jpa做的项目,当条件查询多起来,还不固定的时候,查询方法就不好写了,又不好改成mybatis,那么JdbcTemplate将是个不错的选择表结构对应的实体类
jpa做的项目,当条件查询多起来,还不固定的时候,查询方法就不好写了,又不好改成mybatis,那么JdbcTemplate将是个不错的选择
表结构
CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `category` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
对应的实体类
public class Book implements Serializable { private Integer id; private String name; private String category; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", category='" + category + '\'' + '}'; } }
我这环境是spring-boot项目,依赖如下
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
文原接链: https://tomoya92.github.io/2019/05/31/spring-jdbc-template/
CRUD 用法
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest public class JdbctemplateDemoApplicationTests { @Autowired private JdbcTemplate jdbcTemplate; // 保存数据 @Test public void save() { String sql = "insert into book (name, category) values (?, ?)"; int update = jdbcTemplate.update(sql, "Spring", "java"); System.out.println(update); } // 批量保存数据 @Test public void batchSave() { String sql = "insert into book (name, category) values (?, ?)"; List<Object[]> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { Object[] objects = new Object[2]; objects[0] = "Spring" + i; objects[1] = "java"; list.add(objects); } int[] update = jdbcTemplate.batchUpdate(sql, list); for (int i = 0; i < update.length; i++) { System.out.println(update[i]); } } // 根据条件更新 @Test public void update() { String sql = "update book set category = ? where name = ?"; int update = jdbcTemplate.update(sql, "Java", "Spring"); System.out.println(update); } // 批量更新 @Test public void batchUpdate() { String sql = "update book set category = ? where name = ?"; List<Object[]> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { Object[] objects = new Object[2]; objects[0] = "Java"; objects[1] = "Spring" + i; list.add(objects); } int[] update = jdbcTemplate.batchUpdate(sql, list); for (int i = 0; i < update.length; i++) { System.out.println(update[i]); } } // 根据id查询book对象 @Test public void queryForObject() { String sql = "select * from book where id = ?"; Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Book.class), 1); System.out.println(book); } // 查询数量 @Test public void queryForInt() { String sql = "select count(1) from book"; Integer count = jdbcTemplate.queryForObject(sql, Integer.class); System.out.println(count); } // 查询返回列表(定义好的bean) // 如果不指定new BeanPropertyRowMapper<>(Book.class)则返回List<Map<String, Object>>格式的数据 @Test public void queryForList() { String sql = "select * from book where category = ?"; // queryForList() 方法没法返回自定义的bean列表,不过用这个query方法可以 List<Book> books = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Book.class), "Java"); System.out.println(books); } // 根据id删除 @Test public void delete() { String sql = "delete from book where id = ?"; int update = jdbcTemplate.update(sql, 1); System.out.println(update); } // 批量删除 @Test public void batchDelete() { String sql = "delete from book where id = ?"; List<Object[]> list = new ArrayList<>(); for (int i = 2; i < 7; i++) { Object[] objects = new Object[1]; objects[0] = i; list.add(objects); } int[] update = jdbcTemplate.batchUpdate(sql, list); for (int i = 0; i < update.length; i++) { System.out.println(update[i]); } } }
原文链接:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- UniversalImageLoader的用法总结
- VIM用法总结(备忘)
- JSP基本语句用法总结
- Laravel 事件系统用法总结
- sharp图片库用法总结
- ????️scss/less基本用法总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C算法(第二卷:图算法)(第3版)
塞德威克(Sedgewick Robert) / 周良忠 / 第1版 (2004年1月1日) / 2004-4 / 38.0
《C算法(第2卷)(图算法)(第3版)(中文版)》所讨论的图算法,都是实际中解决图问题的最重要的已知方法。《C算法(第2卷)(图算法)(第3版)(中文版)》的主要宗旨是让越来越多需要了解这些算法的人的能够掌握这些方法及基本原理。书中根据基本原理从基本住处开始循序渐进地讲解,然后再介绍一些经典方法,最后介绍仍在进行研究和发展的现代技术。精心挑选的实例、详尽的图示以及完整的实现代码与正文中的算法和应用......一起来看看 《C算法(第二卷:图算法)(第3版)》 这本书的介绍吧!