1.创建maven项目
选择webapp骨架,这样创建出来的就是web项目骨架
第一行填写本地库存储位置,第二个是项目名称,然后一直next就可以创建成功。
2.创建相关文件夹:
文件夹的结构,需要注意的是,这里有两个手动需要创建的文件夹,java文件夹里存放的就是java代码,resources里存放的是ssm的相关配置文件。当你创建好这两个文件夹,IDEA一般都会自动识别这两个文件,会把Java文件夹变成蓝色,resources文件夹加一个黄色标签,如果没有识别,就需要你手动去识别,右键项目,选择open module setting,把Java文件夹选择source,把resources文件夹选择resource即可。
3.书写ssm框架的配置文件
在resources文件夹中创建三个配置文件,和一个mappers文件夹,mappers文件夹里再创建一个配置文件。
spring.xml:
<!-- 定义基础扫描的包cn.tedu -->
<context:component-scan base-package="cn.tedu"></context:component-scan>
<!-- datasource和德鲁伊连接池初始化 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="jdbc:mysql:///microtest"></property>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!-- sqlsession 配置接口化Mybatis编程-->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mappers/*.xml"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!-- 扫描接口类mapper所在的包-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.tedu.mapper"/>
</bean>
spring-mvc.xml:
<!-- 开启springmvc的注解生效 -->
<mvc:annotation-driven/>
<mvc:resources mapping="/**" location="/"/>
mybatis-config.xml:
<!--开启驼峰命名 关闭二级缓存 -->
<settings>
//驼峰命名的意思就是,比如数据库中的字段名称是user_name,bean中的字段是userName,
//这两个字段明显不一样,在进行查询结果类型封装的时候就无法对上,
//所以需要开启驼峰命名规则,只要满足这个规则的就可以把上面两个字段对接起来。
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="cacheEnabled" value="false"/>
</settings>
UserMapper.xml:
mapper namespace="cn.tedu.mapper.UserMapper">
<select id="selectUserByUserid" resultType="cn.tedu.domain.User">
select * from t_user where id=#{userId};
</select>
</mapper>
web.xml:
<!-- 定义控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring*.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- spring处理中文乱码问题 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.创建UserMapper.xml的接口
首先在Java文件中创建一个mapper文件夹,里面用来存放一个UserMapper接口,为的是mybatis的接口化调用sql。
public interface UserMapper {
User selectUserByUserid(String userId);
}
5.创建接下来要使用的文件夹:
6.在domain中书写user类代码:
public class User {
private String userId;
private String userName;
private Integer lev;
private Integer points;
private String userPassword;
public void setUserId(String userId) {
this.userId = userId;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setLev(Integer lev) {
this.lev = lev;
}
public void setPoints(Integer points) {
this.points = points;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getUserId() {
return userId;
}
public String getUserName() {
return userName;
}
public Integer getLev() {
return lev;
}
public Integer getPoints() {
return points;
}
public String getUserPassword() {
return userPassword;
}
}
7.书写controller层代码:
需要注意的是,这里返回的是一个json格式数据,如果不写@responseBody,则会报异常,因为默认的是返回地址,视图适配器会更具这个地址去找view。
public class UserController {
@Autowired
private UserService userService;
//订单控制器
@RequestMapping(value = "/user/query/point",method= RequestMethod.GET)
@ResponseBody
public User queryUserPoint(String userId){
User user=userService.queryUserPoint(userId);
return user;
}
//积分控制器
}
8.书写service层代码:
首先,需要写一个接口:
public interface UserService {
public User queryUserPoint(String userId);
}
然后再写该接口是实现类:
这里的usermapper接口前面已经写过了,这里就是直接使用usermapper对象(该对象是底层给我们实例化的)去调用接口中的方法,同时该接口中的方法是映射到配置文件中的sql里,查到数据后,把user的信息封装到user对象中层层返回,最后以json格式返回到前端。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User queryUserPoint(String userId){
return userMapper.selectUserByUserid(userId);
}
}
9.使用maven打包,放置到服务器上:
这里就很简单了,在idea中最右边找到maven,然后操作如下:
首先clean清空target文件夹,防止有冲突。然后再package打包,打包就包含了编译的过程,之后就可以再target中看见这个war包,把该war包放入tomcat的webapp文件夹下,启动tomcat就可以访问。