需要用的包:

包括:spring的包、springMVC的包、mybatis的包、数据库驱动包、json相关的包

配置如下,首先是mybatis的配置

<?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>
<typeAliases>
<package name="com.maya.model" />
</typeAliases> </configuration>

然后是springMVC的配置

<?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:p="http://www.springframework.org/schema/p"
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-4.3.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> <context:component-scan base-package="com.maya.controller"></context:component-scan>
<!-- 开启注解 -->
<mvc:annotation-driven></mvc:annotation-driven> <!-- springmvc 解决乱码问题的方式 -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven> <!-- 加上前缀和后缀 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/" p:suffix=".jsp">
</bean> </beans>

然后是spring的配置

<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <!-- spring配置 --> <!-- 加载外部属性文件 -->
<context:property-placeholder location="classpath:db.properties" /> <!-- 配置扫描器 -->
<context:component-scan base-package="com.maya" /> <!-- 数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean> <!-- SqlSession -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="mapperLocations" value="classpath:com/maya/mapper/*.xml" />
</bean> <!-- 数据库操作接口 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.maya.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean> <!-- spring事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean> <!-- 配置事务属性 -->
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" read-only="false"/>
</tx:attributes>
</tx:advice> <!-- 配置切面 -->
<aop:config>
<aop:pointcut expression="execution(* com.maya.dao.*.*(..))" id="aoppointcut"/>
<aop:advisor advice-ref="txadvice" pointcut-ref="aoppointcut"/>
</aop:config> </beans>

在WEB-INF文件夹下建立web.xml文件,配置如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1"> <!-- 过滤中文乱码 -->
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!--spring配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-all.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!--spring mvc配置 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--参数,加载时,需要装载的内容 param-name 中的名字是固定的不能改变-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 让其启动时就加载 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!--映射,名字要与上面对应起来 url 中的*.do 表示只过滤这种形式的请求 比如 add.do-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

建立包

(可以不建立这么多)

建立实体类,将其对应关系写好

在dao层写好接口(这里就只贴了一个了)

package com.maya.dao;

import java.util.List;

import com.maya.model.Articles;

public interface ArticlesDao {

    /**
*
*分页查询,第三个参数如果传一个null,那么默认查询所有,如果有任意值,那么值显示备品数量不为空的
* @param param1
* @param param2
* @return
*/
public List<Articles> select(int param1, int param2,String param3);
/**
* 查询所有数量不为0的
*
*/
public List<Articles> select1(); /**
* 模糊查询
*/
public List<Articles> selectbyname(String str,int param1, int param2); /**
* 添加
* @param articles
* @return
*/
public Integer insert(Articles articles); /**
* 修改
*/
public Integer update(Articles articles); /**
* 根据id查询
*/
public Articles selectById(Integer id); /**
* 查询列表中的总数
*
*
*/
public Integer count(); }

在mapping的包中写好对应的配置文件

<?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.maya.dao.ArticlesDao">
<select id="select" resultType="Articles">
select * from(select a.*,rownum rn from (select * from t_articles where 1=1
<if test="param3!=null">
and snumber>0
</if>
) a
where rownum <![CDATA[ < ]]>
#{param2}) where rn>#{param1}
</select> <select id="select1" resultType="Articles">
select * from t_articles
</select> <select id="selectbyname" resultType="Articles">
select * from(select a.*,rownum rn from (select * from t_articles
where sname like #{param1}) a where rownum <![CDATA[ < ]]>
#{param3}) where rn>#{param2}
</select> <select id="selectById" resultType="Articles">
select * from t_articles
where id=#{param1}
</select> <select id="count" resultType="int">
select count(*) from T_ARTICLES t
</select> <insert id="insert" parameterType="Articles">
insert into t_articles
values(sq_mybatis.nextval,#{sname},#{money},#{snumber})
</insert> <update id="update" parameterType="Articles">
update t_articles set
sname=#{sname},money=#{money},snumber=#{snumber}
where id=#{id}
</update> </mapper>

service包中建立一个类:在这个包中写逻辑

package com.maya.service;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.maya.dao.ArticlesDao;
import com.maya.model.Articles;
import com.maya.model.PageBean; /**
* 这个类涉及到备品表的增,改查,同样没涉及到删除
*
* @author Administrator
*
*/
@Service
public class ArticlesService { @Autowired
private ArticlesDao ad; /**
* 查询 如果str是null,那么就分页查询所有,如果str不是空的,那么就查询所有备品剩余数量不是0的
*
* @param str
* @param page
* @return
*/
public List<Articles> select(String str, PageBean page) {
if (str == null) {
return ad.select((page.getPage() - 1) * page.getRows(), page.getPage() * page.getRows() + 1, null);
} else {
return ad.select((page.getPage() - 1) * page.getRows(), page.getPage() * page.getRows() + 1, str);
}
} /**
* 根据备品的名称查询
* @param str
* @param page
* @return
*/
public List<Articles> byname(String str, PageBean page) {
String str2="%"+str+"%";
return ad.selectbyname(str2, (page.getPage() - 1) * page.getRows(), page.getPage() * page.getRows() + 1); }
/**
* 通过id查询
*/
public Articles byId(Integer id){
return ad.selectById(id);
}
/**
* 添加 这个没什么好说的
* @param articles
*/
public void insert(Articles articles){
ad.insert(articles);
} /**
* 修改
* @param articles
*/
public void update(Articles articles){
ad.update(articles);
} /**
* 查询总条数
*/ public Integer count(){
return ad.count();
} /**
* 查询所有不为0的
* @return
*/
public List<Articles> selectall(){
return ad.select1();
} }

在controller包中建立:

package com.maya.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import com.maya.model.Articles;
import com.maya.model.PageBean;
import com.maya.service.*;
import com.maya.util.ResponseUtil;
import com.sun.xml.internal.ws.client.ResponseContext; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; @Controller
public class ArticlesController {
@Autowired
private ArticlesService as; //查询、模糊查询
@ResponseBody
@RequestMapping(value = "selectall")
public String select(@RequestParam("page") String page, @RequestParam("rows") String rows,
@RequestParam(value = "s_dname", required = false, defaultValue = "") String s_dname) {
PageBean pagebean = new PageBean(Integer.parseInt(page), Integer.parseInt(rows));
List<Articles> list = null;
Integer ins = 0;
if (s_dname.equals("")) {
list = as.select(null, pagebean);
ins = as.count();
} else {
list = as.byname(s_dname, pagebean);
ins = list.size();
} JSONArray jsonarray = new JSONArray();
for (Articles a : list) {
JSONObject json = new JSONObject();
json.put("id", a.getId());
json.put("sname", a.getSname());
json.put("money", a.getMoney());
if(a.getSnumber()==0){
json.put("snumber", "暂无库存");
}
else{
json.put("snumber", a.getSnumber());
}
jsonarray.add(json);
}
JSONObject json1 = new JSONObject();
json1.put("total", ins);
json1.put("rows", jsonarray.toString());
return json1.toString();
} //添加或者修改
@ResponseBody
@RequestMapping("sevaOrUpdate")
public String sevaOrUpdate(@RequestParam("id") String id, @RequestParam("sname") String sname,
@RequestParam("money") String money, @RequestParam("snumber") String snumber) {
Articles ac = new Articles();
ac.setMoney(Double.parseDouble(money));
ac.setSname(sname);
ac.setSnumber(Integer.parseInt(snumber)); if (id.equals("")) {
as.insert(ac);
} else {
ac.setId(Integer.parseInt(id));
as.update(ac);
}
JSONObject json = new JSONObject();
json.put("success", true);
return json.toString();
}
}

建立页面,完成

SSM整合(spring、springMVC、mybatis)的更多相关文章

  1. 简单易学的SSM(Spring+SpringMVC+MyBatis)整合

    SSM(Spring+SpringMVC+MyBatis)的整合: 具体执行过程:1.用户在页面向后台发送一个请求 2.请求由DispatcherServlet 前端控制器拦截交给SpringMVC管 ...

  2. SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  3. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

  4. Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World(转发)

    [JSP]Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World 来源:http://blog.csdn.net/zhshulin/article/de ...

  5. SSM(Spring+SpringMVC+MyBatis)高并发优化思路

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项目的框架 ...

  6. 使用maven整合spring+springmvc+mybatis

    使用maven整合spring+springmvc+mybatis 开发环境: 1. jdk1.8 2. eclipse4.7.0 (Oxygen) 3. mysql 5.7 在pom.xml文件中, ...

  7. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)

    使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...

  8. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  9. ssm之spring+springmvc+mybatis整合初探

    1.基本目录如下  2.首先是向lib中加入相应的jar包  3.然后在web.xml中加入配置,使spring和springmvc配置文件起作用. <?xml version="1. ...

  10. maven项目快速搭建SSM框架(一)创建maven项目,SSM框架整合,Spring+Springmvc+Mybatis

    首先了解服务器开发的三层架构,分配相应的任务,这样就能明确目标,根据相应的需求去编写相应的操作. 服务器开发,大致分为三层,分别是: 表现层 业务层 持久层 我们用到的框架分别是Spring+Spri ...

随机推荐

  1. 怎样解决Please ensure that adb is correctly located at......

    昨天下午搭建了Android开发环境,但是天公不作美--执行新建的Android项目总是提演示样例如以下问题: [2014-10-30 15:41:47 - ] The connection to a ...

  2. exist & in

    select a.* from A a where exists ( select 1 from B b where a.id=b.id ) public List exist(){ List res ...

  3. 2.3 使用ARDUINO控制MC20进行GPRS的TCP通讯

    需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...

  4. CS224n学习资源汇总

    一.课程网站: http://web.stanford.edu/class/cs224n/archive/WWW_1617/index.html 二.视频(中文字幕) http://www.mooc. ...

  5. 初学JQuery相关知识点

    [简单的JQuery]注册事件的函数. $(document).ready(function(){}) [JQuery提供的函数]$.map(array,fn) 对数组array中每个元素调用fn函数 ...

  6. 优化MD5和IP在(MySQL)数据库中的存储

    1.MD5在MySQL数据库中的存储 用CHAR(32)来存储MD5值是一个常见的技巧.如果你的应用程序使用VARCHAR(32),则对每个值得字符串长度都需要花费额外的不 必要的开销.这个十六进制的 ...

  7. Dubbo框架入门介绍

    背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个 ...

  8. HDU 4783 Clumsy Algorithm

    题意不提. 我们可以发现,可以将最终序列分为对于第i个位置i-pi>=0与i-pi<0种两个子序列.且如果f[n]==g[n],则有两个子序列都递增. 原因是f[n]表示1-n这个排列的逆 ...

  9. linux下firefox显示中文乱码的问题

    只需要yum install "@Chinese Support" 然后注销,再登录一下,刷新浏览器就可以正常显示中文了,当然前提是浏览器的字符编码为utf-8以及默认显示中文,这 ...

  10. 去除带有iframe页面中的2个滚动条[转]

    方法一:加载frame时修改高度 <div>    <iframe id="frame_content" name="frame_content&quo ...