BaseDao

package wl.oa.dao.base;

public interface BaseDao<T>{
public void saveEntry(T t);
}

BaseDaoImpl

package wl.oa.dao.base.impl;

import java.lang.reflect.ParameterizedType;

import javax.annotation.Resource;

import org.springframework.orm.hibernate3.HibernateTemplate;

import wl.oa.dao.base.BaseDao;

public class BaseDaoImpl<T> implements BaseDao<T>{

    @Resource(name="hibernateTemplate")
private HibernateTemplate hibernateTemplate;
public void saveEntry(T t) {
// TODO Auto-generated method stub
this.hibernateTemplate.save(t);
} }

BaseService

package wl.oa.service.base;

public interface BaseService<T> {

      public void saveEntry(T t);

}

BaseServiceImpl

package wl.oa.service.base.impl;

import javax.annotation.Resource;

import org.springframework.transaction.annotation.Transactional;

import wl.oa.dao.base.BaseDao;
import wl.oa.service.base.BaseService; public class BaseServiceImpl<T> implements BaseService<T>{ @Resource//(别加 name属性)
private BaseDao baseDao;
@Transactional(readOnly=false)
public void saveEntry(T t) {
// TODO Auto-generated method stub
this.baseDao.saveEntry(t);
} }

Test

package wl.oa.test;

import org.junit.Test;

import wl.oa.dao.PersonDao;
import wl.oa.domain.Person;
import wl.oa.service.PersonService; public class PersonTest extends BaseSpring{ @Test
public void testsavePerson(){ PersonService personService=(PersonService) context.getBean("personService");
Person person=new Person();
person.setPname("莽子");
personService.saveEntry(person);
}
@Test
public void testHibernateTemplate(){
PersonDao personDao = (PersonDao)context.getBean("personDao");
Person person=new Person();
person.setPname("莽子1");
personDao.saveEntry(person);
} }

jinut 测试 ok

获得真是类型

private Class classt;
/**
* 1、在父类中要执行一段代码,这个代码的执行时间为子类创建对象的时候,这段代 码已经执行完了,根据这个需求,有两种方案供选择
* * 利用static语句块
* * 利用父类的构造函数
* 2、分析:
* 因为得到ParameterizedType需要用到this关键字,而this关键字不能出现在 static语句块中
* 所以只能选择父类的构造器
*/
public BaseDaoImpl(){
/**
* ParameterizedType就是泛型
*/
ParameterizedType type = (ParameterizedType)this.getClass ().getGenericSuperclass();
this.classt = (Class)type.getActualTypeArguments()[0];//<T>
System.out.println(type.getRawType());
}

ssh base 写法的更多相关文章

  1. ssh 注解写法

    弄了半天  (好久哦) 首先 applicationContext-db.xml <?xml version="1.0" encoding="UTF-8" ...

  2. 使用ssh tunnel 来做代理或跳板

    接前文 http://www.cnblogs.com/piperck/p/6188984.html  使用ssh config配置文件来管理ssh连接 前文说了如何配置自己的ssh config 来方 ...

  3. Git配置非22端口,解决:ssh: connect to host xxx port 22: Connection timed out fatal: The remote end hung up unexpectedly

    背景:私自搭建了Git服务器,而Git本身就是SSH进行连接的,而Git命令上默认只能通过22端口实现. 解决方法: 第一种: 在系统的用户目录下的文件夹:.ssh 如果该路径下没有config文件, ...

  4. R语言数据处理利器——dplyr简介

    dplyr是由Hadley Wickham主持开发和维护的一个主要针对数据框快速计算.整合的函数包,同时提供一些常用函数的高速写法以及几个开源数据库的连接.此包是plyr包的深化功能包,其名字中的字母 ...

  5. OpenNebula学习第四节之磁盘镜像的制作

    一.准备工作 需要准备一个Ubuntu16.04的ISO文件上传至服务器,如下图所示 二.操作步骤 2.1:创建操作目录 创建一个/var/tmp/cloud_image目录,把Ubuntu16.04 ...

  6. Spring---SSH整合(二)

    基于Spring---SSH整合,使用SSH编写后台: User模块层 TreeNode.hbm.xml <?xml version="1.0" encoding=" ...

  7. Spring+Struts2+Hibernate框架搭建

    SSH框架版本:Struts-2.3.30  +  Spring-4.2.2  +  Hibernate5.2.2 下图是所需要的Jar包: 下面是项目的结构图: 1.web.xml <?xml ...

  8. Git: 搭建一个本地私人仓库

    Git: 搭建一个本地私人仓库 寝室放个电脑.实验室也有个电脑 为进行数据同步,充分利用实验室的服务器搭建了个本地私人仓库 1. 安装流程 当然首先保证服务器上与PC机上都已经安装了可用的Git 在P ...

  9. SSH配置文件和SSM配置文件的写法

    一.SSH配置文件的写法(XML版本) <util:properties id="jdbc" location="classpath:db.properties&q ...

随机推荐

  1. C#委托,事件理解入门 (译稿)

    原文地址:http://www.codeproject.com/Articles/4773/Events-and-Delegates-Simplified 引用翻译地址:http://www.cnbl ...

  2. 《与小卡特一起学Python》Code4 GUI easygui的使用

    EasyGui是基于TKinter的,所以可以跨平台使用. 使用方法很简单,下载之后解压把easygui.py放到python安装目录下的lib/site-packages/下面即可 import e ...

  3. 从C++到GO

    从C++到GO 刚开始接触Go语言,看了两本Go语言的书,从c++开发者的角度来看看go语言的新特性,说下自己感触较深的几点: 并发编程 Go语言层面支持协程,将并发业务逻辑从异步转为同步,大幅提高开 ...

  4. Zend Studio 11.0 汉化

    1.Help->Install New Software2.在Work with框中复制此地址:http://download.eclipse.org/technology/babel/upda ...

  5. C#socket通信-----多线程

    我在之前的socket通信的基础上做了一点改进,使用多线程来使用,程序更加简洁实用.不足之处请指教哦! 话不多说,之前的随笔也有介绍,直接上代码啦! 服务端socket(serverSocket): ...

  6. Spring 配置解析之Properties

    http://www.cnblogs.com/dragonfei/archive/2016/10/09/5906474.html *********************************** ...

  7. 组件嵌套+Mixin函数demo

    非DOM属性:1.dangerouslysetInnerHTML(xxs跨站攻击) 2.key 3.ref 编写组件嵌套 <!DOCTYPE html><html>  < ...

  8. 点击按钮div显示,点击div或者document,div隐藏

    $("button").click(function(event){ event.stopPropagation(); if($("div").is(':hid ...

  9. 项目部署到tomcat Root中后导致 WebApplicationContext 初始化两次的解决方法

    上一篇文章刚说项目部署到tomcat的ROOT中,今天就发现一个问题.通过eclipse启动tomcat时候,WebApplicationContext 初始化两次: 现象:   通过eclipse控 ...

  10. DEVExpress GridControl|TableView |FormatConditions 按一定格式设置相应内容

    Get到一个新技能,感觉好棒.摘自DEV官网:https://www.devexpress.com/Support/Center/Example/Details/T135593 <Window ...