zoukankan      html  css  js  c++  java
  • mybatis整合spring

    Mybatis与spring集成

    1、导入pom依赖

    1.1 添加spring相关依赖(5.0.2.RELEASE)

           spring-core

           spring-beans

           spring-context

           spring-orm

           spring-tx

           spring-aspects

           spring-web

     

       1.2 添加mybatis相关依赖

           mybatis核心:mybatis(3.4.5)

           Mybatis分页:pagehelper(5.1.2)

     

       1.3 spring整合mybatis(1.3.1)

           mybatis-spring

     

       1.4 添加dbcp2连接池

           commons-dbcp2(2.1.1)

           commons-pool2(2.4.3)

     

       1.5 添加日志配置(2.9.1)

           log4j-core

           log4j-api

           log4j-web

     

       1.6 其他

           junit(4.12)

           javax.servlet-api(4.0.0)

           lombok(1.18.2)

     

       注:使用mybatis-generator插件,pom文件添加支持 

    pom.xml依赖

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 
      3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      5   <modelVersion>4.0.0</modelVersion>
      6 
      7   <groupId>com.yuan</groupId>
      8   <artifactId>ssm</artifactId>
      9   <version>1.0-SNAPSHOT</version>
     10   <packaging>war</packaging>
     11 
     12   <name>ssm Maven Webapp</name>
     13   <!-- FIXME change it to the project's website -->
     14   <url>http://www.example.com</url>
     15 
     16   <properties>
     17     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     18     <maven.compiler.source>1.8</maven.compiler.source>
     19     <maven.compiler.target>1.8</maven.compiler.target>
     20     <maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version>
     21 
     22     <!--添加jar包依赖-->
     23     <!--1.spring 5.0.2.RELEASE相关-->
     24     <spring.version>5.0.2.RELEASE</spring.version>
     25     <!--2.mybatis相关-->
     26     <mybatis.version>3.4.5</mybatis.version>
     27     <!--mysql-->
     28     <mysql.version>5.1.44</mysql.version>
     29     <!--pagehelper分页jar依赖-->
     30     <pagehelper.version>5.1.2</pagehelper.version>
     31     <!--mybatis与spring集成jar依赖-->
     32     <mybatis.spring.version>1.3.1</mybatis.spring.version>
     33     <!--3.dbcp2连接池相关 druid-->
     34     <commons.dbcp2.version>2.1.1</commons.dbcp2.version>
     35     <commons.pool2.version>2.4.3</commons.pool2.version>
     36     <!--4.log日志相关-->
     37     <log4j2.version>2.9.1</log4j2.version>
     38     <!--5.其他-->
     39     <junit.version>4.12</junit.version>
     40     <servlet.version>4.0.0</servlet.version>
     41     <lombok.version>1.18.2</lombok.version>
     42   </properties>
     43 
     44 
     45   <dependencies>
     46     <!--1.spring相关-->
     47     <dependency>
     48       <groupId>org.springframework</groupId>
     49       <artifactId>spring-context</artifactId>
     50       <version>${spring.version}</version>
     51     </dependency>
     52     <dependency>
     53       <groupId>org.springframework</groupId>
     54       <artifactId>spring-orm</artifactId>
     55       <version>${spring.version}</version>
     56     </dependency>
     57     <dependency>
     58       <groupId>org.springframework</groupId>
     59       <artifactId>spring-tx</artifactId>
     60       <version>${spring.version}</version>
     61     </dependency>
     62     <dependency>
     63       <groupId>org.springframework</groupId>
     64       <artifactId>spring-aspects</artifactId>
     65       <version>${spring.version}</version>
     66     </dependency>
     67     <dependency>
     68       <groupId>org.springframework</groupId>
     69       <artifactId>spring-web</artifactId>
     70       <version>${spring.version}</version>
     71     </dependency>
     72     <dependency>
     73       <groupId>org.springframework</groupId>
     74       <artifactId>spring-test</artifactId>
     75       <version>${spring.version}</version>
     76     </dependency>
     77     <!--2.mybatis相关-->
     78     <dependency>
     79       <groupId>org.mybatis</groupId>
     80       <artifactId>mybatis</artifactId>
     81       <version>${mybatis.version}</version>
     82     </dependency>
     83     <!--mysql-->
     84     <dependency>
     85       <groupId>mysql</groupId>
     86       <artifactId>mysql-connector-java</artifactId>
     87       <version>${mysql.version}</version>
     88     </dependency>
     89     <!--pagehelper分页插件jar包依赖-->
     90     <dependency>
     91       <groupId>com.github.pagehelper</groupId>
     92       <artifactId>pagehelper</artifactId>
     93       <version>${pagehelper.version}</version>
     94     </dependency>
     95     <!--mybatis与spring集成jar包依赖-->
     96     <dependency>
     97       <groupId>org.mybatis</groupId>
     98       <artifactId>mybatis-spring</artifactId>
     99       <version>${mybatis.spring.version}</version>
    100     </dependency>
    101     <!--3.dbcp2连接池相关-->
    102     <dependency>
    103       <groupId>org.apache.commons</groupId>
    104       <artifactId>commons-dbcp2</artifactId>
    105       <version>${commons.dbcp2.version}</version>
    106     </dependency>
    107     <dependency>
    108       <groupId>org.apache.commons</groupId>
    109       <artifactId>commons-pool2</artifactId>
    110       <version>${commons.pool2.version}</version>
    111     </dependency>
    112     <!--4.log日志相关依赖-->
    113     <!--核心log4j2jar包-->
    114     <dependency>
    115       <groupId>org.apache.logging.log4j</groupId>
    116       <artifactId>log4j-core</artifactId>
    117       <version>${log4j2.version}</version>
    118     </dependency>
    119     <dependency>
    120       <groupId>org.apache.logging.log4j</groupId>
    121       <artifactId>log4j-api</artifactId>
    122       <version>${log4j2.version}</version>
    123     </dependency>
    124     <!--web工程需要包含log4j-web,非web工程不需要-->
    125     <dependency>
    126       <groupId>org.apache.logging.log4j</groupId>
    127       <artifactId>log4j-web</artifactId>
    128       <version>${log4j2.version}</version>
    129     </dependency>
    130     <!--5.其他-->
    131     <dependency>
    132       <groupId>junit</groupId>
    133       <artifactId>junit</artifactId>
    134       <version>${junit.version}</version>
    135       <scope>test</scope>
    136     </dependency>
    137     <dependency>
    138       <groupId>javax.servlet</groupId>
    139       <artifactId>javax.servlet-api</artifactId>
    140       <version>${servlet.version}</version>
    141       <scope>provided</scope>
    142     </dependency>
    143     <dependency>
    144       <groupId>org.projectlombok</groupId>
    145       <artifactId>lombok</artifactId>
    146       <version>${lombok.version}</version>
    147       <scope>provided</scope>
    148     </dependency>
    149 
    150 
    151 
    152 
    153 
    154 
    155   </dependencies>
    156 
    157   <build>
    158     <finalName>ssm</finalName>
    159     <resources>
    160       <!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题-->
    161       <resource>
    162         <directory>src/main/java</directory>
    163         <includes>
    164           <include>**/*.xml</include>
    165         </includes>
    166       </resource>
    167       <!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题-->
    168       <resource>
    169         <directory>src/main/resources</directory>
    170         <includes>
    171           <include>jdbc.properties</include>
    172           <include>*.xml</include>
    173         </includes>
    174       </resource>
    175     </resources>
    176 
    177 
    178     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
    179       <plugins>
    180         <plugin>
    181           <groupId>org.apache.maven.plugins</groupId>
    182           <artifactId>maven-compiler-plugin</artifactId>
    183           <version>${maven.compiler.plugin.version}</version>
    184           <configuration>
    185             <source>${maven.compiler.source}</source>
    186             <target>${maven.compiler.target}</target>
    187             <encoding>${project.build.sourceEncoding}</encoding>
    188           </configuration>
    189         </plugin>
    190         <plugin>
    191           <groupId>org.mybatis.generator</groupId>
    192           <artifactId>mybatis-generator-maven-plugin</artifactId>
    193           <version>1.3.2</version>
    194           <dependencies>
    195             <!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 -->
    196             <dependency>
    197               <groupId>mysql</groupId>
    198               <artifactId>mysql-connector-java</artifactId>
    199               <version>${mysql.version}</version>
    200             </dependency>
    201           </dependencies>
    202           <configuration>
    203             <overwrite>true</overwrite>
    204           </configuration>
    205         </plugin>
    206 
    207 
    208         <plugin>
    209           <artifactId>maven-clean-plugin</artifactId>
    210           <version>3.1.0</version>
    211         </plugin>
    212         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
    213         <plugin>
    214           <artifactId>maven-resources-plugin</artifactId>
    215           <version>3.0.2</version>
    216         </plugin>
    217         <plugin>
    218           <artifactId>maven-compiler-plugin</artifactId>
    219           <version>3.8.0</version>
    220         </plugin>
    221         <plugin>
    222           <artifactId>maven-surefire-plugin</artifactId>
    223           <version>2.22.1</version>
    224         </plugin>
    225         <plugin>
    226           <artifactId>maven-war-plugin</artifactId>
    227           <version>3.2.2</version>
    228         </plugin>
    229         <plugin>
    230           <artifactId>maven-install-plugin</artifactId>
    231           <version>2.5.2</version>
    232         </plugin>
    233         <plugin>
    234           <artifactId>maven-deploy-plugin</artifactId>
    235           <version>2.8.2</version>
    236         </plugin>
    237       </plugins>
    238     </pluginManagement>
    239   </build>
    240 </project>

    2、利用mybatis逆向工程生成模型层层代码

    3、编写配置文件 applicationContext-mybatis.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
     5        xmlns:aop="http://www.springframework.org/schema/aop"
     6        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
     7 
     8 
     9     <!--1. 注解式开发 -->
    10     <!-- 注解驱动 -->
    11     <context:annotation-config/>
    12     <!-- 用注解方式注入bean,并指定查找范围:com.yuan.ssm及子子孙孙包-->
    13     <context:component-scan base-package="com.yuan"/>
    14 
    15     <context:property-placeholder location="classpath:jdbc.properties"/>
    16 
    17     <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
    18           destroy-method="close">
    19         <property name="driverClassName" value="${jdbc.driver}"/>
    20         <property name="url" value="${jdbc.url}"/>
    21         <property name="username" value="${jdbc.username}"/>
    22         <property name="password" value="${jdbc.password}"/>
    23         <!--初始连接数-->
    24         <property name="initialSize" value="10"/>
    25         <!--最大活动连接数-->
    26         <property name="maxTotal" value="100"/>
    27         <!--最大空闲连接数-->
    28         <property name="maxIdle" value="50"/>
    29         <!--最小空闲连接数-->
    30         <property name="minIdle" value="10"/>
    31         <!--设置为-1时,如果没有可用连接,连接池会一直无限期等待,直到获取到连接为止。-->
    32         <!--如果设置为N(毫秒),则连接池会等待N毫秒,等待不到,则抛出异常-->
    33         <property name="maxWaitMillis" value="-1"/>
    34     </bean>
    35 
    36     <!--4. spring和MyBatis整合 -->
    37     <!--1) 创建sqlSessionFactory-->
    38     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    39         <!-- 指定数据源 -->
    40         <property name="dataSource" ref="dataSource"/>
    41         <!-- 自动扫描XxxMapping.xml文件,**任意路径 -->
    42         <property name="mapperLocations" value="classpath*:com/yuan/**/mapper/*.xml"/>
    43         <!-- 指定别名 -->
    44         <property name="typeAliasesPackage" value="com/yuan/**/model"/>
    45         <!--配置pagehelper插件-->
    46         <property name="plugins">
    47             <array>
    48                 <bean class="com.github.pagehelper.PageInterceptor">
    49                     <property name="properties">
    50                         <value>
    51                             helperDialect=mysql
    52                         </value>
    53                     </property>
    54                 </bean>
    55             </array>
    56         </property>
    57     </bean>
    58 
    59     <!--2) 自动扫描com/yuan/ssm/**/mapper下的所有XxxMapper接口(其实就是DAO接口),并实现这些接口,-->
    60     <!--   即可直接在程序中使用dao接口,不用再获取sqlsession对象-->
    61     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    62         <!--basePackage 属性是映射器接口文件的包路径。-->
    63         <!--你可以使用分号或逗号 作为分隔符设置多于一个的包路径-->
    64         <property name="basePackage" value="com/yuan/**/mapper"/>
    65         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    66     </bean>
    67 
    68     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    69         <property name="dataSource" ref="dataSource" />
    70     </bean>
    71     <tx:annotation-driven transaction-manager="transactionManager" />
    72     <aop:aspectj-autoproxy/>
    73 
    74 
    75 </beans>

    编写配置文件applicationContext.xml

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <beans xmlns="http://www.springframework.org/schema/beans"
    3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5 
    6     <!--整合mybatis框架-->
    7     <import resource="applicationContext-mybatis.xml"></import>
    8 </beans>

    Spring Test+junit完美组合

    在工程中的pom文件增加spring-test的依赖

     <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-test</artifactId>
           <version>${spring.version}</version>
         </dependency>

    创建SpringBaseTest,并加上以下两个注解

     1 package com.yuan;
     2 
     3 import com.yuan.model.Book;
     4 import com.yuan.util.PageBean;
     5 import org.junit.Before;
     6 import org.junit.runner.RunWith;
     7 import org.springframework.test.context.ContextConfiguration;
     8 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
     9 
    10 @RunWith(SpringJUnit4ClassRunner.class)
    11 @ContextConfiguration(locations={"classpath:applicationContext.xml"})
    12 public class SpringBaseTest {
    13 
    14     protected Book book;
    15     protected PageBean pageBean;
    16 
    17     @Before
    18     public void init(){
    19         book = new Book();
    20         pageBean = new PageBean();
    21     }
    22 
    23 }

    相关层Service代码

    BookService.java

     1 package com.yuan.service;
     2 
     3 import com.yuan.model.Book;
     4 import com.yuan.util.PageBean;
     5 import org.springframework.stereotype.Service;
     6 
     7 import java.util.List;
     8 
     9 
    10 public interface BookService {
    11 
    12     int deleteByPrimaryKey(Integer bid);
    13 
    14     int insert(Book record);
    15 
    16     int insertSelective(Book record);
    17 
    18     Book selectByPrimaryKey(Integer bid);
    19 
    20     int updateByPrimaryKeySelective(Book record);
    21 
    22     int updateByPrimaryKey(Book record);
    23 
    24     List<Book> listPager(Book book, PageBean pageBean);
    25 }

    BookServiceImpl.java

     1 package com.yuan.service.impl;
     2 
     3 import com.yuan.mapper.BookMapper;
     4 import com.yuan.model.Book;
     5 import com.yuan.service.BookService;
     6 import com.yuan.util.PageBean;
     7 import org.springframework.beans.factory.annotation.Autowired;
     8 import org.springframework.stereotype.Service;
     9 
    10 import java.util.List;
    11 
    12 @Service
    13 public class BookServiceImpl implements BookService {
    14     @Autowired
    15     private BookMapper bookMapper;
    16 
    17     @Override
    18     public int deleteByPrimaryKey(Integer bid) {
    19         return bookMapper.deleteByPrimaryKey(bid);
    20     }
    21 
    22     @Override
    23     public int insert(Book record) {
    24         return bookMapper.insert(record);
    25     }
    26 
    27     @Override
    28     public int insertSelective(Book record) {
    29         return bookMapper.insertSelective(record);
    30     }
    31 
    32     @Override
    33     public Book selectByPrimaryKey(Integer bid) {
    34         return bookMapper.selectByPrimaryKey(bid);
    35     }
    36 
    37     @Override
    38     public int updateByPrimaryKeySelective(Book record) {
    39         return bookMapper.updateByPrimaryKeySelective(record);
    40     }
    41 
    42     @Override
    43     public int updateByPrimaryKey(Book record) {
    44         return bookMapper.updateByPrimaryKey(record);
    45     }
    46 
    47     @Override
    48     public List<Book> listPager(Book book, PageBean pageBean) {
    49         return bookMapper.listPager(book);
    50     }
    51 }

    测试层BookServiceImplTest.java

     1 package com.yuan.service.impl;
     2 
     3 import com.yuan.SpringBaseTest;
     4 import com.yuan.model.Book;
     5 import com.yuan.service.BookService;
     6 import com.yuan.util.PageBean;
     7 import com.yuan.util.StringUtil;
     8 import org.junit.Test;
     9 import org.junit.runner.RunWith;
    10 import org.springframework.beans.factory.annotation.Autowired;
    11 
    12 import java.util.List;
    13 
    14 import static org.junit.Assert.*;
    15 
    16 public class BookServiceImplTest extends SpringBaseTest {
    17 
    18     @Autowired
    19     private BookService bookService;
    20 
    21     /**
    22      * 新增
    23      */
    24     @Test
    25     public void insert() {
    26         book.setBid(2);
    27         book.setBname("T226 ssm");
    28         book.setPrice(996f);
    29         this.bookService.insert(book);
    30 
    31     }
    32 
    33     /**
    34      * 查询
    35      */
    36     @Test
    37     public void selectByPrimaryKey() {
    38         Book book = this.bookService.selectByPrimaryKey(2);
    39         System.out.println(book);
    40     }
    41 
    42     /**
    43      * 删除
    44      */
    45     @Test
    46     public void deleteByPrimaryKey() {
    47         bookService.deleteByPrimaryKey(2);
    48     }
    49 
    50     /**
    51      * 分页优化
    52      */
    53     @Test
    54     public void listPager() {
    55         Book book = new Book();
    56         //带条件分页查询
    57         book.setBname(StringUtil.toLikeStr("圣墟"));
    58         PageBean pageBean = new PageBean();
    59         //不分页
    60 //        pageBean.setPagination(false);
    61         //根据页码分页查询
    62         pageBean.setPage(2);
    63         List<Book> books = bookService.listPager(book, pageBean);
    64         for (Book b : books) {
    65             System.out.println(b);
    66         }
    67     }
    68 
    69 }

    插入成功

    查询结果

    删除结果

    Aop整合pagehelper插件

    注意:记得开动态代理

     

    使用AOP编程解决分页代码重复的问题

       @Around("execution(* *..*Service.*pager(..))")

       public Object invoke(ProceedingJoinPoint args)

     

    语法结构:execution(方法修饰符  方法返回值  方法所属类 匹配方法名 (  方法中的形参表 )  方法申明抛出的异常  )

    "*"  :代表一个任意类型的参数;

    ..”:代表零个或多个任意类型的参数。

    案例:

    PageAspect.java

     1 package com.yuan.component;
     2 
     3 import com.github.pagehelper.PageHelper;
     4 import com.github.pagehelper.PageInfo;
     5 import com.yuan.util.PageBean;
     6 import org.aspectj.lang.ProceedingJoinPoint;
     7 import org.aspectj.lang.annotation.Around;
     8 import org.aspectj.lang.annotation.Aspect;
     9 import org.springframework.stereotype.Component;
    10 
    11 import java.util.List;
    12 
    13 @Component
    14 @Aspect
    15 public class PagerAspect {
    16 
    17     @Around("execution(* *..*Service.*Pager(..))")
    18     public Object invoke(ProceedingJoinPoint args)throws Throwable{
    19         //符合*..*Service.*Pager(..)规则的方法,调用时所携带的参数
    20         Object[] params = args.getArgs();
    21         PageBean pageBean = null;
    22         for (Object param : params) {
    23             if(param instanceof  PageBean){
    24                 pageBean = (PageBean)param;
    25                 break;
    26             }
    27         }
    28 
    29         if(pageBean!=null && pageBean.isPagination()){
    30             PageHelper.startPage(pageBean.getPage(),pageBean.getRows());
    31         }
    32 
    33         Object list = args.proceed(params);
    34         if(pageBean!=null && pageBean.isPagination()){
    35             PageInfo pageInfo = new PageInfo((List) list);
    36             pageBean.setTotal(pageInfo.getTotal()+"");
    37         }
    38 
    39         return  list;
    40     }
    41 
    42 
    43 }

    Bookmapper.java

     1 package com.yuan.mapper;
     2 
     3 import com.yuan.model.Book;
     4 import org.springframework.stereotype.Repository;
     5 
     6 import java.util.List;
     7 
     8 @Repository
     9 public interface BookMapper {
    10     int deleteByPrimaryKey(Integer bid);
    11 
    12     int insert(Book record);
    13 
    14     int insertSelective(Book record);
    15 
    16     Book selectByPrimaryKey(Integer bid);
    17 
    18     int updateByPrimaryKeySelective(Book record);
    19 
    20     int updateByPrimaryKey(Book record);
    21 
    22     List<Book> listPager(Book book);
    23 
    24 }

    BookMapper.xml

     <select id="listPager" resultType="com.yuan.model.Book" parameterType="com.yuan.model.Book">
            select
            <include refid="Base_Column_List"/>
            from t_mvc_book
            <where>
                <if test="bname != null and bname !=''">
                    bname like #{bname}
                </if>
            </where>
        </select>

    service层

     1 package com.yuan.service;
     2 
     3 import com.yuan.model.Book;
     4 import com.yuan.util.PageBean;
     5 import org.springframework.stereotype.Service;
     6 
     7 import java.util.List;
     8 
     9 
    10 public interface BookService {
    11 
    12 
    13     List<Book> listPager(Book book, PageBean pageBean);
    14 }

    测试层代码

     1 /**
     2      * 分页优化
     3      */
     4     @Test
     5     public void listPager() {
     6         Book book = new Book();
     7         //带条件分页查询
     8         book.setBname(StringUtil.toLikeStr("圣墟"));
     9         PageBean pageBean = new PageBean();
    10         //不分页
    11 //        pageBean.setPagination(false);
    12         //根据页码分页查询
    13         pageBean.setPage(2);
    14         List<Book> books = bookService.listPager(book, pageBean);
    15         for (Book b : books) {
    16             System.out.println(b);
    17         }
    18     }

    不带条件分页查询

    带条件分页查询

     

    谢谢观看!!!

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/ly-0919/p/11711180.html
Copyright © 2011-2022 走看看