文章目录

  • Mysql
    • 本机数据库连接配置文件
  • Maven
    • 找不到资源问题解决
    • 驱动
  • Mybatis
    • MybatisUtils
    • mapper
    • Mybatis-config.xml
  • Spring
    • Maven依赖
    • beans.xml
    • 添加注解支持后的xml
    • 两种命名(p命名、c命名)
      • p命名
      • c命名
    • 通用的代理类
    • Aop的Maven依赖
  • SpringMVC
    • web.xml配置文件
    • Springmvc-servlet.xml
    • 解决乱码问题
  • IDEA使用
    • 创建时的自动生成注释

Mysql

本机数据库连接配置文件

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名?useSSL=false
username=root
password=root

Maven

找不到资源问题解决

<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>

驱动

<!--mysqlq驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.12</version>
</dependency>
<!--mybatis-->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version>
</dependency>
<!--junit-->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>
<!-- log4j -->
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>
<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.10</version><scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.9</version>
</dependency>
<!-- Aop依赖 -->
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.4</version>
</dependency>

Mybatis

MybatisUtils

package utils;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static {try {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}//获取SqlSession连接public static SqlSession getSession() {//若设置自动提交,括号内填truereturn sqlSessionFactory.openSession(true);}
}

mapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hkd.dao.BlogMapper"></mapper>

Mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--导入外部配置文件--><properties resource="db.properties"/><settings><!--开启日志--><setting name="logImpl" value="STDOUT_LOGGING"/><!--允许类中字段采用驼峰命名方式与数据库不一致--><setting name="mapUnderscoreToCamelCase" value="true"/></settings><!--起别名--><typeAliases><package name="com.hkd.pojo"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url"value="jdbc:mysql://localhost:3306/cplb?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf-8"/><property name="username" value="root"/><property name="password" value="RZCxbs425130"/></dataSource></environment></environments><mappers><mapper class="com.hkd.dao.ProductMapper"/></mappers>
</configuration>

Spring

Maven依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.9</version>
</dependency>

beans.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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="..." class="...">  <!-- collaborators and configuration for this bean go here --></bean><bean id="..." class="..."><!-- collaborators and configuration for this bean go here --></bean><!-- more bean definitions go here --></beans>

添加注解支持后的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/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd"><context:annotation-config/></beans>

两种命名(p命名、c命名)

p命名

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean name="classic" class="com.example.ExampleBean"><property name="email" value="someone@somewhere.com"/></bean><bean name="p-namespace" class="com.example.ExampleBean"p:email="someone@somewhere.com"/>
</beans>

c命名

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="beanTwo" class="x.y.ThingTwo"/><bean id="beanThree" class="x.y.ThingThree"/><!-- traditional declaration with optional argument names --><bean id="beanOne" class="x.y.ThingOne"><constructor-arg name="thingTwo" ref="beanTwo"/><constructor-arg name="thingThree" ref="beanThree"/><constructor-arg name="email" value="something@somewhere.com"/></bean><!-- c-namespace declaration with argument names --><bean id="beanOne" class="x.y.ThingOne" c:thingTwo-ref="beanTwo"c:thingThree-ref="beanThree" c:email="something@somewhere.com"/></beans>

通用的代理类

public class ProxyInvocationHandler implements InvocationHandler {private Object target;public void setTarget(Object target) {this.target = target;}//生成代理类public Object getProxy(){return Proxy.newProxyInstance(this.getClass().getClassLoader(),target.getClass().getInterfaces(),this);}// proxy : 代理类// method : 代理类的调用处理程序的方法对象.public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {log(method.getName());Object result = method.invoke(target, args);return result;}public void log(String methodName){System.out.println("执行了"+methodName+"方法");}}

Aop的Maven依赖

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.4</version>
</dependency>

SpringMVC

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"><!--1.注册DispatcherServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!--启动级别-1--><load-on-startup>1</load-on-startup></servlet><!--/ 匹配所有的请求;(不包括.jsp)--><!--/* 匹配所有的请求;(包括.jsp)--><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--解决乱码问题--><filter><filter-name>encoding</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>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

Springmvc-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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--自动扫描包,让指定包下的注解生效,由IOC容器统一管理--><context:component-scan base-package="com.hkd.controller"/><mvc:default-servlet-handler/><mvc:annotation-driven/><!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"><!--前缀--><property name="prefix" value="/WEB-INF/jsp/"/><!--后缀--><property name="suffix" value=".jsp"/></bean></beans>

解决乱码问题

  1. SpringMVC自带

    <filter><filter-name>encoding</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>encoding</filter-name><url-pattern>/*</url-pattern>
    </filter-mapping>
    
  2. 自定义过滤器

    1. 修改tomcat配置文件:设置编码

      <Connector URIEncoding="utf-8" port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
      
    2. 自定义过滤器

      import javax.servlet.*;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletRequestWrapper;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      import java.io.UnsupportedEncodingException;
      import java.util.Map;/**
      * 解决get和post请求 全部乱码的过滤器
      */
      public class GenericEncodingFilter implements Filter {@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChainchain) throws IOException, ServletException {//处理response的字符编码HttpServletResponse myResponse=(HttpServletResponse) response;myResponse.setContentType("text/html;charset=UTF-8");// 转型为与协议相关对象HttpServletRequest httpServletRequest = (HttpServletRequest) request;// 对request包装增强HttpServletRequest myrequest = new MyRequest(httpServletRequest);chain.doFilter(myrequest, response);}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}}//自定义request对象,HttpServletRequest的包装类
      class MyRequest extends HttpServletRequestWrapper {private HttpServletRequest request;//是否编码的标记private boolean hasEncode;//定义一个可以传入HttpServletRequest对象的构造函数,以便对其进行装饰public MyRequest(HttpServletRequest request) {super(request);// super必须写this.request = request;}// 对需要增强方法 进行覆盖@Overridepublic Map getParameterMap() {// 先获得请求方式String method = request.getMethod();if (method.equalsIgnoreCase("post")) {// post请求try {// 处理post乱码request.setCharacterEncoding("utf-8");return request.getParameterMap();} catch (UnsupportedEncodingException e) {e.printStackTrace();}} else if (method.equalsIgnoreCase("get")) {// get请求Map<String, String[]> parameterMap = request.getParameterMap();if (!hasEncode) { // 确保get手动编码逻辑只运行一次for (String parameterName : parameterMap.keySet()) {String[] values = parameterMap.get(parameterName);if (values != null) {for (int i = 0; i < values.length; i++) {try {// 处理get乱码values[i] = new String(values[i].getBytes("ISO-8859-1"), "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}}}hasEncode = true;}return parameterMap;}return super.getParameterMap();}//取一个值@Overridepublic String getParameter(String name) {Map<String, String[]> parameterMap = getParameterMap();String[] values = parameterMap.get(name);if (values == null) {return null;}return values[0]; // 取回参数的第一个值}//取所有值@Overridepublic String[] getParameterValues(String name) {Map<String, String[]> parameterMap = getParameterMap();String[] values = parameterMap.get(name);return values;}
      }
      

IDEA使用

创建时的自动生成注释

Editor -> File and Code Templates -> Files -> Class

/***@Project_Name ${PROJECT_NAME}*@PackageName ${PACKAGE_NAME}*@ClassName ${Name}*@Description TODO*@Author 王一帆*@Company 软工1901*@Date ${DATE} ${TIME}*@Version 1.0**/

Java常用环境配置(Maven、Mybatis、Spring、SpringMvc、Mybatis)相关推荐

  1. intelliJ idea 使用maven创建spring+springMVC+mybatis(SSM)

    2019独角兽企业重金招聘Python工程师标准>>> ssm demo github : [https://github.com/rongyaya1003/ssmDemo.git] ...

  2. MAVEN整合Spring+SpringMVC+Mybatis

    2016/1/20 14:47:28 原创,转载请注明出处 曾经看过<那些年我们一起追过的女孩>,片中有个比较经典的画面,至今记忆犹新,柯景腾多年后,做了一名作家,每天面对电脑码字,背后是 ...

  3. JAVA 搭建基于SPRINGBOOT的SSM(SPRING + SPRINGMVC + MYBATIS)的MAVEN项目

    http://www.cnblogs.com/yuanjava/p/8095139.html 转载于:https://www.cnblogs.com/zhouchunDIY/p/8108320.htm ...

  4. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的农产品网上销售系统

    本网站主要是针对广大网络消费者而开发的,专为网络消费者打造,建设一个农产品网上销售系统.网站在设计方面充分考虑网络消费者的需求,从网络消费者浏览购物的习惯出发,来实现网上农产品网上销售,这样不仅仅体现 ...

  5. Java毕业设计:基于jsp+mysql+Spring+SpringMVC+mybatis的网络硬硬盘系統网站

    项目介绍 网盘,又称网络U盘.网络硬盘,是一些网络公司推出的在线存储服务.向用户提供文件的存储.访问.备份.共享等文件管理功能,使用起来十分方便.不花钱的移动硬盘.用户可以把网盘看成一个放在网络上的硬 ...

  6. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的爱康医院专家预约管理系统

    对于医院以及医生来说来说,利用计算机网络的支持实现医院专家预约管理是现代化的流行趋势,是推动医疗事业科学化的必要条件:管理员可以通过爱康医院专家预约管理系统进行专家预约管理.诊室管理.医生管理等.病人 ...

  7. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的房源信息管理系统

    随着房地产事业的蓬勃发展,房屋的供求量也日渐增多.过去依靠人工操作完成的房地产的中介业务,如楼盘销售和客户资料的管理等,以及市场需求分析都要耗费大量的时间完成.其得到的数据不仅容易遗漏.误报,而且不能 ...

  8. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的办公用品领用管理系统

    在现今这个社会企业的办公用品种类繁多,使用的部门和人员也比较多,最常出现的问题就是浪费现象比较普遍,而且消耗用品补充不及时.而在使用了办公物品管理系统之后,这一现象将会得到很大的改善.不管我们所处何时 ...

  9. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的ssm汽车销售系统

    本文主要论述了一个汽车销售商城--基于SSM的汽车销售系统的开发过程.首先,针对市场上一些汽车销售网站分析,然后分析大概的不足和优势结合次网站,便以此为研究背景,从而开发一个适合大众使用的web网站, ...

  10. myeclipes10.7+maven+myBatis+spring+springMvc

    SSM框架详细整合教程(Spring+SpringMVC+MyBatis) 2016年02月26日 01:50:21 程序员囧辉 阅读数:60951 版权声明:本文为博主原创文章,未经博主允许不得转载 ...

最新文章

  1. [转]WinForm下Splash(启动画面)制作
  2. 中国世界工厂地位为什么不会动摇
  3. Koa源码分析(二) -- co的实现
  4. H5新特性 input type=date 在手机上默认提示显示无效解决办法
  5. 浅谈对离散型随机变量期望的理解
  6. 边框回归的损失函数_分类损失函数,边框回归损失函数
  7. 恒大汽车发布公告 拟在科创板上市
  8. 游泳,情人节纪念一下。
  9. Quartz-第一篇 认识Quartz
  10. 客户管理系统哪个好用 crm客户管理系统排名
  11. 软件硕士和计算机硕士,详解软件工程硕士和计算机硕士区别
  12. 微信小程序开发中遇到的坑
  13. 台湾科技挣扎,人祸大于天灾?
  14. Mac运行exe的几种方法,欢迎补充!
  15. Leetcode| 216. 组合总和III、17. 电话号码的字母组合 Day25
  16. 从零开始VCS+Verdi 安装过程
  17. 陈怡暖:黄金在1180附近跌势受限,因希腊问题获避险支持
  18. Android各种轮子
  19. OpenCms 带分页的新闻列表
  20. autojs点击方式汇总:autojs点击的几种方式

热门文章

  1. php Excel 合并单元格
  2. linux根目录不足,追加空间到根目录
  3. 万剑归宗之七剑下天山,redisson的百锁解构(下)
  4. Encoded password does not look like BCrypt 异常问题
  5. java是面向过程的编程语言_1. 下列关于JAVA语言特点的叙述中,错误的是[   ] A、Java是面向过程的编程语言...
  6. linux管道通信原理
  7. Beyond Part Models: Person Retrieval with Refined Part Pooling (and A Strong Convolutional Baseline)
  8. 做个很小众的应用就可以月入数万,为什么多数程序员都不做个人开发?
  9. JS实现:纵向表格,且可在当前行下方添加一行
  10. SCLS:微生物所方荣祥/张莉莉团队开发植物内生细菌特异16S引物