Spring中的jdbcTemplate.queryForObject()使用

news/2024/5/18 23:11:19 标签: spring, jdbc

用JavaSE写了个Spring的程序,搞了一下午,主要是对jdbc的配置和访问有问题

1,老版本的书里很多使用的是simpleJdbcTemplate,找了半天,发现新版的Spring并没有这个类,取而代之是org.springframework.jdbc.core.JdbcTemplate。功能好像是simpleJdbcTemplate超集。

2,jdbcTemplate.queryForObject()的使用,在Spring in action第三版中文版中,采用了ParameterizedRowMapper<>,发现新版的Spring又没有。网上找了很多博客上说直接使用jdbcTemplate.queryForObject(sql,User.class)可以,我的程序中User是一个简单的bean,只有name和password两个成员以及对应的setter。发现这种方式运行报错:Incorrect column count: expected 1, actual 2。我User明明有两个变量!

多次尝试后,发现以下写法可正常访问

String string="select * from stutable where name='sgzhang3'";
		User user=jdbcTemplate.queryForObject(string, new RowMapper<User>(){
			@Override
			public User mapRow(ResultSet arg0, int arg1) throws SQLException {
				User user=new User();
				user.setName(arg0.getString("name"));
				user.setPassword(arg0.getString("password"));
				return user;
			}
		});

可以看出,正确访问的关键在于需要实现RowMapper接口!


http://www.niftyadmin.cn/n/1328665.html

相关文章

Android5.0源码分析—— Zygote进程分析

1 Zygote简介 Android的应用程序一般都是由Java语言编写而成的&#xff0c;这样的应用程序需要运行在独自的Dalvik虚拟机之上&#xff08;当然&#xff0c;5.0好像默认了ART了&#xff09;。但是&#xff0c;如果在每一个进程启动时都在物理内存中创建和初始化一个Dalvik…

Android6.0的phone应用源码分析(1)——智能手机的硬件结构介绍

1 智能手机的硬件结构介绍 目前智能手机的硬件基本结构大多采用的是双处理器架构&#xff1a;应用处理器AP和基带处理器BP。其中应用处理器运行开放式操作系统以及操作系统之上的各种应用&#xff0c;负责了整个系统的控制&#xff1b;基带处理器则负责基本的通信功能&…

Android6.0的phone应用源码分析(2)——phone相关进程启动分析

1.1 PhoneApp启动 PhoneApp进程是在系统开机时启动的&#xff0c;和其他的很多服务应用或Activity一样&#xff0c;它是由AMS在SystemReady后启动的。其AndroidManifest.xml文件中有如下配置&#xff1a; <application android:name"PhoneApp" …

Android6.0的phone应用源码分析(3)——phone 拨号UI分析

1.1 原生界面 Phone应用的UI设计直接关系到后面的去来电流程&#xff0c;因此有必要对Phone的UI做一定的介绍。下面是Android6.0的原生拨号界面&#xff1a; 1.2 应用界面 Phone的UI入口可以认为是DialtactsActivity.java的onCreate()。 Override protected void onCr…

Android6.0的phone应用源码分析(4)——phone拨号流程分析

1.1 Dialer拨号 拨打电话需要开启Dialer(拨号盘)&#xff0c;当用户触发onClick事件&#xff0c;DialtactsActivity的onClick()方法被触发&#xff1a; public void onClick(View view) { switch (view.getId()) {//对触发的buttonID进行判断 case R.id…

Android6.0的phone应用源码分析(5)——RIL层分析

1.1 RIL概述 由于Android开发者使用的Modem是不一样的&#xff0c;不同方案使用的Modem也不一样&#xff0c;GSM和CDMA就差别更大了&#xff0c;所以各种指令格式&#xff0c;初始化序列都不一样&#xff0c;为了消除这些差别&#xff0c;Android将ril做了一个抽象&#xff…

Android6.0的Looper源码分析(1)

1 Looper简介 Android在Java标准线程模型的基础上&#xff0c;提供了消息驱动机制&#xff0c;用于多线程之间的通信。而其具体实现就是Looper。 Android Looper的实现主要包括了3个概念&#xff1a;Message&#xff0c;MessageQueue&#xff0c;Handler&#xff0c;Loo…

Android中的网络管理源码分析--netd

1 Netd简介 Netd是Android的网络守护进程。NetD是个网络管家&#xff0c;封装了复杂的底层各种类型的网络(NAT&#xff0c;PLAN&#xff0c;PPP&#xff0c;SOFTAP&#xff0c;TECHER&#xff0c;ETHO&#xff0c;MDNS等)&#xff0c;隔离了底层网络接口的差异&#xff0…