发表于: 2018-01-27 23:43:42

1 628


完成

简单的SSM框架,项目结构:

web.xml

<!-- 读取spring配置文件 -->
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:application.xml</param-value>
</context-param>

<!--监听器-->
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- springMVC核心配置(前端控制器)-->
<servlet>
   <servlet-name>dispatcherServlet</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <init-param>
       <param-name>contextConfigLocation</param-name>
       <!--读取springMVC配置文件  -->
       <param-value>classpath:spring-mvc.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>

<!-- 拦截设置 -->
<servlet-mapping>
   <servlet-name>dispatcherServlet</servlet-name>
   <url-pattern>/</url-pattern>
</servlet-mapping>

spring-config.xml,其中typeAliasesPackage可以不设置在Mybatis.xml里面,mybatis.xml是空文件,可以不写。

<!--jdbc.properties配置文件传入-->
<context:property-placeholder location="classpath:jdbc.properties"/>

<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName" value="${jdbc_driver}"/>
   <property name="url" value="${jdbc_url}"/>
   <property name="username" value="${jdbc_username}"/>
   <property name="password" value="${jdbc_password}"/>
</bean>

<!--配置会话工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   <property name="dataSource" ref="dataSource"/>
   <property name="mapperLocations" value="classpath:StudentMapper.xml"/>
   <property name="typeAliasesPackage" value="com.wlj.domain"/>
</bean>

<!--配置会话-->
<bean id="sqlsession" class="org.mybatis.spring.mapper.MapperFactoryBean">
   <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
   <property name="mapperInterface" value="com.wlj.dao.StudentDao"/>
</bean>

<!-- 自动扫描注解的bean -->
<context:component-scan base-package="com.wlj.service"/>
<context:component-scan base-package="com.wlj.dao"/>

springmvc-servlet.xml

<!-- 扫描controllercontroller层注入) -->
<context:component-scan base-package="com.wlj.controller"/>

<!-- 对模型视图添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="WEB-INF/pages/"/>
   <property name="suffix" value=".jsp"/>
</bean>

StudentMapper.xml

<mapper namespace="com.wlj.dao.StudentDao">

   <!--设置domain类和数据库中表的字段一一对应,注意数据库字段和domain类中的字段名称不致,此处一定要!-->
   <resultMap id="BaseResultMap" type="Student">
       <id column="id" property="id"/>
       <result column="user_name" property="user_name"/>
   </resultMap>

   <!--查询所有学生记录-->
   <select id="getAll" resultType="Student">
select id,user_name from student
</select>

</mapper>

jdbc.properties

jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/baomingtie
jdbc_username=root
jdbc_password=1234

StudentController

package com.wlj.controller;

import com.wlj.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.Map;

@Controller
public class StudentController {

@Resource
   private StudentService studentService;

   //遍历所有
   @RequestMapping("/table")
public String testListStudent(Map<String, Object> map) {
map.put("studentAll", studentService.getAll());
       return "table";
   }
}

StudentDao

package com.wlj.dao;

import com.wlj.domain.Student;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public interface StudentDao {
List<Student> getAll();
}

Student

package com.wlj.domain;

public class Student {

private int id;
   private String user_name;

   public int getId() {
return id;
   }

public void setId(int id) {
this.id = id;
   }

public String getUser_name() {
return user_name;
   }

public void setUser_name(String user_name) {
this.user_name = user_name;
   }

}



StudentService

package com.wlj.service;

import com.wlj.domain.Student;
import java.util.List;

public interface StudentService {
List<Student> getAll();
}

StudentServiceImpl

package com.wlj.service;

import com.wlj.dao.StudentDao;
import com.wlj.domain.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

@Autowired
   private StudentDao studentDao;

   public List<Student> getAll(){
return studentDao.getAll();
   }

}

index.jsp

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<a href="http://localhost:8080/table">点我点我!</a>

table.jsp,jsp文件中的body和HTML标签可以不写。

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%--border边框厚度,cellspacing 边框与边框之间的间隙大小,cellpadding 边框与其内容的间隙大小--%>
<table border="1" cellspacing="0" cellpadding="10">
   <tr>
       <th>身份证号码</th>
       <th>你的名字</th>
   </tr>
   <%--迭代标签,var="变量名" items="要迭代的list,要被循环的信息"
   ${requestScope.studentAll}是在request范围内查找studentAll--%>
   <c:forEach var="student" items="${requestScope.studentAll}">
<tr>
           <td>${student.id}</td>
           <td>${student.user_name}</td>
       </tr>
   </c:forEach>
</table>

结果

问题

spring配置文件没有被IDEA所管理,最后解决了(http://blog.csdn.net/tiantiandjava/article/details/41204607


收获

跑通了SSM,知道各种配置文件的关系,学了一点jsp标签基本用法


计划

把剩下的增删改部分写上。



返回列表 返回列表
评论

    分享到