当前位置: 首页 > 编程日记 > 正文

spring mvc + mybatis 框架搭建 ( idea + gradle)

spring mvc + mybatis 框架搭建

idea + gradle
刚刚入门,只是个人见解,如有错误或者问题欢迎指出指正。
邮箱: [ wgh0807@qq.com ]

文章引用:
[apache - log4j]
[mybatis 配置]

一、 build.gradle 加载相关包

在dependencies下配置
相关包的搜索请见[maven.org]
个人常用的包:
''// java EE api
'' compile 'javax:javaee-api:7.0'
''
'' //mysql connector
'' compile 'mysql:mysql-connector-java:5.1.47'
''
'' // spring 框架
'' compile 'org.springframework:spring-webmvc:5.1.3.RELEASE'
'' compile 'org.springframework:spring-jdbc:5.1.3.RELEASE'
'' compile 'org.springframework:spring-context-support:5.1.3.RELEASE'
''
'' // mybatis
'' compile 'org.mybatis:mybatis:3.4.6'
'' compile 'org.mybatis:mybatis-spring:1.3.2'
''
'' //其他
'' // json 转换
'' compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8'// json数据转换
'' compile 'jstl:jstl:1.2'//jsp标准标签库
'' compile 'org.jasypt:jasypt:1.9.2'//Strong Password encorypt
'' compile 'org.projectlombok:lombok:1.18.4'//精简class
'' compile 'org.slf4j:slf4j-log4j12:1.7.25' //日志记录
'' compile 'commons-codec:commons-codec:1.11'//编解码
'' compile 'commons-fileupload:commons-fileupload:1.3.2'//文件上
修改完后使用右下角弹窗中的import 或者auto import 都可以,会在网络环境下自动下载。

二、创建包结构

个人喜欢提前创建好包结构,而且喜欢在一个总的包下创建包

  • src
    • project
      • controller(控制器)
      • service(服务层)
      • dao(数据层)
      • obj(对象包,也可以使用pojo、model等)
      • util(其他工具类)

        三、配置文件

        目录结构

  • resources
    • mapper
      • xxxx-mapper.xml
    • jdbc.properties
    • log4j.properties
    • mybatis-config.xml (可以集成到application.xml中,非必须)
    • application.xml
  • webapp
    • WEB-INF
      • web.xml
      • web-servlet.xml

        详细配置

  1. jdbc.properties

    jdbc.Url 中传入了三个参数,由于使用本地数据库访问,故没有使用ssl加密;其他两个为编码方式使用utf-8,否则可能会出现中文乱码(需要参照数据库编码方式,建库的时候也最好配置下。mac下mysql使用UTF8)
    配置如下
    ''jdbc_Driver = com.mysql.jdbc.Driver
    '' jdbc_Url = jdbc:mysql:///?useSSL=false&useUnicode=true&characterEncoding=UTF-8
    '' jdbc_user = java
    '' jdbc_password = java

  2. mapper/*-mapper.xml

    为了第5项配置方便,才创建mapper文件夹,并命名为*-mapper.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">
    ''
    ''
    ''
    内容物包含5种常用标签:insert, delete, update, select 和 resultMap
    前4种分别对应增删改查,第五种则是为了对象中一对多或多对多属性。
    result map中又包含四个常用标签:id、result、association、collection
    association用于一对一属性,collection用于一对多属性

  3. log4j.properties

    日志记录的配置文件
    官方有四种配置方式:xml、json、yaml 和 Properties
    我采用的是第四种配置,详细配置和其他方式配置请参考[apache官网]
    基本配置:
    ''# 1. rootLogger: all trace debug info warn error fatal off
    '' log4j.rootLogger = WARN, console
    '' log4j.logger.demo = WARN
    ''
    '' # 2. appender
    '' log4j.appender.console = org.apache.log4j.ConsoleAppender
    ''
    '' # 3. layout
    '' log4j.appender.console.layout = org.apache.log4j.PatternLayout
    '' log4j.appender.console.layout.ConversionPattern = %d\t%p\t%c{1}\t%m%n

  4. mybatis-config.xml

    此文件其实不需要,因为可以集成到application.xml中(个人理解)
    简单配置
    ''<?xml version="1.0" encoding="UTF-8"?>
    '' <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    ''
    ''
    ''
    ''
    ''

  5. application.xml

    我个人认为这里替代了mybatis-config.xml配置文件,创建了数据库连接池
    ''<?xml version="1.0" encoding="UTF-8"?>
    '' <beans xmlns="http://www.springframework.org/schema/beans"
    '' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    '' xmlns:context="http://www.springframework.org/schema/context"
    '' 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"
    '' <context:property-placeholder location="classpath:jdbc.properties"/
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''
    ''

  6. web.xml

    webapp / WEB-INF / 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_4_0.xsd"
    '' version="4.0">
    ''
    ''
    '' encoding
    '' org.springframework.web.filter.CharacterEncodingFilter
    ''
    ''
    '' encoding
    '' /
    ''
    ''
    ''
    ''
    '' cors
    '' project.util.Cross_domain_access
    ''
    ''
    '' cors
    '' /
    ''
    ''
    ''
    ''
    '' web
    '' org.springframework.web.servlet.DispatcherServlet
    ''
    ''
    '' web
    '' /
    ''
    ''
    ''
    ''
    '' default
    '' .html
    '' .css
    '' .js
    '' .ico
    '' /static/*
    ''
    ''
    ''
    ''
    '' org.springframework.web.context.ContextLoaderListener
    ''
    ''
    '' org.springframework.web.context.request.RequestContextListener
    ''
    ''
    '' contextConfigLocation
    '' classpath:applicationContext.xml
    ''
    ''
    ''

  7. web-servlet.xml

    webapp / WEB-INF / web-servlet.xml
    ''<?xml version="1.0" encoding="UTF-8"?>
    '' <beans xmlns="http://www.springframework.org/schema/beans"
    '' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    '' xmlns:context="http://www.springframework.org/schema/context"
    '' xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    ''
    ''
    ''
    ''
    ''
    ''
    以上就是基础环境的配置过程,谢谢观看。END

转载于:https://www.cnblogs.com/wgh0807/p/10308433.html

相关文章:

Linux系统性能分析: CPU

CPU 原始文件路径mind-Mapping CPU上下文切换 CPU使用率

jquery-tmpl 插件

做项目时页面上有处功能是&#xff1a;在页面有处列表、有添加&#xff0c;我添加修改或删除后要刷新这个列表&#xff0c;首先想到的是局部刷新&#xff0c;但我们一般说的局部刷新就是利于ajax去后台调用数据并显示&#xff0c;而这里是一整个列表就比较麻烦了&#xff0c;刷…

java mongodb存base64_阿里JAVA面试分享经验【文末有福利】

基础篇参考这里的面试题&#xff1a;面试题写在后面了能回答上百分之七十&#xff0c;基础的广度就算OK了。如果达不到&#xff0c;那么缺什么就赶紧补什么。广度达到了&#xff0c;还需要对个别热点问题有深度。每个人的精力都有限&#xff0c;可以适当挑选两个热点问题进行深…

win7/8SVN必备的4个服务

为什么80%的码农都做不了架构师&#xff1f;>>> 最近刚刚学会用vpn&#xff0c;某次用某软件加速系统后svn不能用了&#xff0c;反复查看&#xff0c;发现是Event Log的原因。所以和大家分享一下SVN必备的4个系统服务。 Windows Event Log Secure Socket Tunneling…

Spark集群部署(standLone)模式

安装部署&#xff1a; 1. 配置spark为1个master&#xff0c;2个slave的独立集群&#xff08;Standlone&#xff09;模式&#xff0c; 可以在VMWare中构建3台运行Ubuntu的机器作为服务器&#xff1b; master主机配置如下&#xff1a; vim /etc/hostname 编辑此文件&#xff0c;设…

读书:一百个 终身受益的 思维模型(持续更新)

《第二曲线》 刻意练习 金字塔原理

map 小模板~~~ 写的不好 继续添加

#include<map>#include<string.h>#include<iostream>using namespace std;int main(){ ///map插入 map<string,int> mp; ///<key值 val值> mp["a"]1; mp["b"]2; mp["c"]3; map<string,int…

为什么二级菜单会被挡住_二级建造师为什么这么难考?2021年二建考试也会很难吗?...

2020年二建考试难到上热搜&#xff0c;广大考生被难到怀疑人生&#xff0c;老考生一副"我看透你了"的过来人嘴脸&#xff0c;新考生只能在角落瑟瑟发抖。随着2020年二建考试逐渐落幕&#xff0c;2021年二建备考被提上日程&#xff0c;许多考生心中也逐渐产生疑问&…

Nginx与PHP(FastCGI)的安装、配置、优化

一、什么是 FastCGIFastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI&#xff0c;包括Apache、Nginx和lighttpd等&#xff0c;同时&#xff0c;FastCGI也被许多脚本语言所支持&#xff0c;其中就有PHP。FastCGI是从…

Cobbler-自动化部署神器

Cobbler-自动化部署神器 前言&#xff1a; 网络安装服务器套件 Cobbler(补鞋匠)从前&#xff0c;我们一直在做装机民工这份很有前途的职业。自打若干年前 Red Hat 推出了 Kickstart&#xff0c;此后我们顿觉身价倍增。不再需要刻了光盘一台一台地安装 Linux&#xff0c;只要搞定…

Linux系统性能分析: I/O栈 优化

原始文件路径Mind-mapping Linux I/O栈性能分析及优化

[转]优化Flash性能

原文&#xff1a;http://www.adobe.com/devnet/flash/articles/optimizing-flash-performance.html 翻译&#xff1a;http://bbs.9ria.com/thread-156860-1-1.html 在这篇文章中&#xff0c;你会学到优化Flash Professional应用性能的策略。优化过程包括编辑你的FLA工程文档确保…

python 自动填充表单,如何在Django / Python中自动填充PDF表单?

I have PDF forms that I want to autopopulate with data from my Django web application and then offer to the user to download. What python library would let me easily pre-populate PDF forms? These forms are intended to be printed out.解决方案Reportlab is g…

模拟宽度自适应的输入框

看代码&#xff1a; !DOCTYPE HTML><html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><style type"text/css"> h2 { margin:0; padding:10px 0; font-size:14px; } .mod-retweet { bac…

洛谷 - P1426 - 小鱼会有危险吗 - 模拟

https://www.luogu.org/problemnew/show/P1426 题目说的是小鱼进入探测器一秒后就会有危险&#xff0c;所以不应该让小鱼先游&#xff0c;而是先检测探测器。 #include<bits/stdc.h> using namespace std; #define ll long longint s,x;int main(){scanf("%d%d"…

Linux系统性能分析:内存 优化

整体的内存基本原理和内存性能指标、性能瓶颈分析以及优化思路可参考如下导图 原始xmind文件路径Mind-Mapping

zoj 1010 (线段相交判断+多边形求面积)

链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId10 AreaTime Limit: 2 Seconds Memory Limit: 65536 KB Special JudgeJerry, a middle school student, addicts himself to mathematical research. Maybe the problems he has though…

军用软件概算计价规范_工程造价五算:估算、概算、预算、结算、决算

估算、概算、预算、结算、决算估算即投资估算。是在决策阶段就建设项目建设总投资进行的科学估计。决策阶段又分为机会研究、项目建议书、初步可行性研究、详细可行性研究四个阶段&#xff0c;随着项目逐步的细化具体化&#xff0c;按照投资估算规程&#xff0c;可以得到不同精…

openssh配置终极一帖

一、什么是opensshOpenSSH 是 SSH &#xff08;Secure SHell&#xff09; 协议的免费开源实现。SSH协议族 可以用来进行远程控制&#xff0c; 或在计算机之间传送文件。而实现此功能的传统方式&#xff0c;如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的&a…

读书:历史 -- 海上丝绸之路

罗德里希普塔克 — 德国汉学家 海上丝路连结了古代世界贸易往来&#xff0c;见证了中华文明在人类历史中的枢纽位置。 王权集中的朝代中每一个流传后世的国家层级的决策无不彰显国家机器得强壮&#xff0c;但同样也很脆弱&#xff0c;决策者不可能时刻都能做出最为正确得选择。…

一.Linq to JSON是用来干什么的?

Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和修改部分的数据而非反序列化全部. 二.创建JSON数组和对象在进行Linq to JSON之前,首先要了解一下用于操作…

add python3.7 to path是什么意思_一起读源码:为什么 loguru 的时间 rotation 不能只精确到天...

摄影&#xff1a;产品经理猪耳朵与鹌鹑蛋做的皮蛋今天的问题来自未闻 Code 粉丝交流群&#xff1a;“loguru 每天自动生成的日志名字&#xff0c;可以只精确到日吗&#xff1f;”如下图所示&#xff1a;这里的每天自动生成日志的名字是什么意思呢&#xff1f;实际上指的就是rot…

hdu 4263(有限制的生成树)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4263 思路&#xff1a;将红边和蓝边单独求一次生成树&#xff0c;求的红边最多可以加入的边数cntr&#xff0c;蓝边最多可以加入的边数cntb&#xff0c;只要k满足条件k>(n-1-cntr)&&k<cntb&#…

Synchronized的两个用法

Synchronized的作用&#xff1a; 能够保证在同一时刻最多只有一个线程执行该段代码&#xff0c;以达到保证并发安全的效果 Synchronized的两个用法&#xff1a; 1&#xff09;对象锁 包括方法锁&#xff08;默认锁对象为this当前实例对象&#xff09;和同步代码块锁&#xff08…

h5引入不同的js文件怎样让第二个js使用第一个js文件中的函数_px2rem-loader使用及注意事项...

1.安装lib-flexible.js&#xff1b; //基于vue-cli配置手淘的lib-flexible rem&#xff0c;实现移动端自适应2.安装px2rem-loader&#xff1b;//使用 webpack 的 px2rem-loader,自动将px转换为rem3.在项目入口文件main.js中引入lib-flexible&#xff1b;//&#xff08;import …

C++中的explicitkeyword

在C程序中非常少有人去使用explicitkeyword&#xff0c;不可否认&#xff0c;在平时的实践中确实非常少能用的上。再说C的功能强大&#xff0c;往往一个问题能够利用好几种C特性去解决。但略微留心一下就会发现现有的MFC库或者C标准库中的相关类声明中explicit出现的频率是非常…

Entity Framework Code First在Oracle下的伪实现

为什么要说是伪实现&#xff0c;因为还做不到类似MsSql中那样完全的功能。Oralce中的数据库还是要我们自己手动去创建的。这里&#xff0c;我们舍掉了Model First中的EDMX文件&#xff0c;自己在代码里面写模型与映射关系&#xff0c;这又有点像是Code First模型了&#xff0c;…

leetcode-206 反转链表

描述如下&#xff1a; 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 方法一&#xff1a;原地反转 数据结构如下 struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};ListN…

ios采用什么技术_在不锈钢技术成熟的今天,为什么汽车不采用呢?不仅仅是价格问题...

文/憨憨评车想必对于那些经常开车的人都会知道&#xff0c;我们的车子在行驶了几年之后&#xff0c;在性能方面必定是会有所下降的。然而还有一点也是非常让人头疼的&#xff0c;那就是车子的生锈问题。一旦车子的车身出现生锈情况的话&#xff0c;就会给人一种破破烂烂的感觉。…