当前位置: 首页 > news >正文

jdbctemplate mysql 分页查询 返回list对象_Spring之jdbcTemplate:查询的三种方式(单个值、单个对象、对象集合)...

1 packagehelloworld.jdbcTemplate;2

3 importorg.springframework.jdbc.core.JdbcTemplate;4

5 import java.sql.*;6 importjava.util.List;7

8 /**

9 * 功能:通过JdbcTemplate实现查询操作10 * 查询结果需要自己封装(实现RowMapper接口)11 */

12

13 public classJdbcTemplateDemo2 {14 //JdbcTemplate使用步骤:15 //1、导入jar包;2、设置数据库信息;3、设置数据源;4、调用jdbcTemplate对象中的方法实现操作

16

17 public static voidmain(String[] args) {18 //设置数据库信息和据源

19 JdbcTemplateObject jdbcTemplateObject = newJdbcTemplateObject();20 JdbcTemplate jdbcTemplate =jdbcTemplateObject.getJdbcTemplate();21

22 //插入数据23 //insertData();24

25 //查询返回某一个值:查询表中数据总数

26 queryForOne(jdbcTemplate);27

28 //查询返回对象

29 queryForObject(jdbcTemplate);30

31 //查询返回list集合

32 queryForList(jdbcTemplate);33

34 //使用JDBC底层实现查询

35 queryWithJDBC();36 }37

38 //插入数据

39 public static voidinsertData() {40 JdbcTemplateObject jdbcTemplateObject = newJdbcTemplateObject();41 JdbcTemplate jdbcTemplate =jdbcTemplateObject.getJdbcTemplate();42 //调用jdbcTemplate对象中的方法实现操作

43 String sql = "insert into user value(?,?,?)";44 //表结构:id(int、自增),name(varchar 100),age(int 10)

45 int rows = jdbcTemplate.update(sql, null, "Tom", 35);46 System.out.println("插入行数:" +rows);47 }48

49 /**

50 * 查询返回某一个值:查询表中数据总数51 */

52 public static voidqueryForOne(JdbcTemplate jdbcTemplate) {53 String sql = "select count(*) from user";54 //调用方法获得记录数

55 int count = jdbcTemplate.queryForObject(sql, Integer.class);56 System.out.println("数据总数:" +count);57 }58

59 /**

60 * 功能:查询返回单个对象61 * 步骤:新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象62 */

63 public static voidqueryForObject(JdbcTemplate jdbcTemplate) {64 String sql = "select * from user where name = ?";65 //新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象

66 User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");67 System.out.println(user);68 }69

70 /**

71 * 功能:查询返回对象集合72 * 步骤:新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象73 */

74 public static voidqueryForList(JdbcTemplate jdbcTemplate) {75 String sql = "select * from user";76 //第三个参数可以省略

77 List users = jdbcTemplate.query(sql, newMyRowMapper());78 System.out.println(users);79 }80

81 /**

82 * 使用JDBC底层实现查询83 */

84 public static voidqueryWithJDBC() {85 Connection conn = null;86 PreparedStatement psmt = null;87 ResultSet rs = null;88 String jdbcUrl = "jdbc:mysql://192.168.184.130:3306/gxrdb";89

90 try{91 //加载驱动

92 Class.forName("com.mysql.jdbc.Driver");93 //创建连接

94 conn = DriverManager.getConnection(jdbcUrl, "root", "root");95 String sql = "select * from user where name = ?";96 //预编译sql

97 psmt =conn.prepareStatement(sql);98 //从1开始,没有就不需要

99 psmt.setString(1, "Tom");100 //执行sql

101 rs =psmt.executeQuery();102 //int num = psmt.executeUpdate();//增删改,返回操作记录数103

104 //遍历结果集

105 while(rs.next()) {106 //根据列名查询对应的值,也可以是位置序号

107 String name = rs.getString("name");108 String age = rs.getString("age");109 System.out.println(name);110 System.out.println(age);111 }112 } catch(Exception e) {113 e.printStackTrace();114 } finally{115 try{116 rs.close();117 psmt.close();118 conn.close();119 } catch(SQLException e) {120 e.printStackTrace();121 }122 }123 }124

125 }

相关文章:

  • mysql数据库备份 dump_mysqldump备份和恢复MySQL数据库
  • java servlet 3.0_Java Servlet和Servlet 3.0的新特性
  • java 回溯_正则表达式知识详解之回溯引用 (java版示例)
  • java后台线程_67.Java后台线程
  • java 远程 shell脚本_Java 远程调用 shell脚本
  • python自动化数据驱动_Selenium2+python自动化之数据驱动(ddt)
  • java圆和椭圆的关系_圆与椭圆 - brifuture - 博客园
  • java attributelist_java集合类(二)List学习
  • java ccf认证解答_CCF认证考试(java)---窗口
  • java 平滑 停止_设计Java应用程序的平滑停止
  • java开发按键精灵_Java 按键精灵
  • java同步开销_java – 为什么对Map的同步访问会增加大量的开销
  • java字节码常量池_Java字节码常量池深度剖析与字节码整体结构分解
  • java控制语句案例_Java基础之流程控制(示例代码)
  • mysql 怎么设置ip地址_Mysql如何设置用户指定ip地址操作数据库
  • canvas 五子棋游戏
  • ERLANG 网工修炼笔记 ---- UDP
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JavaScript服务器推送技术之 WebSocket
  • React 快速上手 - 07 前端路由 react-router
  • session共享问题解决方案
  • Spring Boot MyBatis配置多种数据库
  • 阿里云购买磁盘后挂载
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 我从编程教室毕业
  • 异步
  • 你对linux中grep命令知道多少?
  • scrapy中间件源码分析及常用中间件大全
  • 通过调用文摘列表API获取文摘
  • ​LeetCode解法汇总518. 零钱兑换 II
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (vue)页面文件上传获取:action地址
  • (ZT)出版业改革:该死的死,该生的生
  • (差分)胡桃爱原石
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (论文阅读11/100)Fast R-CNN
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (算法)前K大的和
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)Mysql的优化设置
  • (转)Unity3DUnity3D在android下调试
  • ../depcomp: line 571: exec: g++: not found
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .Net接口调试与案例