SpringMVC+Mybatis学习

简单Web项目搭建:

一.流程

1. 导包

  n个springMVC;

  2个mybatis<其中一个是mybatis-spring>;

  3个jackson包;

2. xml配置

  web.xml和applicationContext.xml

3. 建包,建接口,建类

4. 建jsp

 

二:具体分说

1. XML配置:

1.1 web.xml配置:

  字符编码器和SpringMVC控制器

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name></display-name>    <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><filter><filter-name>CharacterEncodingFilter</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>  </filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>*.do</url-pattern></filter-mapping><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

 

  a.字符编号器 :filter

 1   <filter>
 2       <filter-name>CharacterEncodingFilter</filter-name>
 3       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 4       <init-param>
 5           <param-name>encoding</param-name>
 6           <param-value>utf-8</param-value>
 7       </init-param>
 8   </filter>
 9   <filter-mapping>
10       <filter-name>CharacterEncodingFilter</filter-name>
11       <url-pattern>/*</url-pattern>
12   </filter-mapping>

  b.SpringMVC控制器:Servlet

 1   <servlet>
 2       <servlet-name>DispatcherServlet</servlet-name>
 3       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 4       <init-param>
 5           <param-name>contextConfigLocation</param-name>
 6           <param-value>classpath:applicationContext.xml</param-value>
 7       </init-param>
 8       <load-on-startup>1</load-on-startup>
 9   </servlet> 
10   <servlet-mapping>
11       <servlet-name>DispatcherServlet</servlet-name>
12       <url-pattern>/</url-pattern>
13   </servlet-mapping>

1.2 applicationContext.xml配置:

  注解扫描、mvc驱动、数据源、sqlSessionFactory、dao层帮助类、事务管理、事务驱动(没有先后顺序)

<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd   "><context:component-scan base-package="cn.bdqn.ssm"></context:component-scan><mvc:annotation-driven></mvc:annotation-driven><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property><property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property><property name="user" value="tb28"></property><property name="password" value="accp"></property></bean><bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="typeAliasesPackage" value="cn.web.ssm" ></property></bean><bean  class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactoryBeanName" value="sessionFactory"></property><property name="basePackage" value="cn.web.ssm.dao"></property></bean><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property></bean><tx:annotation-driven transaction-manager="transactionManager"/></beans>

 

  a. 注解扫描:

1 <context:component-scan base-package="cn.bdqn.ssm">
2 </context:component-scan>

  b. mvc驱动:

<mvc:annotation-driven></mvc:annotation-driven>

  c. 数据源:看导入的jdbc及数据库的包:本次是 c3p0,ojdbc(Oracle数据库)

1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
2     <property name="user" value="betterLearning"></property>
3     <property name="password" value="gzh"></property>
4     <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
5     <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
6 </bean>

  d. sqlSessionFactory:要从数据源中获取

1 <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
2     <property name="dataSource" ref="dataSource"></property>
3     <property name="typeAliasesPackage" value="cn.web.ssm"></property>
4 </bean>

  e. dao层帮助类:扫描xxxDao.xml,xxxDao.xml作为实现类放入容器中

1 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
2     <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
3     <property name="basePackage" value="cn.web.ssm.dao"></property>
4 </bean>

  f. 事务管理:也要从数据源中获取

1 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
2     <property name="dataSource" ref="dataSource"></property>
3 </bean>

  g. 事务驱动:

<tx:annotation-driven transaction-manager="transactionManager"/>

 

三、建包、建接口、建类(展示部分)

流程:entity--dao--service(包括serviceImpl)--controller

  a. entity包:Ticket.java

package cn.web.ssm.entity;public class Ticket {private Integer id;private String company;private Double price;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}@Overridepublic String toString() {return "Ticket [id=" + id + ", company=" + company + ", price=" + price+ "]";}    
}

  b. dao包:TicketDao.xml和TicketDao.java;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "http://mybatis.org/dtd/mybatis-3-mapper.dtd" "mybatis-3-mapper.dtd" >
<mapper namespace="cn.web.ssm.dao.TicketDao"><select id="getTicketsById" resultType="Ticket">select t.id id,t.sell_company company,t.ticket_price pricefrom flight_tickets t where t.flight_id=#{id} </select>
</mapper>
package cn.bdqn.ssm.dao;
import java.util.List;
import cn.web.ssm.entity.Ticket;public interface TicketDao {List<Ticket> getTicketsById(Integer id);
}

  c. service包:TicketService.java和TicketServiceImpl.java

package cn.web.ssm.service;
import java.util.List;
import cn.web.ssm.entity.Ticket;public interface TicketService {List<Ticket> getTicketsById(Integer id);
}
package cn.web.ssm.service;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import cn.web.ssm.dao.TicketDao;
import cn.web.ssm.entity.Ticket;@Service
@Transactional
public class TicketServiceImpl implements TicketService {@Autowiredprivate TicketDao ticketDao;public void setTicketDao(TicketDao ticketDao) {this.ticketDao = ticketDao;}
public List<Ticket> getTicketsById(Integer id) {return ticketDao.getTicketsById(id);} }

  d.controller包:TicketController.java;

package cn.web.ssm.controller;
import java.util.List;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 cn.web.ssm.entity.Ticket;
import cn.web.ssm.service.TicketService;@Controller
public class TicketController {@Autowiredprivate TicketService ticketService;public void setTicketService(TicketService ticketService) {this.ticketService = ticketService;}@RequestMapping("showTicket")@ResponseBodypublic List<Ticket> showTicket(Integer id) {List<Ticket> tickets = ticketService.getTicketsById(id);for (Ticket ticket : tickets) {System.out.println(ticket);}       return tickets;}
}

 

转载于:https://www.cnblogs.com/gzhcsu/p/6753338.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PPT怎么在线转视频?

PPT在线转视频的方法有哪些&#xff1f;在PPT中有些播放上的问题还是可以进行文件的转换&#xff0c;下面就给大家简单的介绍一下方法。步骤一&#xff1a;PPT转视频的直接方法是进入迅捷PDF在线转换器网站中&#xff0c;点击导航栏中的视频音频转换中的PPT转视频&#xff1b; …

At least one JPA metamodel must be present!

使用spring jpa是一直报这个错&#xff0c;找了两天网上没有找到答案&#xff0c;最后发现时配置配错了&#xff0c;如下&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa<…

夜貓子”必需的!——融合夜視技術

融合夜視技術是一項正在發展中的前沿技術&#xff0c;通過將多個工作在不同波段的夜視傳感器獲得的圖像經過處理後生成高質量的融合圖像&#xff0c;融合圖像的分辨率更高&#xff0c;能夠揭示出那些很難被看到的特徵。按照融合的方式&#xff0c;融合夜視技術可以分為數字融合…

Vue中登录模块

转载于:https://www.cnblogs.com/DZzzz/p/8921783.html

unity 中的UGUI 屏蔽鼠标穿透

void Update() { if(IsTouchedUI()) { Debug.Log("当前触摸在UI上"); } else { Debug.Log("当前没有触摸在UI上"); } } void OnMouseDown() { if(IsTouchedUI()) { Debug.Log("当前触摸在UI上"); } else { Debug.Log(&qu…

深度解析红外探测器

辐射/设计/技术之前我们跟大家解析了红外探测器的相关性能参数。 对于红外探测器的工作原理你了解多少呢&#xff1f;今天小编再继续上次的讲解&#xff0c;为大家解析非制冷红外焦平面探测器技术原理 及机芯介绍。 非制冷红外技术原理 非制冷红外探测器利用红外辐射的热效应&a…

js基础总结性能优化

一.加载和执行1.推荐所有的script标签尽可能放到body标签的底部&#xff0c;以尽量减少对整体页面下载速度的影响。2.组织脚本减少页面包含的scirpt标签数量&#xff0c;可以把多个文件合并成一个。3.无阻塞脚本1&#xff09;.延迟脚本defer:html解析完才加载&#xff0c;执行顺…

Python2 Python3 爬取赶集网租房信息,带源码分析

*之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是一个总结.*python2 爬取赶集网租房信息与网站分析 分析目标网站url寻找目标标…

红外热成像技术原理

目前&#xff0c;新的热成像仪主要采用非致冷焦平面阵列技术&#xff0c;集成数万个乃至数十万个信号放大器&#xff0c;将芯片置于光学系统的焦平面上&#xff0c;无须光机扫描系统而取得目标的全景图像&#xff0c;从而大大提高了灵敏度和热分辨率&#xff0c;并进一步地提高…

网站中公用头部与尾部

一、html 1. <iframe src"1.html" frameborder"0"></iframe> 2. <embed src"1.html"/> 二、写公用的js 文件&#xff0c;js中写字divde符串&#xff0c;然后在需要的页面适当位置引入公用的js. 三、ajax动态拉取填充 四、后端…

基于webpack的PC端和mobile端开发以及生产环境的搭建

我们用webpack做单页面应用开发应该尝试过很多次了&#xff0c;如果在同一个项目需要支持PC端和移动端&#xff0c;做成多页面应用&#xff0c;开发时能根据请求的终端返回不同的内容&#xff0c;应该怎么做呢&#xff1f;以下描述的是我尝试的一种方案&#xff0c;并且以vue-c…

深度学习简介(一)——卷积神经网络

本文的主要目的&#xff0c;是简单介绍时下流行的深度学习算法的基础知识&#xff0c;本人也看过许多其他教程&#xff0c;感觉其中大部分讲的还是太过深奥&#xff0c;于是便有了写一篇科普文的想法。博主也是现学现卖&#xff0c;文中如有不当之处&#xff0c;请各位指出&…

node+mongoose使用例子

https://github.com/Aquarius1993/nodeNotes 功能 1. 注册 2. 登录 3. 修改密码 4. 修改头像 5. 获取用户笔记 6. 添加&#xff0c;删除,更新笔记安装部署 1. 安装 Node.js MongoDB 2. npm install 3. 启动 MongoDB 4. npm start 5. visit http://localhost:8899 https://git…

FastJson的常用操作

转载&#xff1a;https://www.cnblogs.com/Ming8006/p/6944954.html 常用操作包括以下内容&#xff1a; 对象与&#xff08;JsonObject或JsonArray&#xff09;与String的互换String转换为&#xff08;JsonObject或JsonArray&#xff09;如何保持顺序Eval的使用值为null的&…

Jenkins持续集成 之 Jenkins安装

一、安装JDK与TOMCAT8 参考地址&#xff1a; http://ibm.chick.blog.163.com/blog/static/144201610201652811537410/ 二、下载Jenkins安装包 wget http://mirrors.jenkins.io/war/latest/jenkins.war 三、把jenkins.war放到TOMCAT下的webapps 四、启动tomcat并访问 http://10.…

夜视模式,多少猥琐相机假汝之名

一般相机加装一个红外滤光片&#xff0c;就是一个可以用来干猥琐事情的相机了。现在有相机直接把这个功能整合了&#xff0c;它的这个功能叫红外夜视模式&#xff0c;可以拍下黑暗中的物体&#xff0c;当然&#xff0c;也可以透视纺织品和一些其他材质的衣物。这部相机具有500万…

vue-router.esm.js?fe87:16 [vue-router] Route with name 'page' does not exist

本文地址&#xff1a;http://www.cnblogs.com/veinyin/p/7910525.html 我的路由配置 1 { 2 path: /page, 3 name: page, 4 component: page 5 } 我的 router-link <router-link :to"{name:page,params:{trans:ahahahaha}}">page</route…

Java中设计模式之单例设计模式-1

单例作用 1 节省内存2 可以避免多种状态导致状态冲突单例的创建步骤 1 私有化构造方法2 私有化声明的属性3 getInstance4 方法需要静态单例分类 1.懒汉式 2.饿汉式 两种单例区别&#xff1a; 饿汉式 线程安全的 懒汉式 线程不安全的 饿汉式&#xff1a; package 设计模式之单…

Vue 父子组件间的通信

前言 在 Vue 项目中父子组件的通信是非常常见的&#xff0c;最近做项目的时候发现对这方面的知识还不怎么熟练&#xff0c;在这边做一下笔记&#xff0c;系统学习一下吧。 1 父组件传值给子组件 1.1 传值写法 父组件传值给子组件&#xff0c;这个就比较常见了&#xff0c;直接用…

夜视仪

国民兵所用F-16的驾驶舱&#xff0c;机员配有夜视镜以备观察领空的客机或飞行物体使用夜视镜时看到的影像夜视仪〈night vision device&#xff0c;简称NVD〉&#xff0c;也称夜视镜&#xff0c;是透过光学科技强化黑暗中光源的科技装置&#xff0c;通常用于军事用途。目前在民…