完整教程:how2j
备忘
配置运行
- 坑1 tomcat的配置 用how2j提供的jdk (我用官网最新的报错) tmall_ssm
- 坑2 后台配置运行 jre路径改为jdk路径 tmall_ssm admin
- 前台配置运行 tmall_ssm forehome
- 8080端口占用
- unable to ping server 1099 -> jdk版本与tomacat所需jdk版本不一致 tomcat的配置错误姐姐方法
- maven项目构建不成功,除以上问题还有各种各样的花式错误,这次我idea,jdk,tomcat全部下载安装最新版 并配置环境变量。demo一次成功
- 新建maven项目 无resource java文件夹解决方法
- autowired 报错等级 解决方法
实操
1.数据库设计:
- 一共9张表 一进后台 商品得分类
分类表
如吃穿住行 然后看属性属性表
如颜色 价格 再看具体产品产品表
下单时 一类产品对应一个订单项订单项表
多个订单项组成订单订单表
属性值表
(有点困惑 ,放在一起没问题啊) 有买卖就有哦名家评价表
产品图片表
(有点困惑 应该属于产品信息一类,而产品详情是属性和属性值) 最后一个就是用用户表
啦。。。 - 表之间的关系 (用来设置主键 外键 注意 多对多绝对能拆成多对一对多之类的,不要有多对多出现) 盗张图
- 表的属性项 通常建表的注意事项:id属性必有 id int(11) not null auto_increment / 初始属性值default null / 主键约束 primary key(id) 外键约束 constraint 约束名 foreign key(cid)reference 外键坐在的表 (id)/ 结尾设置字符格式 engine=innodb default charset=utf8;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22user categroy表对别的属性只有一对多
create table user(
id int(11) not null auto_increment,
name varchar2(255) default null,
password varchar2(255) default null,
primary key (id)
)engine=innodb default charset=utf8;
create table category(
id int(11) not nul auto_increment,
name varchar2(225) default null,
prinary key(id)
)engine=innodb default charset=utf8;
create table proprety(
id int(11) not null auto_increment,
cid int(11) default null,
name varchar2(225) default null,
constraint fuck_property_categroy foreign key(cid) reference category(id)
) engine=innodb default charset=utf8;
以管窥豹。。。
2.导入数据库文件
3.写后台 CURD +分页 数据渲染到界面显示基本原理
3.1 遇到直接问题 那些配置文件 知道作用 但不知道整个怎么写 无法新建自己写配置文件 自己写的 报错搞死人
3.2 慢慢来 第一个配置文件 log4j.properties 需要懂的基本点
- log4j.rootLogger=ERROR, stdout //error 意思是低于error级别不log stdout 是输出到控制台 R则是滚动输出到文件
- log4j.logger.com.how2java.tmall=TRACE // com.how2java是唯一标示名 不知道啥意思 结果是控制台每条信息 第一个就是trace
- 下面是控制台输出设置
- log4j.appender.stdout=org.apache.log4j.ConsoleAppender
- log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
- log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n //文件格式
- 下面是文件基本信息如:文件名是example.log,文件最大100k, 最多滚动5个文件 输出设置
- log4j.appender.R=org.apache.log4j.RollingFileAppender
- log4j.appender.R.File=example.log //文件在项目根目录文件夹下
- log4j.appender.R.MaxFileSize=100KB
- log4j.appender.R.MaxBackupIndex=5
- 下面是文件输出设置 (与控制台大同小异)
- log4j.appender.R.layout=org.apache.log4j.PatternLayout
- log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
- how2j的完整教程 自己学的时候写的
3.3 第二个配置文件 jdbc.properties jdbc 主要信息 肯定为了使用方便才这样搞
- root //账号
- admin //密码
- jdbc.driver=com.mysql.jdbc.Driver //依赖包
- jdbc.url=jdbc:mysql://localhost:3306/tmall_ssm?useUnicode=true&characterEncoding=utf8 //记不住 tmall_ssm数据库名
3.4 第三个配置文件 applicationContext.xml
- 1.文件头
1
2
3
4
5
6<?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"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
1、xmlns=”http://www.springframework.org/schema/beans"
声明xml文件默认的命名空间,表示未使用其他命名空间的所有标签的默认命名空间。
2、xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance"
声明XML Schema 实例,声明后就可以使用 schemaLocation 属性了
3、xmlns:aop=”http://www.springframework.org/schema/aop"
声明前缀为aop的命名空间,后面的URL用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
4、xsi:schemaLocation=”
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
这个从命名可以看出个大概,指定Schema的位置这个属性必须结合命名空间使用。这个属性有两个值,第一个值表示需要使用的命名空间。第二个值表示供命名空间使用的 XML schema 的位置
2.启动注解识别
1
2<context:annotation-config />
<context:component-scan base-package="com.how2java.tmall.service" />3.导入数据库配置文件
1
<context:property——placeholder location="classpath:jdbc.properties"/>
- 配置数据库连接池 //记不住+1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="20" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 1" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
</bean>
- 配置数据库连接池 //记不住+1
5.Mybatis的SessionFactory配置 // 现在的目的是自己另外新建也能搞出来,想自己打配置文件现在不能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="typeAliasesPackage" value="com.how2java.tmall.pojo" /> //包名换成自己的
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
<!--分页插件,目前先注释,后面重构的时候才会使用
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
</value>
</property>
</bean>
</array>
</property>
-->
</bean>6.
1
2
3
4
5
6<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.how2java.tmall.mapper"/> //包名换
</bean>
#### 3.5 第四个配置文件 pom.xml 配置相关jar包 自己看着改 <groupId>com.how2java.tmall</groupId>
<artifactId>tmall_ssm</artifactId>
`
-
-
-