<!-- SelectMethod=cursor :打開游標-->
<!-- 用SQL Server驅動一次select很多數據最好在
connection string中加上SelectMethod=Cursor,
以利用服務器端游標加快速度,其實不只sqlserver,
oracle的jdbc,只要使用PreparedStatement,
驅動默認就使用游標,sqlserver則不然,
必須使用SelectMethod=Cursor才打開游標-->
<beans>
<!-- bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind;SelectMethod=cursor</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>628418</value>
</property>
</bean-->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/spring</value>
</property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
</bean>
<bean id="userDAO" class="UserDAO">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean>
<bean id="userAction" class="UserAction">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
<property name="commandClass">
<value>UserInfo</value>
</property>
<property name="fail_view">
<value>/WEB-INF/jsp/fail.jsp</value>
</property>
<property name="success_view">
<value>/WEB-INF/jsp/success.jsp</value>
</property>
</bean>
<bean id="springappController" class="SpringappController"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
</bean>
<bean id="helloUserAction" class="HelloUserAction">
<property name="helloWord">
<value>Hello!</value>
</property>
<property name="viewPage">
<value>/WEB-INF/jsp/hellouser.jsp</value>
</property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- 控制器模式-->
<property name="mappings">
<props>
<prop key="/hello.do">springappController</prop>
<prop key="/hellouser.do">helloUserAction</prop>
<prop key="/insert.do">userAction</prop>
</props>
</property>
<!-- 攔截器模式>
<property name="interceptors">
<list>
<ref local="localeChangeInterceptor"/>
<ref local="themeChangeInterceptor"/>
<ref local="copyInterceptor"/>
</list>
</property-->
</bean>
</beans>
4.對應的應用UserAction
import java.io.UnsupportedEncodingException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
public class UserAction extends SimpleFormController {
private String fail_view;
private String success_view;
private JdbcTemplate jdbcTemplate;
protected ModelAndView onSubmit(Object cmd, BindException ex)
throws Exception {
System.out.println("--------go into UserAction-------");
UserInfo userInfo = (UserInfo) cmd;
System.out.println("name=" + userInfo.getName() + ",sex="
+ userInfo.getSex() + ",age=" + userInfo.getAge());
if (login(userInfo) == 1) {
insertUser(userInfo);
return new ModelAndView(this.success_view);
}
return new ModelAndView(this.fail_view);
}
public void insertUser(UserInfo user) throws UnsupportedEncodingException {
System.out.println("-----------------");
System.out.println("name=" + user.getName() + ",sex=" + user.getSex()
+ ",age=" + user.getAge());
System.out.println("-----------------");
//if(user.getName()!=null && !user.getName().equals(""))
//user.setName(new String(user.getName().getBytes("ISO8859_1"),"GBK"));
System.out.println("name=" + user.getName() + ",sex=" + user.getSex()
+ ",age=" + user.getAge());
jdbcTemplate.update("INSERT INTO USERS VALUES('" + user.getSex()
+ "', '" + user.getName() + "', '" + user.getAge() + "')");
}
private int login(UserInfo userInfo) {
if (userInfo.getName().equals("李沖")) {
System.out.println("11");
return 0;
} else
return 1;
}
public String getFail_view() {
return fail_view;
}
public void setFail_view(String fail_view) {
this.fail_view = fail_view;
}
public String getSuccess_view() {
return success_view;
}
public void setSuccess_view(String success_view) {
this.success_view = success_view;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}