实训心得
实训概述
在此次实训中,我主要负责的是后台部分,所以这篇实训总结主要写后台的一些收获,其中会有一点前端的小收获。
通过这次实训,我知道了一个项目在后台实现的主要步骤,学会了配置数据库、SpringBoot配置MyBATis,了解了一些前端与后台的连接,等等。
标题
- 项目前期准备
E-R图、功能结构图、流程图让我们对项目有初步的框架与了解;配置数据库、SpringBoot配置Mybatis让我们为项目的开始做好环境上的准备。
E-R图(实体-联系图):实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。
流程图:让我们更形象直观地明白各种操作及其之间的关系,是我们的想法得到更直观充分的体现。
功能结构图:将系统功能分解,按功能从属关系来画图。
配置数据库:
SpringBoot配置Mybatis:a、引入Maven依赖;b、创建mybatis-config.xml;c、创建entity和mAPPer;d、配置application.yml文件;e、配置MapperScan;f、配置数据源
<!-- mysql连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<?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>
<!--使用jdbc的getgeneratedKeys获取数据库自增主键值-->
<setting name="useGeneratedKeys" value="true"/>
<!--使用列标签替换列别名 默认true-->
<setting name="useColumnLabel" value="true"/>
<!--开启驼峰命名转换-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
<!--头部信息,确定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">
<!--此处是对应UserDao接口-->
<mapper namespace="org.sicau.iotworksexhibition.dao.UserDao">
<!--此处的Student对应POJO实体,id对应定义方法名-->
<select id="queryStudentList" resultType="org.sicau.iotworksexhibition.entity.POJO.Student">
select * from user_tb;
</select>
</mapper>
# mybatis 配置
mybatis:
mapper-locations: classpath:mapper/*.xml # 配置mapper路径
type-aliases-package: org.sicau.iotworksexhibition.PO # 配置实体对象路径,这样在涉及到实体类写sql语句的时候,可以不用写包名
config-location: classpath:mybatis-config.xml # 配置配置文件路径
@SpringBootApplication
@MapperScan("org.sicau.iotworksexhibition.dao") //扫描mybatis的mapper
public class IotWorksExhibitionApplication {
public static void main(String[] args) {
SpringApplication.run(IotWorksExhibitionApplication.class, args);
}
}
spring:
# 配置数据源
datasource:
url: jdbc:mysql://localhost:3306/iot_works_exhibition?useunicode=true&characterEncoding=utf-8&useSSL=false
username: root # 数据库用户名
password: 123456 # 数据库密码
dbcp2:
default-auto-commit: false # 是否自动提交
tomcat:
max-wait: 60000 # 等待超时时间
转载出处:http://blog.beifengtz.com/article/12
- 项目中
a、 Java包命名中有四种项目类型:com.(具有商业性的项目,受法律保护)\org.(国家、教育、政府机构,受法律保护)\net.(个人项目,不受法律保护)\demo.(练习案例,不受法律保护)
b、 PO(持久对象:与数据库一一对应)、POJO(简单实体对象)、VO(值对象:对象传输,通常用于业务层之间的传递)
c、 重写与重载的区别:
重写(Override):在子类中把父类本身有的方法重新写一遍。发生在父类与子类之间;方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同;访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) ;重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常
重载(Overload):在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载。重载Overload是一个类中多态性的一种表现;重载要求同名方法的参数列表不同(参数类型,参数个数甚至是参数顺序) ;重载的时候,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准
d、Usercontroller–> UserService–>UserServiceImp–>UserDao–>UserMapper–>db
e、cookie:存在固定时间长短的数据(保存在浏览器里面);localStorage:永久存在的,存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信;sessionStorage:存在服务器端。仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
f、还有分页、数据的增删改查,等等
g、前端:ajax
url:(默认为当前页地址)发送请求的地址。url路径可以为相对路径或者绝对路径。
type:用什么方式传输:POST(创建)、GET(查看)<默认>、DELETE(删除)、PUT(更新)。注意其他http请求方法, put和delete仅部分浏览器支持。
data:传参数;要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。
datatype:预期服务器返回的数据类型。类型:String;“xml”: 返回 XML 文档,可用 jQuery 处理;“html”: 返回纯文本 HTML 信息。包含的 script标签会在插入 dom 时执行;“script”:返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 “cache” 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载);“json”: 返回 JSON 数据 ;“jsonp”:JSONP 格式。使用 JSONP 形式调用函数时,如 “myurl?callback=?” jQuery 将自动替换 ? 为正确的函数名,以执行回调函数;“text”:返回纯文本字符串。
转载参考:http://www.cnblogs.com/tylerdonet/p/3520862.html
项目框架
感想
- 项目分工应明确合理:明确合理的分工有利于我们目标明确地完成我们的项目。
- 逻辑需清晰:不论是前端还是后台,清晰的逻辑都有利于我们更好的完成项目。在在做项目之前,首先就要理清自己的思维,明白我想做的是什么样的,不然会很容易混乱。
注:此博文纯属新手渣作,请选择性看,诚请批评指正。
相关阅读
通过这次为时两周的实训,我收获了很多,把以前所学的一些书本知识运用到实际中来,对它们理解的更透彻。原先,学的时候感叹学的资料太难