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.pswp.cn/news/252835.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252835.shtml
英文地址,請注明出處:http://en.pswp.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;通常用于軍事用途。目前在民…