服務(wù)層這里我就不用做介紹了,這里的實(shí)現(xiàn)和以前Hibernate的例子基本類同,唯一不同的是使用了Spring2.5的標(biāo)注方式實(shí)現(xiàn)類的注入。
Struts2.0+ibatis2.3整合實(shí)例之IUserService.java
- package org.login.service;
- import java.util.List;
- import org.login.vo.Users;
- public interface IUserService {
- List﹤Users﹥ getAllUser();
- Users getUserById(Integer id);
- boolean isLogin(Users user);
- boolean insertUser(Users user);
- boolean updateUser(Users user);
- boolean deleteUser(Integer id);
- }
- 服務(wù)層實(shí)現(xiàn):UserService.java
- package org.login.service.Impl;
- import java.util.List;
- import org.login.dao.IUserDAO;
- import org.login.service.IUserService;
- import org.login.vo.Users;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.stereotype.Service;
- @Service("userService")
- public class UserService implements IUserService {
- @Autowired(required=false)
- @Qualifier("userDAO")
- private IUserDAO userDAO = null;
- public IUserDAO getUserDAO() {
- return userDAO;
- }
- public void setUserDAO(IUserDAO userDAO) {
- this.userDAO = userDAO;
- }
- @Override
- public boolean deleteUser(Integer id) {
- return userDAO.deleteUser(id);
- }
- @Override
- public List﹤Users﹥ getAllUser() {
- return userDAO.getAllUser();
- }
- @Override
- public boolean insertUser(Users user) {
- return userDAO.insertUser(user);
- }
- @Override
- public boolean isLogin(Users user) {
- return userDAO.isLogin(user);
- }
- @Override
- public boolean updateUser(Users user) {
- return userDAO.updateUser(user);
- }
- @Override
- public Users getUserById(Integer id) {
- return userDAO.getUserById(id);
- }
- }
Struts層的實(shí)現(xiàn)也是比較簡(jiǎn)單了,與上述的區(qū)別都一樣,在這里我就不太多說(shuō)了。
Struts2.0+ibatis2.3整合實(shí)例之Login.java
- package org.login.actions;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import org.apache.struts2.interceptor.ServletRequestAware;
- import org.login.service.IUserService;
- import org.login.vo.Users;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.stereotype.Service;
- import com.opensymphony.xwork2.ActionSupport;
- @SuppressWarnings({"serial","unchecked"})
- @Service("login")
- public class Login extends ActionSupport implements ServletRequestAware {
- private static final String UPDATE = "update";
- private HttpServletRequest request = null;
- @Autowired(required = false)
- @Qualifier("userService")
- private IUserService userService = null;
- private String id = null;
- private String name = null;
- private String password = null;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public IUserService getUserService() {
- return userService;
- }
- public void setUserService(IUserService userService) {
- this.userService = userService;
- }
- @Override
- public String execute() throws Exception {
- Users user = new Users();
- user.setUserName(name);
- user.setPassword(password);
- if (getUserService().isLogin(user)) {
- return SUCCESS;
- }
- return INPUT;
- }
- public String save() throws Exception {
- Users user = new Users();
- user.setUserName(name);
- user.setPassword(password);
- if (getUserService().insertUser(user)) {
- return SUCCESS;
- }
- return ERROR;
- }
- public String update() throws Exception {
- Users user = null;
- String action = request.getParameter("action");
- String id = request.getParameter("id");
- if ("loading".equals(action)) {
- user = new Users();
- user = getUserService().getUserById(Integer.valueOf(id));
- if (null != user) {
- request.setAttribute("user", user);
- }
- return UPDATE;
- } else {
- user = new Users();
- user.setUserName(name);
- user.setPassword(password);
- user.setId(Integer.valueOf(id));
- if (getUserService().updateUser(user)) {
- return SUCCESS;
- }
- }
- return ERROR;
- }
- public String delete() throws Exception {
- String id = request.getParameter("id");
- if (getUserService().deleteUser(Integer.valueOf(id))) {
- return SUCCESS;
- }
- return ERROR;
- }
- public String findAllUsers() throws Exception {
- List﹤Users﹥ list = getUserService().getAllUser();
- if (list.size() ﹥ 0) {
- request.setAttribute("list", list);
- return SUCCESS;
- }
- return ERROR;
- }
- @Override
- public void setServletRequest(HttpServletRequest request) {
- this.request = request;
- }
- }
到現(xiàn)在為止,我們的底層的類已經(jīng)全部實(shí)現(xiàn)了,下來(lái)我們看其配置文件:
Struts2.0+ibatis2.3整合實(shí)例之struts.xml
- ﹤?xml version="1.0" encoding="UTF-8"?﹥
- ﹤!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd"﹥
- ﹤struts﹥
- ﹤include file="struts-default.xml"/﹥
- ﹤package name="struts2" extends="struts-default"﹥
- ﹤action name="logon" class="login"﹥
- ﹤result name="success"﹥/success.jsp﹤/result﹥
- ﹤result name="input"﹥/login.jsp﹤/result﹥
- ﹤/action﹥
- ﹤action name="save" class="login" method="save"﹥
- ﹤result name="success"﹥/success.jsp﹤/result﹥
- ﹤result name="error"﹥/error.jsp﹤/result﹥
- ﹤/action﹥
- ﹤action name="update" class="login" method="update"﹥
- ﹤result name="success"﹥/success.jsp﹤/result﹥
- ﹤result name="update"﹥/update.jsp﹤/result﹥
- ﹤result name="error"﹥/error.jsp﹤/result﹥
- ﹤/action﹥
- ﹤action name="delete" class="login" method="delete"﹥
- ﹤result name="success"﹥/success.jsp﹤/result﹥
- ﹤result name="error"﹥/error.jsp﹤/result﹥
- ﹤/action﹥
- ﹤action name="show" class="login" method="findAllUsers"﹥
- ﹤result name="success"﹥/list.jsp﹤/result﹥
- ﹤result name="error"﹥/error.jsp﹤/result﹥
- ﹤/action﹥
- ﹤/package﹥
- ﹤/struts﹥
Struts2.0+ibatis2.3整合實(shí)例之Struts.properties
struts.locale=zh_CN
struts.i18n.encoding=UTF-8
struts.objectFactory=spring
接下來(lái)也是與之前例子不同的地方,就是ibatis的配置文件:
config.xml
- ﹤?xml version="1.0" encoding="UTF-8"?﹥
- ﹤!DOCTYPE sqlMapConfig
- PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
- "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"﹥
- ﹤sqlMapConfig﹥
- ﹤sqlMap resource="org/login/vo/Users.xml"/﹥
- ﹤/sqlMapConfig﹥
這個(gè)文件比較簡(jiǎn)單,只配置了bean的映射文件。
最后一個(gè)配置文件就是Spring的配置文件了,這個(gè)也是最關(guān)鍵的,與以前的配置是截然不同,因?yàn)樵赟pring2.5使用了標(biāo)注方式注入,同時(shí)她了具有了自動(dòng)的搜索bean的能力,所以配置就相當(dāng)?shù)暮?jiǎn)單,如果有不明白的地方,可以寫到評(píng)論里,或者給我留言,這也是Spring2.5最難理解的地方了。
applicationContext.xml
- ﹤?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:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-2.5.xsd"﹥
- ﹤context:annotation-config /﹥
- ﹤bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"﹥
- ﹤property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" /﹥
- ﹤property name="url" value="jdbc:jtds:sqlserver://localhost:1433/pubs" /﹥
- ﹤property name="username" value="sa" /﹥
- ﹤property name="password" value="aa" /﹥
- ﹤/bean﹥
- ﹤bean id="sqlClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"﹥
- ﹤property name="dataSource"﹥
- ﹤ref local="dataSource"/﹥
- ﹤/property﹥
- ﹤property name="configLocation"﹥
- ﹤value﹥classpath:config.xml﹤/value﹥
- ﹤/property﹥
- ﹤/bean﹥
- ﹤context:component-scan base-package="org.login" /﹥
- ﹤/beans﹥
這篇就寫到這里吧,下篇我們將說(shuō)明頁(yè)面層的代碼,至于說(shuō)明我想也不用了,如果有興趣研究的朋友可以先下載示例代碼先看下,具體的下載地址如下:
演示示例下載地址:Struts2.0+Spring2.5.1+ibatis2.3地址:http://download.csdn.net/source/331581
Struts2.0+ibatis2.3整合實(shí)例之實(shí)現(xiàn)服務(wù)層及Struts就向你介紹到這里,希望多你有所幫助。
【編輯推薦】
聯(lián)系客服