springstrutsmybatis-annotation

来源:互联网 发布:大连品牌网络推广公司 编辑:程序博客网 时间:2024/06/08 00:43

第一步:

index.html

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>注册页面</title><script type="text/javascript" src="easyui/js/jquery.min.js"></script><script type="text/javascript" src="js/regist.js"></script></head><body>    <fieldset>        <legend>注册页面</legend>        <input type="text"id="name" placeholder="用户名">        <input type="password" id="password" placeholder="密码">        <input type="date" id="birthday" placeholder="出生日期">        <input type="text" id="address" placeholder="地址">        <button type="button" id="regist">注册</button>    </fieldset></body></html>
第二 步:index.js

$(function(){$.post("findAll.action",function(data){var lists = data.list;var TBODY = $("#tbody");$.each(lists,function(index,user){var TR = $("<tr></tr>");var idTD = $("<td>"+user.id+"</td>");var nameTD = $("<td>"+user.name+"</td>");var passwordTD = $("<td>"+user.password+"</td>");var birthdayTD = $("<td>"+user.birthday+"</td>");var addressTD = $("<td>"+user.address+"</td>");TBODY.append(TR);TR.append(idTD).append(nameTD).append(passwordTD).append(birthdayTD).append(addressTD);})})})

第三步:调到对应的Action

package org.xxy.syp.actions;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.annotation.Resource;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annotation.Result;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.xxy.syp.entity.Chart;import org.xxy.syp.entity.User;import org.xxy.syp.service.UserService;import com.opensymphony.xwork2.ActionSupport;import net.sf.json.JSONObject;@Controller@Scope(value="prototype")@ParentPackage(value="User")public class RegistAction extends ActionSupport{private static final long serialVersionUID = 1L;private User user;@Resourceprivate UserService usi;private String result;private List<User> list;private String query;private Integer rows;private Integer page;private String sort;private String order;private JSONObject js;public JSONObject getJs() {return js;}public void setJs(JSONObject js) {this.js = js;}public String getSort() {return sort;}public void setSort(String sort) {this.sort = sort;}public String getOrder() {return order;}public void setOrder(String order) {this.order = order;}public String getQuery() {return query;}public void setQuery(String query) {this.query = query;}public Integer getRows() {return rows;}public void setRows(Integer rows) {this.rows = rows;}public Integer getPage() {return page;}public void setPage(Integer page) {this.page = page;}public List<User> getList() {return list;}public void setList(List<User> list) {this.list = list;}public String getResult() {return result;}public void setResult(String result) {this.result = result;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}@Action(value="regist",results= {@Result(name=SUCCESS,type="json")})public String regist() {boolean flag = usi.regist(user);if(flag) {result = "ok";}else {result ="fail";}return SUCCESS;}//@Action(value="findAll",results= {@Result(name=SUCCESS,type="json",params= {"root","list"})})//public String findAll() {//list = usi.findAll();//return SUCCESS;//}//@Action(value="findByCondition",results= {@Result(name=SUCCESS,type="json",params= {"root","js"})})//public String findAll() {//list = usi.findByCondition(query, page, rows);//Map<String, Object> map = new HashMap();//map.put("rows", list);//map.put("total", usi.findAll(query).size());//js=JSONObject.fromObject(map);//System.out.println(js+"**********");//return SUCCESS;//}@Action(value="findByCondition",results= {@Result(name=SUCCESS,type="json",params= {"root","js"})})public String findByCondition() {list = usi.findByCondition(query, page, rows, sort, order);Map<String, Object> map = new HashMap<String, Object>();map.put("rows", list);map.put("total", usi.findAll(query).size());js=JSONObject.fromObject(map);return SUCCESS;}@Action(value="findAll",results= {@Result(name=SUCCESS,type="json",params= {"root","js"})})public String findAll() {list = usi.findAll();Map<String, Object> map = new HashMap<String, Object>();map.put("rows", list);map.put("total", usi.findAll().size());js=JSONObject.fromObject(map);return SUCCESS;}@Action(value="addSave",results= {@Result(name=SUCCESS,type="json",params= {"root","result"})})public String addSave() {user.setBirthday(new Date());boolean flag = usi.insert(user);System.out.println(flag+"****"); if(flag){result="ok";}else{result="fail";}return SUCCESS;}@Action(value="getChartData",results= {@Result(name=SUCCESS,type="json",params= {"root","js"})})public String getChartData() {//user.setBirthday(new Date());List<User> list= usi.finUserIdNameByIds(result);List list1 = new ArrayList<Chart>();List list2 = new ArrayList();for(int i =0;i<list.size();i++) {list1.add(list.get(i).getId());list2.add(list.get(i).getName());}Map map = new HashMap<>();map.put("name",list2);map.put("data",list1);js=JSONObject.fromObject(map);return SUCCESS;}@Action(value="exportExcel",results= {@Result(name=SUCCESS,type="json",params= {"root","result"})})public String exportExcel() throws FileNotFoundException, IOException {List<User> list2 = usi.findUsersByIds(result);System.out.println(list2);HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.createSheet("mysheet");HSSFRow row1 = sheet.createRow(0);row1.createCell(0).setCellValue("编号");row1.createCell(1).setCellValue("姓名");row1.createCell(2).setCellValue("密码");row1.createCell(3).setCellValue("日期");row1.createCell(4).setCellValue("地址");for(int i=0;i<list2.size();i++) {HSSFRow rows = sheet.createRow(i+1);User user1 = list2.get(i); rows.createCell(0).setCellValue(user1.getId()); rows.createCell(1).setCellValue(user1.getName()); rows.createCell(2).setCellValue(user1.getPassword()); rows.createCell(3).setCellValue(user1.getBirthday()); rows.createCell(4).setCellValue(user1.getAddress());}workbook.write(new FileOutputStream("D:\\user"+new Date().getTime()+".xls"));result="ok";return SUCCESS;}@Action(value="importExcel",results= {@Result(name=SUCCESS,type="json",params= {"root","result"})})public String importExcel() throws IOException {HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("D:\\user.xls"));HSSFSheet sheet = workbook.getSheetAt(0);int lastRowNum = sheet.getLastRowNum();for(int i=1;i<lastRowNum;i++) {HSSFRow row = sheet.getRow(i);User user = new User();user.setName(row.getCell(1).getStringCellValue());user.setPassword(row.getCell(2).getStringCellValue());user.setBirthday(row.getCell(3).getDateCellValue());user.setAddress(row.getCell(4).getStringCellValue());System.out.println(user);boolean flag = usi.insert(user);}return SUCCESS;}}
第四步:配置struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"        "http://struts.apache.org/dtds/struts-2.5.dtd"><struts>    <constant name="struts.objectFactory" value="spring"/>    <constant name="struts.devMode" value="true"></constant>    <package name="User" extends="json-default">    <global-results>    <result name="input">regist.html</result>    <result name="error">error.html</result>    </global-results>    </package></struts>
第五步:web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">  <display-name>ssh-demo</display-name>  <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>  <filter>    <filter-name>struts2</filter-name>    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>struts2</filter-name>    <url-pattern>*.action</url-pattern>  </filter-mapping>  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener></web-app>

配置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"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><!-- 扫面组件 --><context:component-scan base-package="org.xxy" /><!-- aop注解驱动 --><aop:aspectj-autoproxy /><bean id="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource"><property name="driver" value="oracle.jdbc.OracleDriver" /><property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" /><property name="username" value="admin" /><property name="password" value="1" /></bean><bean id="sqlsessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="WEB-INF/configuration.xml" /></bean><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><tx:annotation-driven transaction-manager="transactionManager" /></beans>

配置configuration.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><mappers><mapper resource="org/xxy/syp/entity/User.mapper.xml" /></mappers></configuration>
6.dao

package org.xxy.syp.dao;import java.util.List;import org.xxy.syp.entity.User;public interface UserDao {public Integer addUser(User user);public List<User> findAll(String query);public List<User> findAll();public List<User> findByCondition(String query,Integer page,Integer rows,String sort,String order);public boolean insert(User user);public User findUserByID(Integer id);public List<User> findUsersByIds(String ids);public List<User> finUserIdNameByIds(String ids);}
7.dao.impl

package org.xxy.syp.dao.impl;import java.util.List;import javax.annotation.Resource;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.springframework.stereotype.Repository;import org.xxy.syp.dao.UserDao;import org.xxy.syp.entity.User;@Repository(value="userDao")public class UserDaoImpl implements UserDao{@Resourceprivate SqlSessionFactory  sqlSessionFactory;@Overridepublic Integer addUser(User user) {SqlSession sqlSession = sqlSessionFactory.openSession();UserDao userDao = sqlSession.getMapper(UserDao.class);userDao.addUser(user);return 1;}@Overridepublic List<User> findAll() {SqlSession sqlSession = sqlSessionFactory.openSession();UserDao userDao = sqlSession.getMapper(UserDao.class);List<User> list = userDao.findAll();return list;}@Overridepublic List<User> findByCondition(String query, Integer page, Integer rows, String sort, String order) {return null;}@Overridepublic boolean insert(User user) {return false;//Session session = sessionFactory.getCurrentSession();// session.save(user);//return false;}@Overridepublic User findUserByID(Integer id) {return null;//Session session = sessionFactory.getCurrentSession();//User user = (User) session.get(User.class, id);//return user;}@Overridepublic List<User> findAll(String query) {// TODO Auto-generated method stubreturn null;}@Overridepublic List<User> findUsersByIds(String ids) {SqlSession sqlSession = sqlSessionFactory.openSession();UserDao userDao = sqlSession.getMapper(UserDao.class);List<User> list = userDao.findUsersByIds(ids);return list;}@Overridepublic List<User> finUserIdNameByIds(String ids) {SqlSession sqlSession = sqlSessionFactory.openSession();UserDao userDao = sqlSession.getMapper(UserDao.class);List<User> list = userDao.finUserIdNameByIds(ids);return list;}}
8.servivce


package org.xxy.syp.service;

import java.util.List;

import org.xxy.syp.entity.User;

public interface UserService {
    
        public boolean regist(User user);
        
        public List<User> findAll(String query);
        
//        public List<User> findByCondition(String query, Integer page, Integer rows);
        public List<User> findByCondition(String query, Integer page, Integer rows, String sort, String order);

        public boolean insert(User user);
    
        public User findUserByID(Integer id);

        public    List<User> findAll();
        
        public List<User> findUsersByIds(String ids);
        
        public List<User> finUserIdNameByIds(String ids);

}

9.serviceimpl

package org.xxy.syp.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.xxy.syp.dao.UserDao;
import org.xxy.syp.entity.User;
import org.xxy.syp.service.UserService;
@Service(value="usi")
@Transactional(propagation=Propagation.REQUIRED)
public class UserServiceImpl implements UserService{
    @Resource
   private UserDao userDao;
    
    @Override
    public boolean regist(User user) {
        
         Integer num = userDao.addUser(user);
          if(num!=null) {
              return true;
          }else{
              return false;
          }
    }

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }

//    @Override
//    public List<User> findByCondition(String query, Integer page, Integer rows) {
//        return userDao.findByCondition(query, page, rows);
//    }
    
    @Override
    public List<User> findByCondition(String query, Integer page, Integer rows, String sort, String order) {
        return userDao.findByCondition(query, page, rows, sort, order);
    }

    @Override
    public boolean insert(User user) {
        Integer user1 = userDao.addUser(user);
        if(user1!=null) {
            return true;
        }else
        {
            return false;
        }
    }
    public User findUserByID(Integer id) {
        return userDao.findUserByID(id);
        
    }

    @Override
    public List<User> findAll(String query) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<User> findUsersByIds(String ids) {
        String  str="";
        if(ids.startsWith("undefined")) {
            int begin = ids.indexOf(",");
            str=ids.substring(begin+1);
        }else {
            str=ids;
        }
        String value = "("+str+")";
        List<User> list = userDao.findUsersByIds(value);
    
        return list;
    }

    @Override
    public List<User> finUserIdNameByIds(String ids) {
        String  str="";
        if(ids.startsWith("undefined")) {
            int begin = ids.indexOf(",");
            str=ids.substring(begin+1);
        }else {
            str=ids;
        }
        String value = "("+str+")";
        List<User> list = userDao.finUserIdNameByIds(value);
    
        return list;
    }
    
}

10.entity

chart

package org.xxy.syp.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.xxy.syp.dao.UserDao;
import org.xxy.syp.entity.User;
import org.xxy.syp.service.UserService;
@Service(value="usi")
@Transactional(propagation=Propagation.REQUIRED)
public class UserServiceImpl implements UserService{
    @Resource
   private UserDao userDao;
    
    @Override
    public boolean regist(User user) {
        
         Integer num = userDao.addUser(user);
          if(num!=null) {
              return true;
          }else{
              return false;
          }
    }

    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }

//    @Override
//    public List<User> findByCondition(String query, Integer page, Integer rows) {
//        return userDao.findByCondition(query, page, rows);
//    }
    
    @Override
    public List<User> findByCondition(String query, Integer page, Integer rows, String sort, String order) {
        return userDao.findByCondition(query, page, rows, sort, order);
    }

    @Override
    public boolean insert(User user) {
        Integer user1 = userDao.addUser(user);
        if(user1!=null) {
            return true;
        }else
        {
            return false;
        }
    }
    public User findUserByID(Integer id) {
        return userDao.findUserByID(id);
        
    }

    @Override
    public List<User> findAll(String query) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<User> findUsersByIds(String ids) {
        String  str="";
        if(ids.startsWith("undefined")) {
            int begin = ids.indexOf(",");
            str=ids.substring(begin+1);
        }else {
            str=ids;
        }
        String value = "("+str+")";
        List<User> list = userDao.findUsersByIds(value);
    
        return list;
    }

    @Override
    public List<User> finUserIdNameByIds(String ids) {
        String  str="";
        if(ids.startsWith("undefined")) {
            int begin = ids.indexOf(",");
            str=ids.substring(begin+1);
        }else {
            str=ids;
        }
        String value = "("+str+")";
        List<User> list = userDao.finUserIdNameByIds(value);
    
        return list;
    }
    
}

user

package org.xxy.syp.entity;

import java.util.Date;

/**
 * 注册实体类
 * @author Administrator  ByTime:2017/9/7
 *
 */
public class User {

    /**
     * 编号
     */
    private Integer id;
    /**
     * 姓名
     */
    private String name;
    /**
     * 密码
     */
    private String password;
    /**
     * 出生日期
     */
    private Date birthday;
    /**
     * 住址
     */
    private String address;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    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 Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + ", birthday=" + birthday + ", address="
                + address + "]";
    }

    public User() {
    }

    public User(Integer id, String name, String password, Date birthday, String address) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.birthday = birthday;
        this.address = address;
    }

    public User(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    
    
    
    

}


11.User.mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="org.xxy.syp.dao.UserDao" >
    <insert id="addUser">
        <selectKey keyProperty="id" order="BEFORE"  resultType="int">
            select user_seq.nextval from dual
        </selectKey>
        insert into user_tab(id,name,password,birthday,address) values(#{id},#{name},#{password},#{birthday},#{address})
    </insert>
    <select id="findAll" resultType="org.xxy.syp.entity.User">
        select * from user_tab
    </select>
    <select id="findUsersByIds" resultType="org.xxy.syp.entity.User">
        select * from user_tab where id in ${value}
    </select>
    <select id="finUserIdNameByIds" resultType="org.xxy.syp.entity.User">
        select id,name from user_tab where id in ${value}
    </select>
    
</mapper>


TimeImpl

package org.xxy.syp.log.impl;

import java.util.Arrays;

import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Service;

@Aspect
@Service
public class TimeImpl {
    
    @Around(value = "execution(* org.xxy.syp.dao.*.*(..))")
    public Object print(ProceedingJoinPoint pjp) throws Throwable {
//        Logger.getLogger(pjp.getTarget().getClass()).debug(pjp.getTarget().getClass()+pjp.getSignature().getName()+":("+Arrays.toString(pjp.getArgs())+")");
        Object object = pjp.proceed();
//        Logger.getLogger("result:"+object);
        return object;
        
    }

}