跟着别人学ssm+springSecurity(一)

spring+mybatis的整合 

  前段时间公司项目用到ssm+springSecurity来做开发框架,虽项目完成了,但架子自己却没有搭过,以前也没用到过SpringSecurity,所以想亲自搭一个试试,好加强对框架的理解,所以在网上找了一些资料,跟着别人学习。

一、先加入jar包,用的是maven方式。pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.zyj.ssm</groupId>
  <artifactId>ssm</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>ssm Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <!-- 集中定义依赖版本号 -->
	<properties>
		<spring.version>4.3.3.RELEASE</spring.version>
		<spring-security.version>4.1.3.RELEASE</spring-security.version>
	</properties>
  <dependencies>
    <!-- Spring -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-core</artifactId>
	    <version>${spring.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-tx</artifactId>
	    <version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-beans</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-jdbc</artifactId>
		<version>${spring.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-test</artifactId>
	    <version>${spring.version}</version>
	    <scope>test</scope>
	</dependency>
	
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-aspects</artifactId>
		<version>${spring.version}</version>
	</dependency>
	
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
		<version>${spring.version}</version>
	</dependency>
	
	<!-- spring security -->
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-core</artifactId>
	    <version>${spring-security.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-web</artifactId>
	    <version>${spring-security.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-config</artifactId>
	    <version>${spring-security.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-taglibs</artifactId>
	    <version>${spring-security.version}</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework.security</groupId>
	    <artifactId>spring-security-ldap</artifactId>
	    <version>${spring-security.version}</version>
	</dependency>
	
	<!-- Mybatis -->
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.4.1</version>
	</dependency>
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis-spring</artifactId>
		<version>1.3.0</version>
	</dependency>
	
	<!-- 分页插件 -->
	<dependency>
	    <groupId>com.github.pagehelper</groupId>
	    <artifactId>pagehelper</artifactId>
	    <version>5.0.0</version>
	</dependency>
	
	<!-- oracle -->
	<dependency>
	  <groupId>com.oracle</groupId>
	  <artifactId>ojdbc6</artifactId>
	  <version>11.1.0.6.0</version>
	</dependency>
	
	<!-- 连接池 -->
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid</artifactId>
		<version>1.0.26</version>
	</dependency>
	
	<!-- redis -->
	<dependency>
	    <groupId>redis.clients</groupId>
	    <artifactId>jedis</artifactId>
	    <version>2.9.0</version>
	</dependency>
	
	<!-- 时间操作组件 -->
	<dependency>
		<groupId>joda-time</groupId>
		<artifactId>joda-time</artifactId>
		<version>2.9.4</version>
	</dependency>
	
	<!-- Apache工具组件 -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
		<version>3.5</version>
	</dependency>
	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.5</version>
	</dependency>
	<dependency>
		<groupId>commons-net</groupId>
		<artifactId>commons-net</artifactId>
		<version>3.5</version>
	</dependency>
	<dependency>
		<groupId>commons-fileupload</groupId>
		<artifactId>commons-fileupload</artifactId>
		<version>1.3.2</version>
	</dependency>
	<!-- 百度富文本编辑器需要jar包 -->
	<dependency>
	    <groupId>commons-codec</groupId>
	    <artifactId>commons-codec</artifactId>
	    <version>1.10</version>
	</dependency>
	
	<dependency>
	    <groupId>org.json</groupId>
	    <artifactId>json</artifactId>
	    <version>20160810</version>
	</dependency>
	
	<!-- 单元测试 -->
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.12</version>
	</dependency>
	
	<!-- 日志处理 -->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>1.7.21</version>
	</dependency>
	
	<!-- JSP相关 -->
	<dependency>
		<groupId>jstl</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.0</version>
		<scope>provided</scope>
	</dependency>
	<dependency>
	    <groupId>org.sitemesh</groupId>
	    <artifactId>sitemesh</artifactId>
	    <version>3.0.1</version>
	    <scope>runtime</scope>
	</dependency>
	
	
	<dependency>
	    <groupId>org.freemarker</groupId>
	    <artifactId>freemarker</artifactId>
	    <version>2.3.23</version>
	</dependency>
	<dependency>
	    <groupId>net.sf.jxls</groupId>
	    <artifactId>jxls-core</artifactId>
	    <version>1.0.6</version>
	</dependency>
	<dependency>
	    <groupId>org.jxls</groupId>
	    <artifactId>jxls-reader</artifactId>
	    <version>2.0.2</version>
	</dependency>
	<dependency>
	    <groupId>org.jxls</groupId>
	    <artifactId>jxls-poi</artifactId>
	    <version>1.0.12</version>
	</dependency>
	
	<!-- 图片缩略图 -->
       <dependency>
           <groupId>net.coobird</groupId>
           <artifactId>thumbnailator</artifactId>
           <version>0.4.8</version>
       </dependency>
	
	<dependency>
	    <groupId>com.alibaba</groupId>
	    <artifactId>fastjson</artifactId>
	    <version>1.2.31</version>
	</dependency>

	<!--itextpdf 生成工具-->
	<dependency>
		<groupId>com.itextpdf</groupId>
		<artifactId>itextpdf</artifactId>
		<version>5.5.10</version>
	</dependency>
			
	<!--加解密工具 -->
	<dependency>
	    <groupId>org.jasypt</groupId>
	    <artifactId>jasypt</artifactId>
	    <version>1.9.1</version>
	</dependency>
	<!-- 后台验证 -->
	<dependency>
	    <groupId>javax.validation</groupId>
	    <artifactId>validation-api</artifactId>
	    <version>1.1.0.Final</version>
	</dependency>
	<dependency>
	    <groupId>org.hibernate</groupId>
	    <artifactId>hibernate-validator</artifactId>
	    <version>5.4.1.Final</version>
	</dependency>
	
	<dependency>
		<groupId>com.baidu.unbiz</groupId>
		<artifactId>fluent-validator</artifactId>
		<version>1.0.7</version>
	</dependency>
	
	<dependency>
		<groupId>com.github.stuxuhai</groupId>
		<artifactId>jpinyin</artifactId>
		<version>1.1.8</version>
	</dependency>
	
	<!-- 阿里大于 -->
	<dependency>
		<groupId>com.taobao</groupId>
		<artifactId>sdk</artifactId>
		<version>2016.10.13</version>
	</dependency>
	
	<dependency>
		<groupId>com.baidu.aip</groupId>
		<artifactId>java-sdk</artifactId>
		<version>3.1.0</version>
	</dependency>
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.39</version>
	</dependency>
	
  </dependencies>
  <build>
    <finalName>ssm</finalName>
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-compiler-plugin</artifactId>  
            <configuration>  
                <source>1.7</source>  
                <target>1.7</target>  
            </configuration>  
        </plugin>  
    </plugins>  
  </build>
</project>

二、spring+mybatis的整合:



工程结构

1.各种配置文件代码:

a、MyBatis配置文件:目录:Resource/Config/mybatis,文件名:SqlMapConfig.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>
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
</configuration>

b、真正的MyBatis配置文件:目录:resource/config/spring,文件名:applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
   	<!-- 数据库连接池 -->
	<!-- 加载配置文件 -->
	<context:property-placeholder location="classpath:db.properties"/>
	
	<!-- 扫描注解自动注入 -->
    <context:component-scan base-package="com.ssm" />
	<!-- 数据库连接池 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}"/>
		<property name="url" value="${jdbc.url}"/>
		<property name="username" value="${jdbc.username}"/>
		<property name="password" value="${jdbc.password}"/>
		<property name="maxActive" value="10"/>
		<property name="minIdle" value="5"/>
	</bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:config/mybatis/sqlMapConfig.xml" />
        <property name="dataSource" ref="dataSource" />
        <!--加载接口的配置文件-->
        <property name="mapperLocations" value="classpath:com/ssm/dao/mapper/*.xml" />
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ssm.dao.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
</beans>

c、MyBatis逆向工程配置文件:目录:resource,文件名:generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <classPathEntry
            location="/Users/wuxinzhe/.m2/repository/mysql/mysql-connector-java/5.1.6/mysql-connector-java-5.1.6.jar"/>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <!--<jdbcConnection driverClass="${jdbc.driver}"-->
        <!--connectionURL="${jdbc.url}"-->
        <!--userId="${jdbc.username}"-->
        <!--password="${jdbc.password}">-->
        <!--</jdbcConnection>-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/db_house_rent?characterEncoding=UTF-8"
                        userId="root"
                        password="199176">
        </jdbcConnection>

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="mybatis.pojo"
                            targetProject="src/test/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="mybatis.mapper"
                         targetProject="src/test/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="mybatis.mapper"
                             targetProject="src/test/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- 指定数据库表,这些数据库表文件,是SpringSecurity的必备表,后续的文章会贴出SQL文件 -->
        <table tableName="SYS_USERS"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
        <table tableName="SYS_ROLES"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
        <table tableName="SYS_AUTHORITIES"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
        <table tableName="SYS_MODULES"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
        <table tableName="SYS_RESOURCES"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
        <table tableName="PERSISTENT_LOGINS"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

d、数据库参数:目录:resource/config,文件名:db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_springsecurity_ssm
jdbc.username=root
jdbc.password=root

既然配置完了,就是要怎么用了。打开IDEA右侧栏的Maven Project,找到插件组(Plugins)中的mybatis-generator.根据标号的操作步骤,找到了以后,直接“双击”即可。如果期间出了什么错,控制台会直接打印出错误原因,英语不好的朋友可以百度翻译。

2.实体和测试类代码:

a、实体User:

package com.ssm.pojo;

public class User {
	private int id;
	
    private String username;
    
    private String password;
    
    private int age;
    
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("User [id=");
		builder.append(id);
		builder.append(", username=");
		builder.append(username);
		builder.append(", password=");
		builder.append(password);
		builder.append(", age=");
		builder.append(age);
		builder.append("]");
		return builder.toString();
	}	
}

b.Service于与其实现:

UserService.java
package com.ssm.service;

import java.util.List;
import com.ssm.pojo.User;

public interface UserService {
    public int add(User user) throws Exception;
    public int delete(int id) throws Exception;
    public User getUserById(int id) throws Exception;
    public List<User> listUserByAge(int age) throws Exception;
}
UserServiceImpl.java
package com.ssm.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ssm.dao.mapper.UserMapper;
import com.ssm.pojo.User;
import com.ssm.service.UserService;

@Service @Transactional
public class UserServiceImpl implements UserService {

	@Resource(name="userMapper")
    private UserMapper mapper;

    @Override
    public int add(User user) throws Exception {
        return mapper.insert(user);
    }

    @Override
    public int delete(int id) throws Exception {
        return mapper.deleteByPrimaryKey(id);
    }

    @Override
    public User getUserById(int id) throws Exception {
        User user=null;
        user=mapper.selectByPrimaryKey(id);
        if(user==null){
            throw new Exception("User is not existed!");
        }
        return user;
    }

    @Override
    public List<User> listUserByAge(int age) throws Exception {
        List<User> list=null;
        list=mapper.findByAge(age);
        if(list==null){
            throw new Exception("List is empty!");
        }
        return list;
    }

}

c.mapper和其xml文件:

UserMapper.java
package com.ssm.dao.mapper;

import java.util.List;

import com.ssm.pojo.User;

public interface UserMapper {

	public int insert(User user) ;

	public int deleteByPrimaryKey(int id) ;

	public User selectByPrimaryKey(int id) ;

	public List<User> findByAge(int age) ;

}
UserMapper.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="com.ssm.dao.mapper.UserMapper" >
  <resultMap id="BaseResultMap" type="com.ssm.pojo.User" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="user_name" property="username" jdbcType="VARCHAR" />
    <result column="password" property="password" jdbcType="VARCHAR" />
    <result column="age" property="age" jdbcType="INTEGER" />
  </resultMap>
  <sql id="Base_Column_List" >
    id, user_name, password, age
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from user_t
    where id = #{id,jdbcType=INTEGER}
  </select>
  <select id="findByAge" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select 
    <include refid="Base_Column_List" />
    from user_t
    where age = #{age,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
    delete from user_t
    where id = #{id,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.ssm.pojo.User" >
    insert into user_t (user_name, password, 
      age)
    values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 
      #{age,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.ssm.pojo.User" >
    insert into user_t
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="username != null" >
        user_name,
      </if>
      <if test="password != null" >
        password,
      </if>
      <if test="age != null" >
        age,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      <if test="username != null" >
        #{username,jdbcType=VARCHAR},
      </if>
      <if test="password != null" >
        #{password,jdbcType=VARCHAR},
      </if>
      <if test="age != null" >
        #{age,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.ssm.pojo.User" >
    update user_t
    <set >
      <if test="username != null" >
        user_name = #{username,jdbcType=VARCHAR},
      </if>
      <if test="password != null" >
        password = #{password,jdbcType=VARCHAR},
      </if>
      <if test="age != null" >
        age = #{age,jdbcType=INTEGER},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.ssm.pojo.User" >
    update user_t
    set user_name = #{username,jdbcType=VARCHAR},
      password = #{password,jdbcType=VARCHAR},
      age = #{age,jdbcType=INTEGER}
    where id = #{id,jdbcType=INTEGER}
  </update>
</mapper>

d、测试类:

TestSpringMybatis.java
package com.ssm.test;

import java.util.List;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.ssm.pojo.User;
import com.ssm.service.UserService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:config/spring/applicationContext-dao.xml" })
public class TestSpringMybatis {
	@Resource
    private UserService userService;

    @Test
    public void testFindUserById() throws Exception {
    	//查询
        //User user = userService.getUserById(1);
        //System.out.println("1111111111111111111");
        //System.out.println(user.getUsername());
    	//新增
    	/*User user = new User();
    	user.setUsername("小明");
    	user.setPassword("346+5++");
    	user.setAge(25);
    	userService.add(user);*/
    	//删除
    	/*int i = userService.delete(2);
    	System.out.println(i);*/
    	//查询那个年龄相同的人
    	List<User> userList = userService.listUserByAge(25);
    	for(int i=0;i<userList.size();i++){
    		System.out.println(userList.get(i));
    	}
    	
    }
}






猜你喜欢

转载自blog.csdn.net/u011323390/article/details/78421306
今日推荐