[ibatis]ibatis的配置和测试,ibatis与springMVC集成后的配置与测试(二)

使用与非门搭建RS和D锁存器 RS(Reset-Set)锁存器是一种基本的数字电路元件,用于存储一位二进制数据。它由两个异步输入信号组成,分别是复位(Reset)和设定(Set)。RS锁存器有时也被称为SR锁存器。这种锁存器有两个输出,一个是Q输出,表示当前存储的数据,另一个是Q'输出,表示Q输出的补码。这两个输出的状态由输入信号的组合决定。Set(S)输入: 当S为高电平时,设置Q为1。Reset(R)输入: 当R为高电平时,复位Q为0。Q输出: 表示锁存器当前存储的值。Q'输出: 是Q的补码,即Q的反值。 阅读详情

二、ibatis与springMVC集成后的配置和测试


1. springMVC需要的jar包(3.1)

再导入commons-pool.jar,commons-dbcp.jar,commons-logging-1.1.1.jar三个与连接池相关的包


2. 修改对应的数据访问实现类StudentDAOImpl.java,并创建业务层接口和实现类(代码省略)

package com.wendellup.dao.impl;


import java.util.List;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.wendellup.dao.IStudentDAO;
import com.wendellup.entity.Student;

@Repository
public class StudentDAOImpl extends SqlMapClientDaoSupport implements IStudentDAO{
	@Autowired 
	public void setSqlMapClientForAutowire(SqlMapClient sqlMapClient) { 
		 super.setSqlMapClient(sqlMapClient); 
	} 
	
	@Autowired 
	public void setDataSourceForAutowire(DataSource dataSource) { 
		super.setDataSource(dataSource);
	}
	
	public List<Student> queryAllStudent() throws Exception {
		List<Student> studentList = null;
		try {
			//studentList = IbatisUtil.getClient().queryForList("selectAllStudent");
			SqlMapClient client = getSqlMapClientTemplate().getSqlMapClient();
			studentList = client.queryForList("selectAllStudent");
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		}
		return studentList;
	}
	
	public int addStudent(Student student) throws Exception {
		int key;
		try {
			//key = (Integer) IbatisUtil.getClient().insert("insertStudent",student);
			SqlMapClient client = getSqlMapClientTemplate().getSqlMapClient();
			key = (Integer) client.insert("insertStudent",student);
		} catch (Exception e) {
			e.printStackTrace();
			throw e;
		}
		return key;
	}

}


3. 创建spring容器配置文件applicationContext.xml,让其管理ibatis初始化,对应的SqlMapConfig.xml也要修改

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
	<!-- 激活spring注解 -->
	<!-- <context:annotation-config/>  -->
	
	<!-- 启动扫描所有的biz层,把作了注解的类转换为bean -->
	<context:component-scan base-package="com.wendellup.biz" /> <!-- -->
	
	<!-- 启动扫描所有的dao层,把作了注解的类转换为bean -->
	<context:component-scan base-package="com.wendellup.dao" /> <!-- -->
	
	<!--设置配置文件 -->
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath*:ibatis/db.properties</value>
			</list>
		</property>
	</bean>
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="maxActive" value="20" />
		<property name="maxIdle" value="20" />
		<property name="maxWait" value="3000" />
		<property name="testWhileIdle" value="true" />
		<property name="timeBetweenEvictionRunsMillis" value="3600000" />
		<!-- <property name="validationQuery" value="select 1 from student" /> -->
		<property name="removeAbandoned" value="true" />
		<property name="removeAbandonedTimeout" value="1" />
		<property name="driverClassName"
			value="${driver}" />
		<property name="url" value="${url}" />
		<property name="username" value="${username}" />
		<property name="password" value="${password}" />
	</bean>
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<bean id="sqlMapClient" 
		class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation"
			value="classpath:ibatis/SqlMapConfig.xml" />
	</bean>
	
</beans>

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
	<sqlMap resource="ibatis/Student.xml" />
</sqlMapConfig>

4. 创建集成后的测试类TestSpring.java

package test.wendellup;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.wendellup.biz.IStudentService;

public class TestSpring {
	public static void main(String[] args) throws Exception {
		ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
//		System.out.println(ac);
//		IStudentDAO iStudentDAO = (IStudentDAO) ac.getBean("StudentServiceImpl");
		IStudentService iStudentService = (IStudentService) ac.getBean("studentServiceImpl");
		System.out.println(iStudentService);
//		System.out.println(iStudentService.queryAllStudent().size());
	}
}


若能成功获取到数据库中的值,则进行下一步

5. 搭建好springMVC的环境就可在jsp中获取到后台的值,此处省略。。。

项目的代码地址:

http://pan.baidu.com/share/link?shareid=141111&uk=3475027816


触发器电路仿真与硬件实现 RS D触发器 阅读详情

相关推荐

工业控制中的信号优先级之争:SR与RS触发器在ST语言中的实现差异

本文深入探讨了工业控制中SR与RS触发器在ST语言中的实现差异,重点分析了置位与复位信号的优先级处理策略。通过对比TIA Portal和CODESYS平台的实现方式,提供了急停系统和过程保持系统的典型应用案例,帮助工程师优化控制系统设计,确保设备安全与可靠性。

weixin_30897233的博客 496

spring3学习笔记(2)-集成ibatis3进行单元测试

NULL 博文链接:https://copperfield.iteye.com/blog/1170901

从RS触发器到JK触发器:硬件搭建与原理剖析

时序逻辑电路是数字系统的核心,其基础在于能够存储一位二进制信息的存储单元——触发器。从最基本的RS触发器出发,通过引入反馈机制解决了输入同时有效时的状态不确定问题,从而衍生出功能更完备的JK触发器。JK触发器集成了保持、置位、复位和翻转四种功能,其技术价值在于为构建计数器、寄存器和复杂状态机提供了可靠且功能齐全的基本单元。在工程实践中,通过使用74LS00与非门等基础元件,可以亲手搭建并验证JK触发器的逻辑功能,深刻理解时钟边沿触发与电平触发的区别,以及如何通过反馈实现状态翻转。这种从门级电路入手的硬件实验

weixin_34059951的博客 427

web工程中spring+ibatis的单元测试

   为了保证代码的正确,软件的质量,单元测试几乎是每个程序员都要面临的工作了;而开发中大部分的工作都涉及数据库的操作,也就是平时经常可以看到的DAO了;由于是对数据库的操作,就必然有事务的问题了;如果是启动应用服务器,然后再模拟一个请求来验证Dao中的代码写得是否正确的话,那么面临的问题 首先就是 速度的问题也就是效率的问题,如果你的应用很大的话那么但就tomcat的启动就花费了一分钟左右的时间...

qinjingkai的专栏 351

数字电路触发器核心:RS/D/JK 3 种触发器特性对比与选型指南

本文深入解析数字电路中RS、D、JK三种触发器的核心特性与工程应用,提供详细的选型指南和解决方案。从基础原理到FPGA实现,涵盖不定态处理、时序优化等关键技术,帮助工程师根据实际需求选择最适合的触发器类型,提升数字系统设计的稳定性和效率。

weixin_30383279的博客 469

用74LS00芯片和Logisim,手把手教你搭建RS与D触发器(附仿真文件)

本文详细介绍了如何使用74LS00芯片和Logisim软件从零搭建RS与D触发器,包括仿真和硬件实现的全流程。通过逐步指导,读者将掌握时序电路的基础知识,并学会在实际硬件中应用这些概念,特别适合电子工程初学者。

流云 437

Spring + iBATIS完整示例

最近研究了一下Spring + iBATIS。发现看别人的例子是一回事,自己写一个完整的应用又是另外一回事。自己受够了网上贴的一知半解的代码。 iBATIS是一个持久化框架,封面了sql过程,虽然sql语句需要自己写。另外,我觉得对于初学者来说,完整的示例真的很重要,不然不知道文件是如果放置的。 所有的第三包都需要加上,spring、ibatis.-2.3.3.720.jar、

maguanghui_2012的专栏 721

SR 触发器指令

在 S7-200 系列 PLC 中 (包括 S7-200 Smart),SR 触发器通常以功能块 (Function Block) 的形式提供,或者以指令的形式在梯形图 (LAD) 或语句表 (STL) 编程语言中使用。Q 的状态根据 S 和 R 输入的状态变化而变化,并保持状态,即使 S 和 R 输入都变为无效状态,Q 的状态也会保持不变,直到新的有效输入信号到来。换句话说,触发器能够“记住”之前的输入信号,并保持输出状态,直到有新的输入信号改变其状态。: SR 触发器是其中一种最基础的触发器类型。

ZhuBin365的博客 2463

Spring+iBatis环境下的单元测试问题

在利用Spring和iBatis做一个应用时,用到了数据库连接池。在Spring配置文件中,jndi配置如下  jdbc/mysql    但是在junit进行单元测试时,出现了问题。 org.springframework.jndi.JndiLookupFailureException:

Armstrong的专栏 4945

从仿真到面包板:手把手教你用Multisim和74LS00搭建RS与D触发器(附完整接线图)

本文详细介绍了如何使用Multisim软件和74LS00芯片从仿真到实际搭建RS触发器和D触发器电路的完整过程。通过清晰的接线图和实用技巧,帮助电子工程初学者掌握电路仿真与硬件实现的关键步骤,特别适合数字电路设计的学习和实践。

weixin_30333885的博客 371

ST语言中置位与复位的实战技巧:从基础到高级应用(附CODESYS示例)

本文深入探讨了ST语言中置位与复位的实战技巧,从基础概念到高级应用场景,包括优先级处理、边沿检测技术和CODESYS示例。通过详细的代码示例和最佳实践,帮助工程师编写更可靠、高效的自动化控制程序,特别适合工业自动化领域的PLC程序员参考。

weixin_30955617的博客 493

别再死记硬背了!用Python模拟RS、JK、D、T触发器,帮你彻底搞懂时序逻辑

本文介绍如何使用Python动态模拟RS、JK、D、T触发器等时序逻辑电路,通过可视化学习法帮助读者直观理解触发器的行为差异。文章提供了详细的代码示例和仿真框架,展示了如何从基础RS触发器到复杂T'触发器的实现,并探讨了它们在移位寄存器、二进制计数器等实际应用中的使用。

weixin_30879833的博客 403

JK触发器状态转换图解:数字电路实验新手教程

手把手带你画出JK触发器的状态转换图,结合真值表与时序波形,厘清置位、复位、翻转和保持四种工作模式。专为数字电路实验新手设计,强调实操中易错点与逻辑验证技巧。

weixin_29859471的博客 276

CD4001 或非门构建 RS 触发器:解析人体反应测试器中的状态锁定与解除机制

本文详细解析了使用CD4001或非门构建RS触发器在人体反应测试器中的应用,重点探讨了状态锁定与解除机制的工作原理。通过真值表对比、电路工作流程分解及防亚稳态设计,为数字电路设计者提供了实用的技术指导和优化方案,帮助提升测试器的稳定性和响应速度。

weixin_34214500的博客 327

555定时器单稳态触发器:从原理到实践,掌握脉冲生成与延时控制

在数字电路与嵌入式系统设计中,触发器是构成时序逻辑的基础单元,用于存储和同步二进制状态。其中,单稳态触发器作为一种特殊的触发器,具有一个稳定状态和一个暂稳态,能够在外部触发信号作用下,输出一个宽度精确的脉冲。其核心原理是利用RC定时网络控制暂稳态的持续时间,通过内部比较器和RS触发器的协同工作实现状态的自动翻转。这一技术价值在于能以极低成本实现精确的定时、延时和脉冲整形功能,广泛应用于按键消抖、上电复位、脉冲宽度调制等场景。本文以经典的555定时器为核心,深入剖析其内部结构,详细讲解如何配置外围电阻电容以构

cuixie2370的博客 307

数字电路核心存储单元:双稳态触发器原理、设计与工程实践

在数字电路与计算机体系结构中,存储单元是实现数据暂存、状态保持和时序控制的基础。其核心原理在于利用反馈环路构建双稳态电路,从而在无外部输入时能稳定保持‘0’或‘1’的逻辑状态。这一特性使得触发器成为寄存器、计数器、状态机等复杂数字模块的基石,支撑了从处理器到FPGA的各类数字系统设计。从工程实践角度,理解触发器的时序特性至关重要,尤其是建立时间与保持时间,它们直接关系到电路在时钟边沿采样的可靠性,是避免亚稳态、确保系统稳定的关键。本文聚焦于双稳态触发器的内部工作机制,深入剖析了RS触发器的禁止态问题以及D触

weixin_34413103的博客 460

从LED闪烁看时序逻辑:一个面包板实验,彻底搞懂RS、D、JK触发器的区别与联系

本文通过面包板实验,直观展示了RS、D、JK触发器在时序控制中的差异与联系。从LED闪烁现象出发,深入解析各类触发器的工作原理,包括RS触发器的电平触发、D触发器的时钟同步以及JK触发器的灵活控制。实验结合理论,帮助读者彻底理解数字电路中的时序逻辑设计。

weixin_33657090的博客 443

D触发器转换SR/JK/T触发器:原理、实现与工程实践

在数字电路设计中,触发器是构成时序逻辑的基础存储单元,其核心功能是在时钟边沿锁存数据。D触发器因其结构简单、行为直观,成为现代同步系统设计的基石,其原理基于时钟边沿采样输入数据并更新输出。通过组合逻辑电路模拟目标触发器的特征方程,可以实现不同触发器类型之间的功能转换,这一技术对于理解时序电路底层行为、优化资源利用及维护遗留设计具有重要价值。例如,在FPGA开发或ASIC设计中,当目标工艺库仅提供D触发器单元时,通过组合逻辑实现JK触发器的翻转功能或T触发器的保持/翻转特性,能够满足特定计数器或状态机的设计需

weixin_30788239的博客 360
上一篇: [ibatis][springMVC]ibatis的配置和测试,ibatis与springMVC集成后的配置与测试(一)
下一篇: [ibatis]动态映射
wendellup
博客等级 码龄16年 54粉丝 49原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值