项目结构
pom.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zcw</groupId>
<artifactId>web1</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>web1 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- mysql的驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<!-- 切面execion -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<!-- 将数组转换成为json字符串 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!-- 跨域问题解决 -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.5</version>
<scope>runtime</scope>
</dependency>
<!-- requestBody注解 解析json对象为javabean
-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.9</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<finalName>web1</finalName>
</build>
==其中我的sqlserver驱动是手动导入的==
pojo实体类文件
```java
package com.zcw.pojo;
import java.io.Serializable;
import java.util.Date;
public class XiangMu implements Serializable{
private String XiangMuBH;
private String XiangMuMC;
private String XiangMuPeiZhi;
private String HeTongBH;
private Integer XiangMuJingLiID;
private String KeHuFuZeRen;
private String kehufuzerenlxfs;
private Date ChengLiRiQi;
private String BeiZhu;
private Date KaiGongRiQi;
private Date WanGongRiQi;
private Integer XiangMuZhuangTai;
private Boolean TingYong;
public XiangMu() {
super();
}
public XiangMu(String xiangMuBH, String xiangMuMC, String xiangMuPeiZhi, String heTongBH, Integer xiangMuJingLiID,
String keHuFuZeRen, String kehufuzerenlxfs, Date chengLiRiQi, String beiZhu, Date kaiGongRiQi,
Date wanGongRiQi, Integer xiangMuZhuangTai, Boolean tingYong) {
super();
XiangMuBH = xiangMuBH;
XiangMuMC = xiangMuMC;
XiangMuPeiZhi = xiangMuPeiZhi;
HeTongBH = heTongBH;
XiangMuJingLiID = xiangMuJingLiID;
KeHuFuZeRen = keHuFuZeRen;
this.kehufuzerenlxfs = kehufuzerenlxfs;
ChengLiRiQi = chengLiRiQi;
BeiZhu = beiZhu;
KaiGongRiQi = kaiGongRiQi;
WanGongRiQi = wanGongRiQi;
XiangMuZhuangTai = xiangMuZhuangTai;
TingYong = tingYong;
}
public String getXiangMuBH() {
return XiangMuBH;
}
public void setXiangMuBH(String xiangMuBH) {
XiangMuBH = xiangMuBH;
}
public String getXiangMuMC() {
return XiangMuMC;
}
public void setXiangMuMC(String xiangMuMC) {
XiangMuMC = xiangMuMC;
}
public String getXiangMuPeiZhi() {
return XiangMuPeiZhi;
}
public void setXiangMuPeiZhi(String xiangMuPeiZhi) {
XiangMuPeiZhi = xiangMuPeiZhi;
}
public String getHeTongBH() {
return HeTongBH;
}
public void setHeTongBH(String heTongBH) {
HeTongBH = heTongBH;
}
public Integer getXiangMuJingLiID() {
return XiangMuJingLiID;
}
public void setXiangMuJingLiID(Integer xiangMuJingLiID) {
XiangMuJingLiID = xiangMuJingLiID;
}
public String getKeHuFuZeRen() {
return KeHuFuZeRen;
}
public void setKeHuFuZeRen(String keHuFuZeRen) {
KeHuFuZeRen = keHuFuZeRen;
}
public String getKehufuzerenlxfs() {
return kehufuzerenlxfs;
}
public void setKehufuzerenlxfs(String kehufuzerenlxfs) {
this.kehufuzerenlxfs = kehufuzerenlxfs;
}
public Date getChengLiRiQi() {
return ChengLiRiQi;
}
public void setChengLiRiQi(Date chengLiRiQi) {
ChengLiRiQi = chengLiRiQi;
}
public String getBeiZhu() {
return BeiZhu;
}
public void setBeiZhu(String beiZhu) {
BeiZhu = beiZhu;
}
public Date getKaiGongRiQi() {
return KaiGongRiQi;
}
public void setKaiGongRiQi(Date kaiGongRiQi) {
KaiGongRiQi = kaiGongRiQi;
}
public Date getWanGongRiQi() {
return WanGongRiQi;
}
public void setWanGongRiQi(Date wanGongRiQi) {
WanGongRiQi = wanGongRiQi;
}
public Integer getXiangMuZhuangTai() {
return XiangMuZhuangTai;
}
public void setXiangMuZhuangTai(Integer xiangMuZhuangTai) {
XiangMuZhuangTai = xiangMuZhuangTai;
}
public Boolean getTingYong() {
return TingYong;
}
public void setTingYong(Boolean tingYong) {
TingYong = tingYong;
}
@Override
public String toString() {
return "XiangMu [XiangMuBH=" + XiangMuBH + ", XiangMuMC=" + XiangMuMC + ", XiangMuPeiZhi=" + XiangMuPeiZhi
+ ", HeTongBH=" + HeTongBH + ", XiangMuJingLiID=" + XiangMuJingLiID + ", KeHuFuZeRen=" + KeHuFuZeRen
+ ", kehufuzerenlxfs=" + kehufuzerenlxfs + ", ChengLiRiQi=" + ChengLiRiQi + ", BeiZhu=" + BeiZhu
+ ", KaiGongRiQi=" + KaiGongRiQi + ", WanGongRiQi=" + WanGongRiQi + ", XiangMuZhuangTai="
+ XiangMuZhuangTai + ", TingYong=" + TingYong + "]";
}
}
dao层
package com.zcw.dao;
import java.util.List;
import com.zcw.pojo.XiangMu;
public interface XiangMuMapper {
List<XiangMu> findByCondition(String BH);
}
dao层的配置文件,mybatis-config.xml,XiangMuMapper.xml,spring-dao.xml
log4j配置日志,db.properties文件
mybatis-config.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">
<configuration>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="com.zcw.pojo" />
</typeAliases>
<mappers>
<mapper resource="com/zcw/dao/XiangMuMapper.xml"></mapper>
</mappers>
</configuration>
XiangMuMapper.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">
<mapper namespace="com.zcw.dao.XiangMuMapper">
<select id="findByCondition" resultType="com.zcw.pojo.XiangMu">
select * from dbo.GC_XiangMu where XiangMuBH like '%'+#{BH}+'%'
</select>
</mapper>
spring-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
">
<context:property-placeholder location="classpath:db.properties" />
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.user}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value></value>
</property>
</bean>
</array>
</property>
</bean>
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="com.zcw.dao" />
</bean>
</beans>
serverce层
package com.zcw.service;
import java.util.List;
import com.zcw.dao.XiangMuMapper;
import com.zcw.pojo.XiangMu;
public class XiangMuServiceImpl implements XiangMuService{
private XiangMuMapper xiangMuMapper;
public XiangMuMapper getXiangMuMapper() {
return xiangMuMapper;
}
public void setXiangMuMapper(XiangMuMapper xiangMuMapper) {
this.xiangMuMapper = xiangMuMapper;
}
public List<XiangMu> findByCondition(String BH) {
return xiangMuMapper.findByCondition(BH);
}
}
spring-service.xml文件配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="xiangMuService" class="com.zcw.service.XiangMuServiceImpl">
<property name="xiangMuMapper" ref="xiangMuMapper"/>
</bean>
<!--事务配置-->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!--<aop:config>
<!–切入点–>
<aop:pointcut id="pointcut" expression="execution(* com.service.*.*(..))"/>
<!–切面–>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>-->
</beans>
controller层
package com.zcw.web;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.zcw.pojo.XiangMu;
import com.zcw.service.XiangMuService;
//RestController单独使用
@RestController
public class XiangMuController {
@Autowired
private XiangMuService xiangMuService;
//requestMapping,requestBody,responseBody的不同
// 注解RequestMapping中produces属性可以设置返回数据的类型以及编码,可以是json或者xml:
// 与responsebo配合使用
// produces = {"application/json;charset=utf-8","text/html;charset=utf-8"} 与requestbody连用
@RequestMapping(value="/find", produces = {"application/json;charset=utf-8"})
public String find(@RequestBody String BH){
System.out.println("输出请求参数");
System.out.println(BH);
// JSON数据从前端转发到后端被接受 后端要加requesbody注解接受json
// json数据接受后 为key=value的方式存储 所以我们要分割 遇到复杂的json需要用fastjson转成java
//json字符串要解析 因为其是字符串为key=value的方式分割 ,简单的自己分割 复杂的交割fastjson
List<XiangMu> list = xiangMuService.findByCondition(BH.split("=")[1]);
// 将java对象变成json字符串
String jsonString = JSON.toJSONString(list);
System.out.println(jsonString);
return jsonString;
}
}
spring-mvc.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" xmlns:mvn="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.zcw.web" />
<mvc:annotation-driven />
<mvc:default-servlet-handler />
<!-- 视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
最后将三个层的配置文件整合一起,随着服务器运行
主要文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<import resource="spring-dao.xml" />
<import resource="spring-service.xml" />
<import resource="spring-mvc.xml" />
</beans>
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">
<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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 跨域问题实现 -->
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.allowOrigin</param-name><!--这个标签是关键, *代表所有源都能访问 -->
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.supportedMethods</param-name>
<param-value>GET, POST, HEAD, PUT, DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.supportedHeaders</param-name>
<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposedHeaders</param-name>
<param-value>Set-Cookie</param-value>
</init-param>
<init-param>
<param-name>cors.supportsCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>