Spring30+Ibatis+Oracle全注解开发.docx
《Spring30+Ibatis+Oracle全注解开发.docx》由会员分享,可在线阅读,更多相关《Spring30+Ibatis+Oracle全注解开发.docx(18页珍藏版)》请在冰点文库上搜索。
![Spring30+Ibatis+Oracle全注解开发.docx](https://file1.bingdoc.com/fileroot1/2023-5/16/9189dc8e-5e0e-47d5-be98-7d4aea0e2146/9189dc8e-5e0e-47d5-be98-7d4aea0e21461.gif)
Spring30+Ibatis+Oracle全注解开发
Spring3.0+ibatis全注解开发(详细过程)
//注解使用说明
看字面含义,很容易却别出其中三个:
@Controller控制层,就是我们的action层
@Service业务逻辑层,就是我们的service或者manager层
@Repository持久层,就是我们常说的DAO层
而@Component(字面意思就是组件),它在你确定不了事哪一个层的时候使用。
其实,这四个注解的效果都是一样的,Spring都会把它们当做需要注入的Bean加载在上下文中;
但是在项目中,却建议你严格按照除Componen的其余三个注解的含义使用在项目中。
这对分层结构的web架构很有好处!
!
技术:
Spring3.0+ibatis+Oracle全注解开发
1创建一个web项目,相应的结构目录
2右击项目(MyEclipase-->AddSpring..)添加spring3.0框架加入相应的jar包,
所用jar包已上传
3添加Spring3.0后会自动生成applicationContext.xml文件
4编写连接数据库配置文件jdbc.properties
jdbc.properties
--------------
4:
SqlMapConfig.xml文件总文件,用户寻找数据库操作语句
---------------------
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEsqlMapConfig
PUBLIC"-//ibatis.apache.org//DTDSQLMapConfig2.0//EN"
"http:
//ibatis.apache.org/dtd/sql-map-config-2.dtd">
--在这里设置是否使用命名空间必须要设置-->
--映射文件-->
----------------------------------
avtive.xml
-------------------------------------
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEsqlMap
PUBLIC"-//ibatis.apache.org//DTDSQLMap2.0//EN"
"http:
//ibatis.apache.org/dtd/sql-map-2.dtd">
[CDATA[
selectc.actid,
c.activetitle,
c.pname,
c.pmonery,
to_char(c.actstartime,'yyyy-mm-ddhh24:
mi:
ss')actstartime,
to_char(c.actendtime,'yyyy-mm-ddhh24:
mi:
ss')actendtime,
c.createtime,
c.pnum,
c.gressmin,
c.gressmax,
c.operid,
c.actstatus,
c.des
frommandb.t12580_callgress_activec
]]>
[CDATA[
selectc.actid,
c.activetitle,
c.pname,
c.pmonery,
to_char(c.actstartime,'yyyy-mm-ddhh24:
mi:
ss')actstartime,
to_char(c.actendtime,'yyyy-mm-ddhh24:
mi:
ss')actendtime,
c.createtime,
c.pnum,
c.gressmin,
c.gressmax,
c.operid,
c.actstatus,
c.des
frommandb.t12580_callgress_activecwherec.actid=#actId#
]]>
-----------------------------------------------------------
4编写applicationContext.xml配置
applicationContext.xml
--------------------------------------
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="http:
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns:
p="http:
//www.springframework.org/schema/p"
xmlns:
context="http:
//www.springframework.org/schema/context"
xmlns:
aop="http:
//www.springframework.org/schema/aop"
xmlns:
tx="http:
//www.springframework.org/schema/tx"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans-3.0.xsd
http:
//www.springframework.org/schema/context
http:
//www.springframework.org/schema/context/spring-context-3.0.xsd
http:
//www.springframework.org/schema/aop
http:
//www.springframework.org/schema/aop/spring-aop-3.0.xsd
http:
//www.springframework.org/schema/tx
http:
//www.springframework.org/schema/tx/spring-tx-3.0.xsd">
--启用注解-->
annotation-config/>
--注解使用范围-->
component-scanbase-package="com.zte.*"/>
--②:
启动SpringMVC的注解功能,完成请求和注解POJO的映射-->
--读取配置.properties文件-->
property-placeholderlocation="classpath:
jdbc.properties"/>
--数据库配置-->
--连接池启动时的初始值-->
--连接池的最大值-->
--最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止-->
--最小空闲值当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请-->
--spring整合ibatis-->
SqlMapConfig.xml"/>
--读取配置文件-->
--事务-->
--annotation-driventransaction-manager="transactionManager"/>-->
class="org.springframework.transaction.support.TransactionTemplate">
----------------------------------------------------------------------------------------------
5在web.xml中配置spring监听
web.xml
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
--spring配置-->
contextConfigLocation
classpath:
applicationContext.xml
org.springframework.web.context.ContextLoaderListener
index.jsp
二配置文件都配置好了,现在开始编写代码
1编写一个实体文件,该文件时段最好与数据库表字段一致,便于区辨
Activeinfo.java
------------------------------------------------------
packagecom.zte.bean;
/**
*
文件名称:
Activeinfo.java
*
文件描述:
活动信息
*
版权所有:
版权所有(C)2012-2013
*
公司:
xxxxxx
*
内容摘要:
*
其他说明:
*
完成日期:
2008-11-11
*
修改记录1:
*
*修改日期:
*版本号:
*修改人:
*修改内容:
*
*@version1.0
*@authorlfz
*/
publicclassActiveinfo{
privateStringactid;//活动编号
privateStringactivetitle;//活动标题
privateStringpname;//活动奖品名称
privateStringpmonery;//奖品预算成本
privateStringactstartime;//活动开始时间
privateStringactendtime;//活动结束时间
privateStringcreatetime;//创建时间
privateStringpnum;//奖品数量
privateStringgressmin;//最小金额
privateStringgressmax;//最大金额
privateStringoperid;//操作工号
privateStringactstatus;//活动状态1启用,2禁用
privateStringdes;//活动描述
publicStringgetActid(){
returnactid;
}
publicvoidsetActid(Stringactid){
this.actid=actid;
}
publicStringgetActivetitle(){
returnactivetitle;
}
publicvoidsetActivetitle(Stringactivetitle){
this.activetitle=activetitle;
}
publicStringgetPname(){
returnpname;
}
publicvoidsetPname(Stringpname){
this.pname=pname;
}
publicStringgetPmonery(){
returnpmonery;
}
publicvoidsetPmonery(Stringpmonery){
this.pmonery=pmonery;
}
publicStringgetActstartime(){
returnactstartime;
}
publicvoidsetActstartime(Stringactstartime){
this.actstartime=actstartime;
}
publicStringgetActendtime(){
returnactendtime;
}
publicvoidsetActendtime(Stringactendtime){
this.actendtime=actendtime;
}
publicStringgetCreatetime(){
returncreatetime;
}
publicvoidsetCreatetime(Stringcreatetime){
this.createtime=createtime;
}
publicStringgetPnum(){
returnpnum;
}
publicvoidsetPnum(Stringpnum){
this.pnum=pnum;
}
publicStringgetGressmin(){
returngressmin;
}
publicvoidsetGressmin(Stringgressmin){
this.gressmin=gressmin;
}
publicStringgetGressmax(){
returngressmax;
}
publicvoidsetGressmax(Stringgressmax){
this.gressmax=gressmax;
}
publicStringgetOperid(){
returnoperid;
}
publicvoidsetOperid(Stringoperid){
this.operid=operid;
}
publicStringgetActstatus(){
returnactstatus;
}
publicvoidsetActstatus(Stringactstatus){
this.actstatus=actstatus;
}
publicStringgetDes(){
returndes;
}
publicvoidsetDes(Stringdes){
this.des=des;
}
}
----------------------------------------------------------------
2编写持久层(即Dao层)接口
ActiveDao.java
-----------------------------------------
packagecom.zte.dao;
importjava.util.List;
importcom.zte.bean.Activeinfo;
publicinterfaceActiveDao{
/**
*获取所有活动信息
*@return
*/
publicListgetAll();
/**
*根据活动编号获取信息
*@paramactid
*@return
*/
publicActiveinfogetInfoById(Stringactid);
}
-------------------------------------------------------------------------------------------------
编写实现类
ActiveDaoImpl.java
packagecom.zte.dao.impl;
importjava.util.ArrayList;
importjava.util.List;
importjavax.annotation.Resource;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.beans.factory.annotation.Qualifier;
importorg.springframework.orm.ibatis.SqlMapClientTemplate;
importorg.springframework.stereotype.Repository;
importorg.springframework.stereotype.Service;
importorg.springframework.transaction.annotation.Transactional;
importcom.zte.bean.Activeinfo;
importcom.zte.dao.ActiveDao;
importcom.zte.service.ActiveService;
@Repository("activeDao")//持久层,次名字用户注入该累
@Transactional
publicclassActiveDaoImplimplementsActiveDao{
//@Qualifier("sqlMapClientTemplate")//注释指定注入Bean等同与===@Resource(name="sqlMapClientTemplate")
@Resource(name="sqlMapCli