Spring/Ibatis/Oracle bean dans le fichier spring-config.xml non reconnu
Bonjour,
Je debute en spring et ibatis.
Mon appli web utilise Spring/Ibatis/Oracle.
Mon appli ne reconnait pas mes beans dans le fichiers de config de spring.
Je peux vous envoyer mon appli pour identifier le pb.
car je ne peux pas tout mettre dans ce post.
Enfin je crois que c'est ça, en meme temps j'en suis pas sûre:
Voici l'erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
SRVE0068E: Impossible d'appeler la méthode service() sur le servlet action. Exception : javax.servlet.ServletException
at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1173)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:92)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java(Compiled Code))
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java(Compiled Code))
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java(Compiled Code))
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
---- Begin backtrace for Nested Throwables |
La classe Action.java qui appelle la classe service.java qui appelle la classe dao.java.
Je vous montre le tout.
1- la classe Action.java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
package connexion;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import common.exception.ServiceException;
import common.securite.Utilisateur;
import common.session.Session;
import common.struts.AbstractAction;
import common.struts.AbstractForm;
import connexion.Service;
public class Action extends AbstractAction {
private static String CONNEXION = "connexion";
public static final String SUCCES = "succes";
private static String FAILURE = "failure";
private static final String SUCCES_MSG_KEY = "connexion.success";
/*** Service. */
private Service mService;
public void setService(final Service pService) {
mService = pService;
}
public ActionForward afficher(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse reponse) throws Exception {
System.out.println("METHODE AFFICHER");
return mapping.getInputForward();
}
public ActionForward save(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
final Form formulaire = (Form) form;
final ActionErrors errors = formulaire.validate(mapping, request);
if (!errors.isEmpty()) {
//super.saveErrors(request, errors);
super.saveMessages(request,errors);
return mapping.getInputForward();
}
// mettre les infos utilisateur du formulaire dans le bean Utilisateur
final Utilisateur utilisateur = new Utilisateur();
try {
// utilisateur
Utilisateur utilisateurConnecte = mService.login(utilisateur);
System.out.println("utilisateurConnecte.getNom()=" + utilisateurConnecte.getNom());
// création de la session
// Session.newSession(request, utilisateurConnecte);
} catch (ServiceException e) {
super.saveServiceException(request, e);
return mapping.getInputForward();
}
if (!errors.isEmpty()) {
System.out.println("CONNEXION ACTION ERREUR FORMULAIRE");
System.out.println("errors form connexion=" + errors.toString());
super.saveMessages(request,errors);
return null;
//return mapping.getInputForward();
}
return mapping.findForward(SUCCES);
}
public ActionForward quitter(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse reponse) throws Exception {
System.out.println("METHODE QUITTER");
return this.afficher(mapping, form, request, reponse);
}
} |
la classe Service.java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
package connexion;
import common.securite.Utilisateur;
import connexion.Dao;
/**
* Service.
*
*/
public class Service {
/**
* Dao.
*/
private Dao mDao;
public void setDao(final Dao pDao) {
mDao = pDao;
}
/**
* Login.
*
* @param pUtilisateur Utilisateur qui tente de se connecté
* @return Utilisateur connecté
*/
public Utilisateur login(final Utilisateur pUtilisateur) {
System.out.println("METHODE SERVICE");
return mDao.login(pUtilisateur);
}
} |
la classe Dao.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
package connexion;
import java.sql.ResultSet;
import common.dao.AbstractDaoSupport;
import common.securite.Utilisateur;
/**
* DAO.
*
*/
public class Dao extends AbstractDaoSupport {
/**
* Id du DAO.
*/
private static final String DAO_ID = "connexion.";
/**
* Requête "login".
*/
private static final String LOGIN_ID = DAO_ID + "login";
/**
* Login
*
* @param pUtilisateur Utilisateur
* @return Utilisateur connecté
*/
public Utilisateur login(final Utilisateur pUtilisateur) {
System.out.println("METHODE DAO");
return (Utilisateur) super.queryForObject(LOGIN_ID, pUtilisateur);
}
} |
la classe AbstractDaoSupport.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
package common.dao;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.ibatis.sqlmap.client.event.RowHandler;
/**
* Dao support.<br/>
* Cet objet surcharge certaines méthode de <code>SqlMapClientTemplate</code>
* afin de construire un objet <code>DaoParameters</code> qui servira de
* paramètre dans les requêtes.
*
*/
public abstract class AbstractDaoSupport extends SqlMapClientDaoSupport {
/**
* Log.
*/
private static final Logger LOG = Logger.getLogger(AbstractDaoSupport.class);
/**
* Transforme l'object en paramètres.
*
* @param pObject Object
* @return Paramètres
*/
private DaoParameters getParameters(final Object pObject) {
DaoParameters parameters = null;
if (pObject == null) {
parameters = new DaoParameters(null);
} else if (pObject instanceof DaoParameters) {
parameters = (DaoParameters) pObject;
} else {
parameters = new DaoParameters(pObject);
}
if (LOG.isDebugEnabled()) {
LOG.debug(parameters);
}
return parameters;
}
/**
* Execute une requête et retourne un objet.<br/>
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @return Object
*/
protected Object queryForObject(final String pStateId, final Object pObject) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
return super.getSqlMapClientTemplate().queryForObject(pStateId, getParameters(pObject));
}
} |
mon fichier spring-config est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd">
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/dsIncident" />
<property name="lookupOnStartup" value="true" />
<property name="proxyInterface" value="javax.sql.DataSource" />
</bean>
<!-- SqlMapClient -->
<bean
id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:com/incidents/resources/sqlmap-config.xml</value>
</property>
<property name="useTransactionAwareDataSource">
<value>true</value>
</property>
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<!-- Gestion des exceptions -->
<bean
id="exceptionTranslator"
class="common.exception.SQLExceptionTranslatorImpl"/>
<!-- SqlMapClientTemplate -->
<bean
id="sqlMapClientTemplate"
class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient"/>
</property>
<property name="exceptionTranslator">
<ref bean="exceptionTranslator"/>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- Connexion -->
<bean id="connexionDao"
class="connexion.Dao">
<property name="sqlMapClientTemplate">
<ref bean="sqlMapClientTemplate" />
</property>
</bean>
<bean id="connexionService"
class="connexion.Service">
<property name="dao">
<ref local="connexionDao" />
</property>
</bean>
<bean name="/connexion"
class="connexion.Action">
<property name="service">
<ref bean="connexionService"/>
</property>
</bean>
</beans> |
mon fichier sqlmap-config.xml est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" lazyLoadingEnabled="false"/>
<sqlMap resource="com/incidents/resources/connexion/sqlmap.xml"/>
</sqlMapConfig> |
mon fichier sqlmap.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="connexion">
<typeAlias alias="connexion" type="common.securite.Utilisateur" />
<parameterMap id="connexion.login.parameter" class="common.dao.DaoParameters">
<parameter property="object.login" jdbcType="VARCHAR"
javaType="java.lang.String" mode="IN" />
<parameter property="object.password" jdbcType="VARCHAR"
javaType="java.lang.String" mode="IN" />
</parameterMap>
<resultMap id="connexion.login.result" class="connexion">
<result property="nom" column="NOM" />
</resultMap>
<procedure id="connexion.login"
parameterMap="connexion.login.parameter"
resultMap="connexion.login.result">
{? = call afficher_users(?,?) }
</procedure>
</sqlMap> |
mon fichier web.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Incidents</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>chainConfig</param-name>
<param-value>org/apache/struts/tiles/chain-config.xml,/WEB-INF/chain-config.xml</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config/struts-config.xml
,/WEB-INF/struts-config/struts-config-connexion.xml
,/WEB-INF/struts-config/struts-config-parametrage.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>
</jsp-config>
<resource-ref id="ResourceRef_1248100188156">
<description>
</description>
<res-ref-name>dsIncident</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/com/incidents/resources/spring-config.xml</param-value>
</context-param>
</web-app> |
mon fichier struts-config.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- Exceptions globales -->
<global-exceptions/>
<!-- Références aval globales -->
<global-forwards/>
<action-mappings>
<action path="/treeview"
type="fr.improve.struts.taglib.layout.treeview.TreeviewAction"
validate="false">
</action>
</action-mappings>
<controller processorClass="org.apache.struts.action.RequestProcessor"/>
<!--controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/-->
<!--controller processorClass="fr.improve.struts.taglib.layout.workflow.LayoutRequestProcessor"/-->
<!-- Ressources de message -->
<message-resources parameter="com.incidents.resources.ApplicationResources" null="false"/>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml
,/WEB-INF/validation/validation-connexion.xml"/>
</plug-in>
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property
property="definitions-config"
value="/WEB-INF/tiles-def/tiles-config.xml
,/WEB-INF/tiles-def/tiles-connexion.xml
,/WEB-INF/tiles-def/tiles-parametrage.xml"/>
<set-property property="moduleAware" value="true"/>
<set-property property="definitions-debug" value="2" />
<set-property property="definitions-parser-details" value="2" />
<set-property property="definitions-parser-validate" value="true" />
</plug-in>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property
property="contextConfigLocation"
value="/WEB-INF/classes/com/incidents/resources/spring-config.xml"/>
</plug-in>
</struts-config> |
mon fichier struts-config-connexion.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="connexionForm" type="connexion.Form"/>
</form-beans>
<!-- Mappages d'action -->
<action-mappings>
<!--action
input="connexion-err.jsp"
parameter="method"
name="connexionForm"
path="/connexion"
scope="request"
validate="false"
type="connexion.Action">
<forward name="connexion" path="/WEB-INF/tiles/connexion/connexion.jsp"/>
<forward name="succes" path="connexion.success"/>
</action-->
<action
path="/connexion"
name="connexionForm"
className="common.struts.ActionMapping"
validate="false"
scope="request"
type="connexion.Action"
input="connexion">
<forward name="succes" path="connexion.success" redirect="false"/>
</action>
</action-mappings>
</struts-config> |
mon fichier DAO.java qui appelle la requete
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
public class Dao extends AbstractDaoSupport {
/**
* Id du DAO.
*/
private static final String DAO_ID = "connexion.";
/**
* Requête "login".
*/
private static final String LOGIN_ID = DAO_ID + "login";
/**
* Login
*
* @param pUtilisateur Utilisateur
* @return Utilisateur connecté
*/
public Utilisateur login(final Utilisateur pUtilisateur) {
System.out.println("METHODE DAO");
Utilisateur user = (Utilisateur) super.queryForObject(LOGIN_ID, pUtilisateur);
System.out.println(user.getNom());
return null;
} |
(Ici la fonction retourne null volontairement car je cherche à recuperer le nom de l'utilisateur connecté pour affichage ...)
mon fichier AbstractDaoSupport.java
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
package common.dao;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.ibatis.sqlmap.client.event.RowHandler;
/**
* Dao support.<br/>
* Cet objet surcharge certaines méthode de <code>SqlMapClientTemplate</code>
* afin de construire un objet <code>DaoParameters</code> qui servira de
* paramètre dans les requêtes.
*
*/
public abstract class AbstractDaoSupport extends SqlMapClientDaoSupport {
/**
* Log.
*/
private static final Logger LOG = Logger.getLogger(AbstractDaoSupport.class);
/**
* Transforme l'object en paramètres.
*
* @param pObject Object
* @return Paramètres
*/
private DaoParameters getParameters(final Object pObject) {
DaoParameters parameters = null;
if (pObject == null) {
System.out.println("pobjet == NULL");
parameters = new DaoParameters(null);
} else if (pObject instanceof DaoParameters) {
System.out.println("INSTANCE DE DAOPARAMETERS");
parameters = (DaoParameters) pObject;
} else {
System.out.println("NI NULL NI INSTANCE DE DAOPARAMETERS");
parameters = new DaoParameters(pObject);
}
if (LOG.isDebugEnabled()) {
LOG.debug(parameters);
}
return parameters;
}
/**
* Execute une requête et retourne un objet.<br/>
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @return Object
*/
protected Object queryForObject(final String pStateId, final Object pObject) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
return super.getSqlMapClientTemplate().queryForObject(pStateId, getParameters(pObject));
}
/**
* Execute une requête et retourne un objet.<br/>
*
* @param pStateId Id du statement
* @return Object
*/
protected Object queryForObject(final String pStateId) {
return this.queryForObject(pStateId, null);
}
/**
* Execute une requête et retourne une lite d'objets.<br/>
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @return Liste
*/
protected List queryForList(final String pStateId, final Object pObject) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
return super.getSqlMapClientTemplate().queryForList(pStateId, getParameters(pObject));
}
/**
* Execute une requête avec un RowHandler.
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @param pRowHandler Row handler
* @return Liste
*/
protected void queryWithRowHandler(final String pStateId, final Object pObject, final RowHandler pRowHandler) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
super.getSqlMapClientTemplate().queryWithRowHandler(pStateId, getParameters(pObject), pRowHandler);
}
/**
* Execute une requête et retourne une liste d'objets.<br/>
*
* @param pStateId Id du statement
* @return Liste
*/
protected List queryForList(final String pStateId) {
return this.queryForList(pStateId, null);
}
/**
* Execute une requête d'insert.<br/>
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @return Objet
*/
protected Object insert(final String pStateId, final Object pObject) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
return super.getSqlMapClientTemplate().insert(pStateId, getParameters(pObject));
}
/**
* Execute une requête d'update.<br/>
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @return Nombre de lignes mises à jour
*/
protected int update(final String pStateId, final Object pObject) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
return super.getSqlMapClientTemplate().update(pStateId, getParameters(pObject));
}
/**
* Execute une requête de delete.<br/>
*
* @param pStateId Id du statement
* @param pObject Paramètres de la requête
* @return Nombre de lignes supprimées
*/
protected int delete(final String pStateId, final Object pObject) {
if (LOG.isDebugEnabled()) {
LOG.debug(pStateId);
LOG.debug(pObject);
}
return super.getSqlMapClientTemplate().delete(pStateId, getParameters(pObject));
}
} |
mon fonction sql oracle : Elle n'est pas des + optimisées mais elle fonctionne.
Retourne le nom de l'utilisateur. C'est un test .
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
create or replace
FUNCTION AFFICHER_USERS(pLogin IN VARCHAR2,pPassword IN VARCHAR2) RETURN VARCHAR2 AS
CURSOR c_emp IS SELECT nom, prenom FROM UTILISATEURS where prenom='toto';
person c_emp%ROWTYPE;
lnom utilisateurs.nom%TYPE;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO person;
EXIT WHEN c_emp%NOTFOUND;
lnom := person.nom;
END LOOP;
CLOSE c_emp;
return lnom;
END AFFICHER_USERS; |
Si vous pouviez m'aider ce serait top car là je patauge grave.
merci d'avance,
tototata