在Dao层,通过数据库表反向生成,可以节省我们很多的精力,把更多的精力投入复杂的业务中。

数据库表反向生成,指的是通过数据库如mysql中的库表schema生成dao层读写表的基础代码,包括model(entity)和dao(mapper)。

在本文中我先介绍java中mybatis-generator的反向生成。我们在下一篇文章中会介绍django中ORM的反向生成。

mybatis-generator的反向生成有两种方式

1)源码打包生成mybatis-generator.jar,通过执行jar来生成代码,然后把代码拷贝到工程

2)直接跟编辑器集成,例如IDEA。

我们只说明第二种方式。

1、在IDEA中创建一个maven工程

2、在maven工程的pom文件中添加mybatis-generator-maven-plugin插件

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.mybatis.generator</groupId>
  5. <artifactId>mybatis-generator-maven-plugin</artifactId>
  6. <version>1.3.2</version>
  7. <configuration>
  8. <verbose>true</verbose>
  9. <overwrite>true</overwrite>
  10. </configuration>
  11. </plugin>
  12. </plugins>
  13. </build>

3、在src/main/resources目录下创建两个配置文件,generatorConfig.xml和generator.properties

generatorConfig.xml文件

内容请看注释,<table>中配置的是你要扫描的表。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!--导入属性配置 -->
  7. <properties resource="generator.properties"></properties>
  8.  
  9. <!--指定特定数据库的jdbc驱动jar包的位置 -->
  10. <classPathEntry location="${jdbc.driverLocation}"/>
  11.  
  12. <context id="default" targetRuntime="MyBatis3">
  13.  
  14. <!-- optional,旨在创建class时,对注释进行控制 -->
  15. <commentGenerator>
  16. <property name="suppressDate" value="true" />
  17. </commentGenerator>
  18.  
  19. <!--jdbc的数据库连接 -->
  20. <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.connectionURL}" userId="${jdbc.userId}" password="${jdbc.password}">
  21. </jdbcConnection>
  22.  
  23. <!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
  24. <javaTypeResolver >
  25. <property name="forceBigDecimals" value="false" />
  26. </javaTypeResolver>
  27.  
  28. <!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
  29. targetPackage 指定生成的model生成所在的包名
  30. targetProject 指定在该项目下所在的路径
  31. -->
  32. <javaModelGenerator targetPackage="com.xiaoju.dqa.jazz.dao.model" targetProject="src/main/java">
  33. <!-- 是否对model添加 构造函数 -->
  34. <property name="constructorBased" value="true"/>
  35.  
  36. <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
  37. <property name="enableSubPackages" value="false"/>
  38.  
  39. <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
  40. <property name="immutable" value="true"/>
  41.  
  42. <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
  43. <property name="trimStrings" value="true"/>
  44. </javaModelGenerator>
  45.  
  46. <!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
  47. <sqlMapGenerator targetPackage="mybatis-mapper" targetProject="src/main/resources">
  48. <property name="enableSubPackages" value="false"/>
  49. </sqlMapGenerator>
  50.  
  51. <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
  52. type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
  53. type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
  54. type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
  55. -->
  56. <javaClientGenerator targetPackage="com.xiaoju.dqa.jazz.dao.mapper" targetProject="src/main/java" type="MIXEDMAPPER">
  57. <property name="enableSubPackages" value=""/>
  58. <!--
  59. 定义Maper.java 源代码中的ByExample() 方法的可视性,可选的值有:
  60. public;
  61. private;
  62. protected;
  63. default
  64. 注意:如果 targetRuntime="MyBatis3",此参数被忽略
  65. -->
  66. <property name="exampleMethodVisibility" value=""/>
  67. <!--
  68. 方法名计数器
  69. Important note: this property is ignored if the target runtime is MyBatis3.
  70. -->
  71. <property name="methodNameCalculator" value=""/>
  72.  
  73. <!--
  74. 为生成的接口添加父接口
  75. -->
  76. <property name="rootInterface" value=""/>
  77.  
  78. </javaClientGenerator>
  79.  
  80. <table tableName="hiveTable" domainObjectName="HiveTable"
  81. enableCountByExample="false" enableUpdateByExample="false"
  82. enableDeleteByExample="false" enableSelectByExample="false"
  83. selectByExampleQueryId="false">
  84. </table>
  85.  
  86. <table tableName="hiveLocation" domainObjectName="HiveLocation"
  87. enableCountByExample="false" enableUpdateByExample="false"
  88. enableDeleteByExample="false" enableSelectByExample="false"
  89. selectByExampleQueryId="false">
  90. </table>
  91.  
  92. </context>
  93. </generatorConfiguration>

generator.properties文件

这个主要配置的是你的驱动程序和数据库链接,mybatis将去配置的数据库中扫描要生成的表。

  1. jdbc.driverLocation=/Users/didi/.m2/repository/mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.jar
  2. jdbc.driverClass=com.mysql.jdbc.Driver
  3. jdbc.connectionURL=jdbc:mysql://localhost:3306/jazz?useUnicode=true&characterEncoding=utf-8
  4. jdbc.userId=root
  5. jdbc.password=123456

4、在IDEA中添加Run选项,使用mybatis-generator-maven-plugin

配置如下

1)Name写generator会在run菜单生成一个名叫generator的选项;

2)CommandLine写要执行的命令,mybatis-generator:generate  -e

3)working directory写你pom所在的工程,我这里是区分模块开发的,所以在dao模块下。

5、run -> generator执行

这样就会生成对应的代码了

我两张表的建表语句如下:

  1. CREATE TABLE `hiveTable` (
  2. `id` int(100) NOT NULL AUTO_INCREMENT COMMENT '库表唯一Id',
  3. `dbName` VARCHAR(100) COMMENT '库名',
  4. `tableName` VARCHAR(100) COMMENT '表名',
  5. `location` VARCHAR(500) COMMENT '路径',
  6. `createTime` DATETIME COMMENT '创建时间',
  7. `updateTime` DATETIME COMMENT '更新时间',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  10.  
  11. CREATE TABLE `hiveLocation` (
  12. `id` int(100) NOT NULL AUTO_INCREMENT COMMENT '路径唯一Id',
  13. `location` VARCHAR(500) COMMENT '路径',
  14. `size` INT(10) COMMENT '大小',
  15. `createTime` DATETIME COMMENT '创建时间',
  16. `updateTime` DATETIME COMMENT '更新时间',
  17. PRIMARY KEY (`id`)
  18. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

生成的代码如图

我们展示一些生成的代码:

HiveTable.java

  1. package com.xiaoju.dqa.jazz.dao.model;
  2.  
  3. import java.util.Date;
  4.  
  5. public class HiveTable {
  6. /**
  7. * This field was generated by MyBatis Generator.
  8. * This field corresponds to the database column hiveTable.id
  9. *
  10. * @mbggenerated
  11. */
  12. private Integer id;
  13.  
  14. /**
  15. * This field was generated by MyBatis Generator.
  16. * This field corresponds to the database column hiveTable.dbName
  17. *
  18. * @mbggenerated
  19. */
  20. private String dbname;
  21.  
  22. /**
  23. * This field was generated by MyBatis Generator.
  24. * This field corresponds to the database column hiveTable.tableName
  25. *
  26. * @mbggenerated
  27. */
  28. private String tablename;
  29.  
  30. /**
  31. * This field was generated by MyBatis Generator.
  32. * This field corresponds to the database column hiveTable.location
  33. *
  34. * @mbggenerated
  35. */
  36. private String location;
  37.  
  38. /**
  39. * This field was generated by MyBatis Generator.
  40. * This field corresponds to the database column hiveTable.createTime
  41. *
  42. * @mbggenerated
  43. */
  44. private Date createtime;
  45.  
  46. /**
  47. * This field was generated by MyBatis Generator.
  48. * This field corresponds to the database column hiveTable.updateTime
  49. *
  50. * @mbggenerated
  51. */
  52. private Date updatetime;
  53.  
  54. /**
  55. * This method was generated by MyBatis Generator.
  56. * This method corresponds to the database table hiveTable
  57. *
  58. * @mbggenerated
  59. */
  60. public HiveTable(Integer id, String dbname, String tablename, String location, Date createtime, Date updatetime) {
  61. this.id = id;
  62. this.dbname = dbname;
  63. this.tablename = tablename;
  64. this.location = location;
  65. this.createtime = createtime;
  66. this.updatetime = updatetime;
  67. }
  68.  
  69. /**
  70. * This method was generated by MyBatis Generator.
  71. * This method returns the value of the database column hiveTable.id
  72. *
  73. * @return the value of hiveTable.id
  74. *
  75. * @mbggenerated
  76. */
  77. public Integer getId() {
  78. return id;
  79. }
  80.  
  81. /**
  82. * This method was generated by MyBatis Generator.
  83. * This method returns the value of the database column hiveTable.dbName
  84. *
  85. * @return the value of hiveTable.dbName
  86. *
  87. * @mbggenerated
  88. */
  89. public String getDbname() {
  90. return dbname;
  91. }
  92.  
  93. /**
  94. * This method was generated by MyBatis Generator.
  95. * This method returns the value of the database column hiveTable.tableName
  96. *
  97. * @return the value of hiveTable.tableName
  98. *
  99. * @mbggenerated
  100. */
  101. public String getTablename() {
  102. return tablename;
  103. }
  104.  
  105. /**
  106. * This method was generated by MyBatis Generator.
  107. * This method returns the value of the database column hiveTable.location
  108. *
  109. * @return the value of hiveTable.location
  110. *
  111. * @mbggenerated
  112. */
  113. public String getLocation() {
  114. return location;
  115. }
  116.  
  117. /**
  118. * This method was generated by MyBatis Generator.
  119. * This method returns the value of the database column hiveTable.createTime
  120. *
  121. * @return the value of hiveTable.createTime
  122. *
  123. * @mbggenerated
  124. */
  125. public Date getCreatetime() {
  126. return createtime;
  127. }
  128.  
  129. /**
  130. * This method was generated by MyBatis Generator.
  131. * This method returns the value of the database column hiveTable.updateTime
  132. *
  133. * @return the value of hiveTable.updateTime
  134. *
  135. * @mbggenerated
  136. */
  137. public Date getUpdatetime() {
  138. return updatetime;
  139. }
  140. }

HiveTableMapper.java

  1. package com.xiaoju.dqa.jazz.dao.mapper;
  2.  
  3. import com.xiaoju.dqa.jazz.dao.model.HiveTable;
  4. import org.apache.ibatis.annotations.*;
  5.  
  6. @Mapper
  7. public interface HiveTableMapper {
  8. /**
  9. * This method was generated by MyBatis Generator.
  10. * This method corresponds to the database table hiveTable
  11. *
  12. * @mbggenerated
  13. */
  14. @Delete({
  15. "delete from hiveTable",
  16. "where id = #{id,jdbcType=INTEGER}"
  17. })
  18. int deleteByPrimaryKey(Integer id);
  19.  
  20. /**
  21. * This method was generated by MyBatis Generator.
  22. * This method corresponds to the database table hiveTable
  23. *
  24. * @mbggenerated
  25. */
  26. @Insert({
  27. "insert into hiveTable (id, dbName, ",
  28. "tableName, location, ",
  29. "createTime, updateTime)",
  30. "values (#{id,jdbcType=INTEGER}, #{dbname,jdbcType=VARCHAR}, ",
  31. "#{tablename,jdbcType=VARCHAR}, #{location,jdbcType=VARCHAR}, ",
  32. "#{createtime,jdbcType=TIMESTAMP}, #{updatetime,jdbcType=TIMESTAMP})"
  33. })
  34. int insert(HiveTable record);
  35.  
  36. /**
  37. * This method was generated by MyBatis Generator.
  38. * This method corresponds to the database table hiveTable
  39. *
  40. * @mbggenerated
  41. */
  42. int insertSelective(HiveTable record);
  43.  
  44. /**
  45. * This method was generated by MyBatis Generator.
  46. * This method corresponds to the database table hiveTable
  47. *
  48. * @mbggenerated
  49. */
  50. @Select({
  51. "select",
  52. "id, dbName, tableName, location, createTime, updateTime",
  53. "from hiveTable",
  54. "where id = #{id,jdbcType=INTEGER}"
  55. })
  56. @ResultMap("BaseResultMap")
  57. HiveTable selectByPrimaryKey(Integer id);
  58.  
  59. /**
  60. * This method was generated by MyBatis Generator.
  61. * This method corresponds to the database table hiveTable
  62. *
  63. * @mbggenerated
  64. */
  65. int updateByPrimaryKeySelective(HiveTable record);
  66.  
  67. /**
  68. * This method was generated by MyBatis Generator.
  69. * This method corresponds to the database table hiveTable
  70. *
  71. * @mbggenerated
  72. */
  73. @Update({
  74. "update hiveTable",
  75. "set dbName = #{dbname,jdbcType=VARCHAR},",
  76. "tableName = #{tablename,jdbcType=VARCHAR},",
  77. "location = #{location,jdbcType=VARCHAR},",
  78. "createTime = #{createtime,jdbcType=TIMESTAMP},",
  79. "updateTime = #{updatetime,jdbcType=TIMESTAMP}",
  80. "where id = #{id,jdbcType=INTEGER}"
  81. })
  82. int updateByPrimaryKey(HiveTable record);
  83. }

HiveTableMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.xiaoju.dqa.jazz.dao.mapper.HiveTableMapper" >
  4. <resultMap id="BaseResultMap" type="com.xiaoju.dqa.jazz.dao.model.HiveTable" >
  5. <!--
  6. WARNING - @mbggenerated
  7. This element is automatically generated by MyBatis Generator, do not modify.
  8. -->
  9. <constructor >
  10. <idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
  11. <arg column="dbName" jdbcType="VARCHAR" javaType="java.lang.String" />
  12. <arg column="tableName" jdbcType="VARCHAR" javaType="java.lang.String" />
  13. <arg column="location" jdbcType="VARCHAR" javaType="java.lang.String" />
  14. <arg column="createTime" jdbcType="TIMESTAMP" javaType="java.util.Date" />
  15. <arg column="updateTime" jdbcType="TIMESTAMP" javaType="java.util.Date" />
  16. </constructor>
  17. </resultMap>
  18. <sql id="Base_Column_List" >
  19. <!--
  20. WARNING - @mbggenerated
  21. This element is automatically generated by MyBatis Generator, do not modify.
  22. -->
  23. id, dbName, tableName, location, createTime, updateTime
  24. </sql>
  25. <insert id="insertSelective" parameterType="com.xiaoju.dqa.jazz.dao.model.HiveTable" >
  26. <!--
  27. WARNING - @mbggenerated
  28. This element is automatically generated by MyBatis Generator, do not modify.
  29. -->
  30. insert into hiveTable
  31. <trim prefix="(" suffix=")" suffixOverrides="," >
  32. <if test="id != null" >
  33. id,
  34. </if>
  35. <if test="dbname != null" >
  36. dbName,
  37. </if>
  38. <if test="tablename != null" >
  39. tableName,
  40. </if>
  41. <if test="location != null" >
  42. location,
  43. </if>
  44. <if test="createtime != null" >
  45. createTime,
  46. </if>
  47. <if test="updatetime != null" >
  48. updateTime,
  49. </if>
  50. </trim>
  51. <trim prefix="values (" suffix=")" suffixOverrides="," >
  52. <if test="id != null" >
  53. #{id,jdbcType=INTEGER},
  54. </if>
  55. <if test="dbname != null" >
  56. #{dbname,jdbcType=VARCHAR},
  57. </if>
  58. <if test="tablename != null" >
  59. #{tablename,jdbcType=VARCHAR},
  60. </if>
  61. <if test="location != null" >
  62. #{location,jdbcType=VARCHAR},
  63. </if>
  64. <if test="createtime != null" >
  65. #{createtime,jdbcType=TIMESTAMP},
  66. </if>
  67. <if test="updatetime != null" >
  68. #{updatetime,jdbcType=TIMESTAMP},
  69. </if>
  70. </trim>
  71. </insert>
  72. <update id="updateByPrimaryKeySelective" parameterType="com.xiaoju.dqa.jazz.dao.model.HiveTable" >
  73. <!--
  74. WARNING - @mbggenerated
  75. This element is automatically generated by MyBatis Generator, do not modify.
  76. -->
  77. update hiveTable
  78. <set >
  79. <if test="dbname != null" >
  80. dbName = #{dbname,jdbcType=VARCHAR},
  81. </if>
  82. <if test="tablename != null" >
  83. tableName = #{tablename,jdbcType=VARCHAR},
  84. </if>
  85. <if test="location != null" >
  86. location = #{location,jdbcType=VARCHAR},
  87. </if>
  88. <if test="createtime != null" >
  89. createTime = #{createtime,jdbcType=TIMESTAMP},
  90. </if>
  91. <if test="updatetime != null" >
  92. updateTime = #{updatetime,jdbcType=TIMESTAMP},
  93. </if>
  94. </set>
  95. where id = #{id,jdbcType=INTEGER}
  96. </update>
  97. </mapper>

想让xml文件生效,你可以在创建数据源的时候加入xml文件的路径

例如其中的bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis-mapper/*.xml"));

  1. package com.xiaoju.dqa.jazz.dao.configuration;
  2.  
  3. import org.apache.ibatis.session.SqlSessionFactory;
  4. import org.mybatis.spring.SqlSessionFactoryBean;
  5. import org.mybatis.spring.SqlSessionTemplate;
  6. import org.mybatis.spring.annotation.MapperScan;
  7. import org.springframework.beans.factory.annotation.Qualifier;
  8. import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
  9. import org.springframework.boot.context.properties.ConfigurationProperties;
  10. import org.springframework.context.annotation.Bean;
  11. import org.springframework.context.annotation.Configuration;
  12. import org.springframework.context.annotation.Primary;
  13. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  14. import org.springframework.jdbc.datasource.DataSourceTransactionManager;
  15.  
  16. import javax.sql.DataSource;
  17.  
  18. @Configuration
  19. @MapperScan(basePackages = "com.xiaoju.dqa.jazz.dao.mapper", sqlSessionTemplateRef = "jazzSqlSessionTemplate")
  20. public class JazzDataSource {
  21.  
  22. @Bean(name = "jazzData")
  23. @ConfigurationProperties(prefix = "spring.datasource.jazz")
  24. @Primary
  25. public DataSource jazzData() {
  26. return DataSourceBuilder.create().build();
  27. }
  28.  
  29. @Bean(name = "jazzSqlSessionFactory")
  30. @Primary
  31. public SqlSessionFactory jazzSqlSessionFactory(@Qualifier("jazzData") DataSource dataSource) throws Exception {
  32. SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
  33. bean.setDataSource(dataSource);
  34. bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis-mapper/*.xml"));
  35. return bean.getObject();
  36. }
  37.  
  38. @Bean(name = "jazzTransactionManager")
  39. @Primary
  40. public DataSourceTransactionManager jazzTransactionManager(@Qualifier("jazzData") DataSource dataSource) {
  41. return new DataSourceTransactionManager(dataSource);
  42. }
  43.  
  44. @Bean(name = "jazzSqlSessionTemplate")
  45. @Primary
  46. public SqlSessionTemplate jazzSqlSessionTemplate(@Qualifier("jazzSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
  47. return new SqlSessionTemplate(sqlSessionFactory);
  48. }
  49.  
  50. }

数据库表反向生成(一) MyBatis-generator与IDEA的集成的更多相关文章

  1. 5.7 Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。-mybatis-generator将数据库表反向生成对应的实体类及基于mybatis的mapper接口和xml映射文件(类似代码生成器)

    一. liquibase 使用说明 功能概述:通过xml文件规范化维护数据库表结构及初始化数据. 1.配置不同环境下的数据库信息 (1)创建不同环境的数据库. (2)在resource/liquiba ...

  2. Hibernate、Mybatis 通过数据库表反向生成java类和配置

    一.通过MyEclipse生成Hibernate类文件和hbm.xml文件,或者annotation文件    (转载孙宇老师的文章) 二.Mybatis生成实体类和配置文件: myeclipse下生 ...

  3. PowerDesigner中SQL文件、数据库表反向生成PDM

    1      反向生成PDM 1)        创建一个空的PDM模型(选择相应的DBMS): 2)        选择[Database]--[Update Model from Database ...

  4. 数据库表反向生成(二) Django ORM inspectdb

    在前一篇我们说了,mybatis-generator反向生成代码. 这里我们开始说如何在django中反向生成mysql model代码. 我们在展示django ORM反向生成之前,我们先说一下怎么 ...

  5. python Django 之 Model ORM inspectdb(数据库表反向生成)

    在前一篇我们说了,mybatis-generator反向生成代码. 这里我们开始说如何在django中反向生成mysql model代码. 我们在展示django ORM反向生成之前,我们先说一下怎么 ...

  6. hibernate通过数据库表反向生成实体类

      步骤一: window-->open Perspective-->MyEclipse Java Persistence 进行了上面的 操作后会出现一个视图DB Brower:MyEcl ...

  7. MyEclipse从数据库表反向生成实体类之Hibernate方式(反向工程)

    一.打开Myeclipse Database Explorer 二.新建[New..] 三.选择数据库,添加驱动 四.测试连接 五.选中数据库中的表单击右键选择[Hibernate Rever..] ...

  8. mysql数据库表反向生成modes类

    一,如果你是windows,打开cmd,切换到desktop目录下 二,需要连接你的数据库,并且执行命令:sqlacodegen  --outfile models.py mysql+pymysql: ...

  9. PowerDesigner中利用数据库表反向生成PDM(jdk必须是32位)

    第一步:创建一个空的PDM模型(选择对应的DBMS):File-->New 第二步:选择DataBase-->Configure Connections,配置即将连接的数据库 第三步:选择 ...

随机推荐

  1. IntelliJ IDEA使用(一)基本设置与类、方法模板设置

    其实之前一直开发都是在使用的是Eclipse,但是最近在做Maven项目的时候要用IntelliJ IDEA,据说这个idea功能非常的强大,最近在使用的时候发现如果适应的真的是非常的强大.感觉是比E ...

  2. 玩一把JS的链式调用

    链式调用我们平常用到很多,比如jQuery中的$(ele).show().find(child).hide(),再比如angularjs中的$http.get(url).success(fn_s).e ...

  3. SGI STL内存配置器存在内存泄漏吗?

    阅读了SGI的源码后对STL很是膜拜,很高质量的源码,从中学到了很多.温故而知新!下文中所有STL如无特殊说明均指SGI版本实现. STL 内存配置器 STL对内存管理最核心部分我觉得是其将C++对象 ...

  4. 【集美大学1411_助教博客】团队作业1——团队展示&选题 成绩

    第一次团队作业已经新鲜出炉啦,各位同学请查收.截止日期前,全班都按时提交了作业,而且有的团队还提交了两次呢,下次不要这样啦~ 题目 团队作业1--团队展示&选题 回顾 个人作业1--四则运算题 ...

  5. 个人作业(3)----个人总结(Alpha阶段)

    一.个人总结. 个人完成的任务:在此阶段我完成了用户调研.部分测试以及部分博客书写. 个人及团队心得:经过几周Alpha阶段开发后,我大致了解了开发软件的过程,开发一个软件并没有以往想象中那么简易,在 ...

  6. 201521123103 《Java学习笔记》 第六周学习总结

    一.本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 二.书面作业 1.clone方法 1.1 Object对象中 ...

  7. 201521123080《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...

  8. 201521123062《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 多态定义:同种形态不同定义 类注释格式 继承,共同行为及属性 在instanceof检查过后 ...

  9. PTA中提交Java程序的一些套路

    201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...

  10. 201521123077 《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 -参考:实验任务书-题目1 建立数据库,将自己的姓名.学号作为一条 ...