1.搭建标准web项目结构

搭建完成后的项目结构如图

1.创建普通web项目(略)

2.在lib中添加jar包

3.在resources中添加spring-config.xml主配置文件

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
">
<!-- 开启注解-->
<mvc:annotation-driven/>
<!-- 扫描包-->
<context:component-scan base-package="com.day02.sation.controller,com.day02.sation.service"/>
<!--读取配置文件-->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置连接池-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.userName}"/>
<property name="password" value="${mysql.password}"/>
</bean>
<!-- 配置sqlSessionFactory-->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置连接池-->
<property name="dataSource" ref="dataSource"/>
<!--别名-->
<!-- 读取映射文件-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<!-- 扫描接口包-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- sessionFactory-->
<property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
<!-- 扫描接口包-->
<property name="basePackage" value="com.day02.sation.dao"/>
</bean>
<!--前缀后缀-->
</beans>

使用到的db.properties如下:

 #驱动
mysql.driver=com.mysql.jdbc.Driver
#数据库ip地址
mysql.url=jdbc:mysql://localhost:3306/station
#用户名
mysql.userName=root
#密码
mysql.password=admin

4.配置web.xml代码

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- 配置dispatcherServlet-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 读取spring-config.xml文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-config.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>
</web-app>

5.在model中创建Ticket.java文件

 package com.day02.sation.model;

 /**
* Created by Administrator on 12/27.
*/
public class Ticket {
private Integer id;
private String startStation;
private String stopStation; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getStartStation() {
return startStation;
} public void setStartStation(String startStation) {
this.startStation = startStation;
} public String getStopStation() {
return stopStation;
} public void setStopStation(String stopStation) {
this.stopStation = stopStation;
}
}

Ticket.java

6.在dao中添加ITicket.java接口

 package com.day02.sation.dao;

 import com.day02.sation.model.Ticket;

 import java.util.List;

 /**
* Created by Administrator on 12/27.
*/
public interface ITicketDao {
/**
* 查询所有
* @return
*/
List<Ticket> getList();
}

ITicketDao.java

7.在resources中添加mapper文件夹,然后在mapper中添加ticketMapper.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">
<!--
对应的接口地址: namespace="com.day02.sation.dao.ITicketDao"
-->
<mapper namespace="com.day02.sation.dao.ITicketDao">
<!-- 查询所有
对应的接口方法名称 id="getList"
定义返回的类型 resultType="com.day02.sation.model.Ticket"
-->
<select id="getList" resultType="com.day02.sation.model.Ticket">
SELECT id,start_station startStation,stop_station stopStation FROM ticket
</select>
</mapper>

8.编写测试类进行测试   记住所有dao必须做测试,非常重要

 package com.day02.sation.test;

 import com.day02.sation.dao.ITicketDao;
import com.day02.sation.model.Ticket;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.List; /**
* Created by Administrator on 12/27.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-config.xml")
public class TestDao {
@Autowired
private ITicketDao ticketDao;
@Test
public void testGetList(){ List<Ticket> list = ticketDao.getList(); System.out.println("list="+list);
}
}

9.编写ITicketservice.java接口

 package com.day02.sation.service;

 import com.day02.sation.model.Ticket;

 import java.util.List;

 /**
* Created by Administrator on 12/27.
*/
public interface ITicketService {
/* 查询所有*/
List<Ticket> getList();
}

10.编写TicketService实现类

 package com.day02.sation.service.impl;

 import com.day02.sation.dao.ITicketDao;
import com.day02.sation.model.Ticket;
import com.day02.sation.service.ITicketService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; /**
* Created by Administrator on 12/27.
*/
@Service
public class TicketService implements ITicketService {
@Autowired
private ITicketDao ticketDao;
@Override
public List<Ticket> getList() {
return ticketDao.getList();
}
}

11.编写控制层  TicketController

 package com.day02.sation.controller;

 import com.day02.sation.model.Ticket;
import com.day02.sation.service.ITicketService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest;
import java.util.List; /**
* Created by Administrator on 12/27.
*/
@Controller
@RequestMapping("/ticket")
public class TicketController {
@Autowired
private ITicketService ticketService; /**
* 数据和页面一起请求
* @param req
* @return
*/
@RequestMapping("/list")
public String listPage(HttpServletRequest req){
System.out.println("----listPage--------");
//接收参数
//调用业务方法
List<Ticket> list = ticketService.getList();
req.setAttribute("list",list);
return "/WEB-INF/views/list.jsp";
} }

12.在该路径下(WEB-INF/views/)下添加list.jsp

注意在使用c标签时必须

a.配置  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

b.添加jar包  standard.jar     jstl.jar

 <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>车票列表</title>
</head>
<body>
<div align="center">
<table id="ticketList" border="1" cellspacing="1">
<tr>
<td>编号</td>
<td>开始车站</td>
<td>到达车站</td>
</tr>
<%--模拟假数据--%>
<tr>
<td>1</td>
<td>北京</td>
<td>成都</td>
</tr>
<%-- 数据库中获取的数据--%>
<c:forEach items="${list}" var="ticket">
<tr>
<td>${ticket.id}</td>
<td>${ticket.startStation}</td>
<td>${ticket.stopStation}</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>

list.jsp

13.部署启动,访问 http://localhost:8080/ticket/list 界面如下图:

大型运输行业实战_day03_1_基于intellij idea的非maven spring+springMVC+mybatis搭建的更多相关文章

  1. 大型运输行业实战_day11_2_事务理论与实际生产配置事务管理

    1.什么是事务(Transaction:tx) 数据库的某些需要分步完成,看做是一个整体(独立的工作单元),不能分割,要么整体成功,要么整体生效.“一荣俱荣,一损俱损”,最能体现事务的思想.案例:银行 ...

  2. SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)

    本篇文章主要内容是介绍如何使用IntelliJ IDEA创建Spring + SpringMVC + MyBatis项目,下面会给出项目搭建的详细步骤以及相关的配置文件. 1. 创建maven项目   ...

  3. 大型运输行业实战_day14_1_webserivce简单入门

    1.简单使用 1.1.服务端 1.编写接口 package com.day02.sation.ws; /** * Created by Administrator on 1/12. */ public ...

  4. 大型运输行业实战_day15_1_全文检索之Lucene

    1.引入 全文检索简介: 非结构化数据又一种叫法叫全文数据.从全文数据(文本)中进行检索就叫全文检索. 2.数据库搜索的弊端 案例 :     select  *  from product  whe ...

  5. 大型运输行业实战_day13_1_定时任务spring-quartz

    1.jar包 拷贝quartz-2.2.3.jar包到项目 2.编写定时任务类TicketQuart.java package com.day02.sation.task; import com.da ...

  6. 大型运输行业实战_day12_1_权限管理实现

    1.业务分析 权限说的是不同的用户对同一个系统有不同访问权限,其设计的本质是:给先给用户分配好URL,然后在访问的时候判断该用户是否有当前访问的URL. 2.实现 2.1数据库设计标准5表权限结构 2 ...

  7. 大型运输行业实战_day11_1_aop理论与aop实际业务操作

    1.aop概述 Spring的AOP:什么叫做AOP:Aspect oritention programming(面向切面编程)什么是切面:看图,业务方法 执行前后.AOP的目的:AOP能够将那些与业 ...

  8. 大型运输行业实战_day01_2_需求文档

    1.文档格式 (见模板文件) 2.Axure简单使用 2.1安装Axure傻瓜式安装 2.2简单使用axure 3.总结 需求文件完成后应该包括三种文件: 1.axure文件 2.axure生成的ht ...

  9. 大型运输行业实战_day01_1_业务分析

    1.业务分析 发展历史:  上车收费-->车站买票(相当于先收钱后上车)-->站务系统--->联网售票 2.项目结构 3.开发流程分析 1.业务分析            图文并茂  ...

随机推荐

  1. Android 自定义 spinner (背景、字体颜色)

    转自:http://blog.sina.com.cn/s/blog_3e333c4a010151cj.html 1.准备两张图片,并做好9.png   2.在drawable中定义spinner_se ...

  2. pychar入门参考教材

    参考:  http://blog.csdn.net/chenggong2dm/article/category/6137682 让不同py文件运行,直接在文件的标签处右键run即可

  3. VBA文本型数字变成数值

    sub test()with activesheet  .usedrange.numberformatlocal=""  .usedrange=.usedrange.valueen ...

  4. 图片尺寸批量resize的matlab并行代码

    在caffe ImageNet例子中有对图片进行resize的部分,文中使用的是linux shell脚本命令: for name in /path/to/imagenet/val/*.JPEG; d ...

  5. Scrapy-下载中间件

    下载中间件 下载器中间件是介于Scrapy的request/response处理的钩子框架. 是用于全局修改Scrapy request和response的一个轻量.底层的系统 编写您自己的下载器中间 ...

  6. 【基础知识六】支持向量机SVM

    开发库: libsvm, liblinear      GitHub地址 SVM难点:核函数选择 一.基本问题 找到约束参数ω和b,支持向量到(分隔)超平面的距离最大:此时的分隔超平面称为“最优超平面 ...

  7. Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别

    Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端 ...

  8. PHP mysqli 增强 批量执行sql 语句的实现代码

    本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...

  9. (c#) 销毁资源和释放内存

    0. 什么是资源? .NET 框架中如何访问资源? 所谓的资源就是程序中可利用的数据,譬如:字符串.图片和任何二进制数据,包括任何类型的文件. 在面向对象的环境中,每一个类型都标识为某些程序所用的资源 ...

  10. 并发基础(二) Thread类的API总结

    Thread 类是java中的线程类,提供给用户用于创建.操作线程.获取线程的信息的类.是java线程一切的基础,掌握这个类是非常必须的,先来看一下它的API: 1.字段摘要 static int M ...