各位大侠,在下请教一个问题,问得低级了不要见笑,我用的是spring2.5,括号,不熟,业务层的实现一般是这样写的
public List<Object> checkLogin(User user)
{
String sql=" select * from `user` where loginname=? and password=? and `isdeleted`=0 ";
Object[] object={ user.getLoginname(),user.getPassword() };
return loginDao.selectAll(sql, object, EUser.class);
}
都是这种格式,我现在想把sql语句全部放到xml里面去(操作数据库用的是JDBC不是hibernate),该用个什么思路,或者说用个什么技术,关键就是那个占位符该怎么处理,我想让sql和java分开,但是怎么给占位符赋值,单纯是spring能不能有这个功能,望高手不吝赐教!!!!
public List<Object> checkLogin(User user)
{
String sql=" select * from `user` where loginname=? and password=? and `isdeleted`=0 ";
Object[] object={ user.getLoginname(),user.getPassword() };
return loginDao.selectAll(sql, object, EUser.class);
}
都是这种格式,我现在想把sql语句全部放到xml里面去(操作数据库用的是JDBC不是hibernate),该用个什么思路,或者说用个什么技术,关键就是那个占位符该怎么处理,我想让sql和java分开,但是怎么给占位符赋值,单纯是spring能不能有这个功能,望高手不吝赐教!!!!
比如public class LoginGetSql{
private String loginsql;
//生成geter和setter }spring配置文件中
<bean id="loginMappingManual"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="RequestHandlerInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<!-- 用户登陆 -->
<prop key="/sysconfig/userLogin.do">loginAction</prop>
</props>
</property>
</bean>
<!-- 用户登陆SQL语句 -->
<bean id="loginGetSql" class="com.LoginGetSql.java">
<property name="loginSql" value="SELECT username from user where ...." />
</bean>
某个类在要用到sql的时候 然后把 定义一个
XXXService
{
private LoginGetSql loginGetSql;
//生成getter和setter String sql=loginGetSql.getloginSql();//这样就得到sql
}
大概的思路就是这样的,希望对你有一点点帮助。
其实最强的还是hibernate,不过要要用好hibernate需要2-3年,而用好ibatis只用2-3天,