刚好学完springMVC,mybatis简单的组合,总结一下

1.创建一个maven项目,引入jar包

一共这么多,除了oracle jar包是我手动添加到lib里,其他都是通过pom.xml引入的

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4.  
  5. <groupId>com.qyxy</groupId>
  6. <artifactId>ssm_02</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>jar</packaging>
  9.  
  10. <name>ssm_02</name>
  11. <url>http://maven.apache.org</url>
  12.  
  13. <properties>
  14. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  15. </properties>
  16.  
  17. <dependencies>
  18. <dependency>
  19. <groupId>junit</groupId>
  20. <artifactId>junit</artifactId>
  21. <version>3.8.1</version>
  22. <scope>test</scope>
  23. </dependency>
  24. <!-- spring -->
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-tx</artifactId>
  28. <version>4.3.5.RELEASE</version>
  29. </dependency>
  30. <!-- spring jdbc -->
  31. <dependency>
  32. <groupId>org.springframework</groupId>
  33. <artifactId>spring-jdbc</artifactId>
  34. <version>4.3.5.RELEASE</version>
  35. </dependency>
  36. <!-- spring aop -->
  37. <!-- spring面向切面编程相关的jar包 -->
  38. <dependency>
  39. <groupId>org.aspectj</groupId>
  40. <artifactId>aspectjrt</artifactId>
  41. <version>1.8.10</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>org.aspectj</groupId>
  45. <artifactId>aspectjweaver</artifactId>
  46. <version>1.8.10</version>
  47. </dependency>
  48. <!-- spring mvc -->
  49. <dependency>
  50. <groupId>org.springframework</groupId>
  51. <artifactId>spring-webmvc</artifactId>
  52. <version>4.3.5.RELEASE</version>
  53. </dependency>
  54. <!-- springmvc 返回json数据格式需要的jar包 -->
  55. <dependency>
  56. <groupId>com.fasterxml.jackson.core</groupId>
  57. <artifactId>jackson-databind</artifactId>
  58. <version>2.8.8</version>
  59. </dependency>
  60. <!-- fastjson -->
  61. <dependency>
  62. <groupId>com.alibaba</groupId>
  63. <artifactId>fastjson</artifactId>
  64. <version>1.2.31</version>
  65. </dependency>
  66. <!-- mybatis -->
  67. <dependency>
  68. <groupId>org.mybatis</groupId>
  69. <artifactId>mybatis</artifactId>
  70. <version>3.4.4</version>
  71. </dependency>
  72. <dependency>
  73. <groupId>org.mybatis</groupId>
  74. <artifactId>mybatis-spring</artifactId>
  75. <version>1.3.0</version>
  76. </dependency>
  77. <!-- io -->
  78. <!-- 文件上传需要的jar -->
  79. <dependency>
  80. <groupId>commons-fileupload</groupId>
  81. <artifactId>commons-fileupload</artifactId>
  82. <version>1.3.1</version>
  83. </dependency>
  84. <dependency>
  85. <groupId>com.fasterxml.jackson.core</groupId>
  86. <artifactId>jackson-databind</artifactId>
  87. <version>2.8.8</version>
  88. </dependency>
  89. <!-- jstl表达式相关的jar包 -->
  90. <dependency>
  91. <groupId>jstl</groupId>
  92. <artifactId>jstl</artifactId>
  93. <version>1.2</version>
  94. </dependency>
  95. <!-- log4j依賴 -->
  96. <dependency>
  97. <groupId>org.apache.logging.log4j</groupId>
  98. <artifactId>log4j-core</artifactId>
  99. <version>2.6.2</version>
  100. </dependency>
  101. </dependencies>
  102.  
  103. </project>

2.配置web.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <display-name>ssm_02</display-name>
  4. <welcome-file-list>
  5. <welcome-file>index.html</welcome-file>
  6. <welcome-file>index.htm</welcome-file>
  7. <welcome-file>index.jsp</welcome-file>
  8. <welcome-file>default.html</welcome-file>
  9. <welcome-file>default.htm</welcome-file>
  10. <welcome-file>default.jsp</welcome-file>
  11. </welcome-file-list>
  12. <!-- 应用启动加载spring配置文件 指定配置文件位置 -->
  13. <context-param>
  14. <param-name>contextConfigLocation</param-name>
  15. <param-value>classpath:beans.xml</param-value>
  16. </context-param>
  17. <!-- 配置spring的监听器 -->
  18. <listener>
  19. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  20. </listener>
  21.  
  22. <!-- 针对post请求,防止取数据乱码 -->
  23. <filter>
  24. <filter-name>characterEncoding</filter-name>
  25. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  26. <init-param>
  27. <param-name>encoding</param-name>
  28. <param-value>utf-8</param-value>
  29. </init-param>
  30. </filter>
  31. <filter-mapping>
  32. <filter-name>characterEncoding</filter-name>
  33. <url-pattern>/*</url-pattern>
  34. </filter-mapping>
  35.  
  36. <!-- springmvc 的核心分发器DispatcherServlet -->
  37. <servlet>
  38. <servlet-name>springmvc</servlet-name>
  39. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  40. <!-- 初始化 DispatcherServlet 的时候,同时也会初始化spring容器,默认配置文件路径为/WEB-INF/<servlet-name>-servlet.xml。 -->
  41. <init-param>
  42. <param-name>contextConfigLocation</param-name>
  43. <param-value>classpath:springmvc-servlet.xml</param-value>
  44. </init-param>
  45. <load-on-startup>1</load-on-startup>
  46. </servlet>
  47. <servlet-mapping>
  48. <servlet-name>springmvc</servlet-name>
  49. <!-- “/” 为tomcat默认的请求处理器,所有请求都交给该servlet来处理。 默认为tomcat/conf/web.xml中配置的org.apache.catalina.servlets.DefaultServlet -->
  50. <url-pattern>/</url-pattern>
  51. </servlet-mapping>
  52. </web-app>

3.数据库连接文件db.properties(图中的配置文件,都放在resourece文件夹里)

  1. jdbc.driverClassName=oracle.jdbc.driver.OracleDriver//根据自己数据库配置,这里我都是用的oracle数据库
  2. jdbc.url=jdbc:oracle:thin:@localhost:1521:MLDN
  3. jdbc.username=scott
  4. jdbc.password=tiger

4.配置springmvc的配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:util="http://www.springframework.org/schema/util"
  6. xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. xsi:schemaLocation="
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context.xsd
  10. http://www.springframework.org/schema/beans
  11. http://www.springframework.org/schema/beans/spring-beans.xsd
  12. http://www.springframework.org/schema/util
  13. http://www.springframework.org/schema/util/spring-util.xsd
  14. http://www.springframework.org/schema/mvc
  15. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  16. ">
  17. <!-- 支持注解 -->
  18. <mvc:annotation-driven></mvc:annotation-driven>
  19. <!-- 定义注解要扫描的包 -->
  20. <context:component-scan base-package="com.qyxy.controller"></context:component-scan>
  21. <!-- 对静态资源进行处理 -->
  22. <mvc:default-servlet-handler/>
  23. <!-- 配置视图解析器 -->
  24. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  25. <property name="prefix" value="/"/>
  26. <property name="suffix" value=".jsp"/>
  27. </bean>
  28. <bean id="multipartResolver"
  29. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  30. <!-- 设置上传文件的最大尺寸为1MB -->
  31. <property name="maxUploadSize">
  32. <value>1048576</value>
  33. </property>
  34. </bean>
  35.  
  36. </beans>

5.配置mybatis配置文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6.  
  7. <!-- properties属性配置文件的引入 -->
  8.  
  9. <!-- setting设置,调整mybaits运行行为 -->
  10. <settings>
  11. <!-- 匹配下划线到驼峰式命名法 -->
  12. <setting name="mapUnderscoreToCamelCase" value="true"/>
  13. <setting name="safeRowBoundsEnabled" value="false"/>
  14. <setting name="cacheEnabled" value="true"/>
  15. <setting name="lazyLoadingEnabled" value="true"/>
  16. <setting name="multipleResultSetsEnabled" value="true"/>
  17. <setting name="useColumnLabel" value="true"/>
  18. <setting name="useGeneratedKeys" value="false"/>
  19. <setting name="autoMappingBehavior" value="PARTIAL"/>
  20. <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  21. <setting name="defaultExecutorType" value="SIMPLE"/>
  22. <setting name="defaultStatementTimeout" value="25"/>
  23. <setting name="defaultFetchSize" value="100"/>
  24. <setting name="localCacheScope" value="SESSION"/>
  25. <setting name="jdbcTypeForNull" value="OTHER"/>
  26. <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
  27. </settings>
  28. <!-- 类起别名 -->
  29. <typeAliases>
  30. <package name="com.qyxy.entity"/>
  31. </typeAliases>
  32. </configuration>

6.配置spring的配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:util="http://www.springframework.org/schema/util"
  7. xmlns:tx="http://www.springframework.org/schema/tx"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/beans
  12. http://www.springframework.org/schema/beans/spring-beans.xsd
  13. http://www.springframework.org/schema/aop
  14. http://www.springframework.org/schema/aop/spring-aop.xsd
  15. http://www.springframework.org/schema/util
  16. http://www.springframework.org/schema/util/spring-util.xsd
  17. http://www.springframework.org/schema/tx
  18. http://www.springframework.org/schema/tx/spring-tx.xsd
  19. ">
  20.  
  21. <!-- 1.读取jdbc.properties配置文件 -->
  22. <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  23. <property name="locations" value="classpath:jdbc.properties"/>
  24. </bean>
  25.  
  26. <!-- 2.配置jdbc的dataSource -->
  27. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  28. <property name="driverClassName" value="${jdbc.driverClassName}"/>
  29. <property name="url" value="${jdbc.url}"></property>
  30. <property name="username" value="${jdbc.username}"></property>
  31. <property name="password" value="${jdbc.password}"></property>
  32. </bean>
  33.  
  34. <!-- 3.配置mybatis的sqlSessionFactory -->
  35. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  36. <property name="dataSource" ref="dataSource"/>
  37. <!-- 引入mybatis配置文件 -->
  38. <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  39. </bean>
  40.  
  41. <!-- 4.配置mybatis自动扫描sql映射文件/接口 -->
  42. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  43. <property name="basePackage" value="com.qyxy.mapper"></property>
  44. </bean>
  45.  
  46. <!-- 5.定义事务所在的bean -->
  47. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  48. <property name="dataSource" ref="dataSource"></property>
  49. </bean>
  50.  
  51. <!-- 6.支持注解驱动的事务管理,指定事务管理器 -->
  52. <tx:annotation-driven transaction-manager="transactionManager" />
  53.  
  54. <!-- 7. aspectj支持自动代理实现AOP功能 -->
  55. <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
  56.  
  57. <!-- 8.定义事务的切面和切入点信息 -->
  58. <!-- 定义事务的属性 -->
  59. <tx:advice id="txAdvice" transaction-manager="transactionManager">
  60. <tx:attributes>
  61. <tx:method name="find*" read-only="true"/>
  62. <tx:method name="list*" read-only="true"/>
  63. <tx:method name="get*" read-only="true"/>
  64. <tx:method name="select*" read-only="true"/>
  65. <tx:method name="*" propagation="REQUIRED" read-only="false"/>
  66. </tx:attributes>
  67. </tx:advice>
  68. <!-- 定义事务所使用的切入点 -->
  69. <aop:config>
  70. <aop:pointcut expression="execution(* com.qyxy.service.impl.*.*(..))" id="pointcut"/>
  71. <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
  72. </aop:config>
  73. <!-- 定义spring扫描的包 -->
  74. <context:component-scan base-package="com.qyxy.service.impl"></context:component-scan>
  75. <context:component-scan base-package="com.qyxy.mapper"></context:component-scan>
  76.  
  77. </beans>

7.写实体类(可以用mybatis-generator生成)

Dept类

  1. public class Dept {
  2. private int deptno;
  3. private String dname;
  4. private String loc;
  5. private List<Emp> emps;
  6.  
  7. public List<Emp> getEmps() {
  8. return emps;
  9. }
  10. public void setEmps(List<Emp> emps) {
  11. this.emps = emps;
  12. }
  13. public int getDeptno() {
  14. return deptno;
  15. }
  16. public void setDeptno(int deptno) {
  17. this.deptno = deptno;
  18. }
  19. public String getDname() {
  20. return dname;
  21. }
  22. public void setDname(String dname) {
  23. this.dname = dname;
  24. }
  25. public String getLoc() {
  26. return loc;
  27. }
  28. public void setLoc(String loc) {
  29. this.loc = loc;
  30. }
  31.  
  32. }

8.mapper接口

  1. public interface DeptMapper {
  2. public List<Dept> findAll();
  3. }

9.service接口和实现类

  1. public interface DeptService {
  2. public List<Dept> findAll();
  3. }

实现类

  1. @Service
  2. public class DeptServiceImpl implements DeptService{
  3. @Autowired
  4. private DeptMapper deptMapper;
  5. @Override
  6. public List<Dept> findAll() {
  7. return deptMapper.findAll();
  8. }
  9. public void setDeptMapper(DeptMapper deptMapper) {
  10. this.deptMapper = deptMapper;
  11. }
  12. }

10.controllerceng层方法

  1. @Controller
  2. public class Hello {
  3. @Autowired
  4. private DeptService deptService;
  5. @RequestMapping("find")
  6. public String find(Model model){
  7. List<Dept> deptList=deptService.findAll();
  8. model.addAttribute("deptList", deptList);
  9. System.out.println("00000000000000000000");
  10. return "list";
  11. }
  12. public void setDeptService(DeptService deptService) {
  13. this.deptService = deptService;
  14. }
  15. }

最后测试,博主已经测试过了,没有问题

搭建一个SSM框架的更多相关文章

  1. 搭建一个ssm框架的maven项目需要配置的文件

    单独功能需要的配置文件: 1,mybatis配置文件      mybatis-config.xml2,spring配置文件        spring-context.xml  ......3,we ...

  2. 快速搭建一个SSM框架demo

    我之所以写一个快速搭建的demo,主要想做一些容器的demo,所以为了方便大家,所以一切从简,简单的3层架构 先用mysql的ddl,后期不上oracle的ddl ; -- ------------- ...

  3. 用Python手把手教你搭建一个web框架-flask微框架!

    在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...

  4. SSM简明教程:简单的十步教你搭建人生第一个SSM框架[ SSM框架整合教程(Spring+SpringMVC+MyBatis) ]

    SSM_BookSystem SSM框架基础 SSM_BookSystem ---> Hello CRUD 说明:本项目目前包含基础的CRUD 日期:2017-05-01 22:25:37 作者 ...

  5. JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合

    1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...

  6. idea搭建简单ssm框架的最详细教程(新)

    为开发一个测试程序,特搭建一个简单的ssm框架,因为网上看到很多都是比较老旧的教程,很多包都不能用了,eclipes搭建并且其中还附带了很多的其他东西,所以特此记录一下mac中idea搭建过程. 另: ...

  7. springboot入门(一)--快速搭建一个springboot框架

    原文出处 前言在开始之前先简单介绍一下springboot,springboot作为一个微框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...

  8. Mybaits 源码解析 (一)----- 搭建一个mybatis框架(MyBatis HelloWorld)

    源码分析之前先搭一个mybatis的demo,这个在看源码的时候能起到了很大的作用,因为在看源码的时候,会恍然大悟,为什么要这么配置,为什么要这么写.(老鸟可以跳过这篇) 开发环境的准备 创建mave ...

  9. 使用Grizzy+Jersey搭建一个RESTful框架()报错Exception in thread "main" java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;

    报错的类涉及UriBuilder,我搜索类发现, 这个类存在于两个包中,我在baidu的时候,也有人提到是jar包冲突,我就删除了 这个依赖,问题解决了. 环境搭建过程请见地址https://blog ...

随机推荐

  1. ES2017 keys,values,entries使用

    let {keys, values, entries} = Object; let obj = { a: 1, b: 2, c: 3 }; for (let key of keys(obj)) { c ...

  2. HTTP缓存策略 304

    1.图解缓存 示例: 200 (from disk cache): 200 (from memory cache) MemoryCache顾名思义,就是将资源缓存到内存中,等待下次访问时不需要重新下载 ...

  3. swagger 生成的接口文档,隐藏接口的某个参数

    [问题描述] controller 中的处理请求的方法,有时候会添加一些额外的参数.比如下面代码中 UserVo: @PostMapping(value = "/add-office-par ...

  4. C# 异或校验算法

    C# 的异或校验算法 直接上代码 public partial class FormCRC : Form { public FormCRC() { InitializeComponent(); } p ...

  5. oracle事务块示例

    begin Insert into T_SYS_PAGEOPER (FOPERID,FPAGEID) values (152,22); Insert into T_SYS_PAGEOPER (FOPE ...

  6. 解决异常断电导致的: CorruptSSTableException: java.io.EOFException

    问题产生 服务器重启,导致cassandra损坏,整个集群不可用.所使用的cassandra为2.1.9版本. 问题描述 运行启动命令,报错如下: DEBUG :: All segments have ...

  7. springMVC中实现用户登录权限验证

    通过上网搜资料显示,使用filter和interceptor都可以实现.不过推荐使用interceptor. 下面就使用Interceptor实现用户登录权限验证功能. 拦截器需要实现Inceptor ...

  8. 查询MySql数据库架构信息:数据库,表,表字段

    /*1.查询所有数据库*/ show databases;  /*2.查询所有数据表*/ select * from information_schema.tables where table_sch ...

  9. Myeclipse中误报错误解决办法

    下午写jsp页面的时候,用了一个js文件,拖到MyEclipse下了报错,开始还以为是js文件问题,折腾了半天,后来才知道原来是Myeclipse误报错误.真坑爹啊呀~~ 解决方法: 点击你需要忽略错 ...

  10. JS高程3:表单脚本

    HTML和CSS对表单的操作还是比较乏力的,在表单操作中,JS势必会使用到. 基础知识 文本框 选择框 序列化 富文本编辑器 基础知识 HTMLFormElement接口可以创建或者修改<for ...