• 最简单的Spring+SpringMVC+Mybatis的整合


    本宝宝菜鸟一枚,这个项目献给还在学的朋友们,第一次写,写的不好不要介意。好了直接上一个以前写的小demo,很简单,也很好理解直接copy出去改改就能运行了,包需要自己见,架包需要自己导,页面自己写个简单的测试一下就能跑起来了,,献丑了!

    db.properties文件:数据库用的是mysql

    dbcp.driver=com.mysql.jdbc.Driver
    dbcp.validationQuery=SELECT 1

    dbcp.url=jdbc:mysql://localhost:3306/这里写你的数据库名字?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
    dbcp.username=root 
    dbcp.password=root

    dbcp.init=1
    dbcp.max=5
    dbcp.min=2
    dbcp.defaultAutoCommit=true
    dbcp.test_sql=select 1 from dual

    最简单的mybatis.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>

    <!-- setttings属性设置 -->
    <settings>
    <!-- 全局映射器启用缓存 -->
    <setting name="cacheEnabled" value="true" />
    <!-- 查询时, 关闭关联对象即时加载以提高性能 -->
    <setting name="lazyLoadingEnabled" value="true" />
    <!-- 设置关联对象加载的形态, 此处为按需加载字段(加载字段由 SQL指 定) , 不会加载关联表的所有字段, 以提高性能 -->
    <setting name="aggressiveLazyLoading" value="true" />
    <!-- 对于未知的 SQL 查询, 允许返回不同的结果集以达到通用的效果 -->
    <setting name="multipleResultSetsEnabled" value="true" />
    <!-- 允许使用列标签代替列名 -->
    <setting name="useColumnLabel" value="true" />
    <!-- 允许使用自定义的主键值(比如由程序生成的 UUID 32 位编码作为 键值) , 数据表的 PK 生成策略将被覆盖 -->
    <setting name="useGeneratedKeys" value="true" />
    <!-- 给予被嵌套的 resultMap 以字段-属性的映射支持 -->
    <setting name="autoMappingBehavior" value="FULL" />
    <!-- 对于批量更新操作缓存 SQL 以提高性能 -->
    <setting name="defaultExecutorType" value="BATCH" />
    <!-- 数据库超过 25000 秒仍未响应则超时 -->
    <setting name="defaultStatementTimeout" value="25000" />
    </settings>
    <!-- alias -->
    <typeAliases>
      <typeAlias alias="user" type="这里是所要写的模型bean"></typeAlias>
    </typeAliases>
    </configuration>

    这里是最简单的spring.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:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c" 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.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 这里写你所需要扫描控制层包,类不写 -->
    <context:component-scan base-package="com.testing">
    <!-- 包下扫描类的时候,不扫描Controller注解的类 -->
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 引入资源文件 ,里面配置的是数据库连接的几大要素-->
    <context:property-placeholder location="classpath:db.properties" />

    <!-- 数据库连接池 -->
    <bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${dbcp.driver}"></property>
    <property name="url" value="${dbcp.url}"></property>
    <property name="username" value="${dbcp.username}"></property>
    <property name="password" value="${dbcp.password}"></property>

    <property name="initialSize" value="${dbcp.init}"></property>
    <property name="maxIdle" value="${dbcp.max}"></property>
    <property name="minIdle" value="${dbcp.min}"></property>
    <property name="defaultAutoCommit" value="${dbcp.defaultAutoCommit}"></property>
    <property name="validationQuery" value="${dbcp.test_sql}"></property>
    </bean>

    <!-- mybatis的sessionFactory -->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 加载数据源 -->
    <property name="dataSource" ref="dataSource"></property>
    <!-- 关联mybatis主配置文件 -->
    <property name="configLocation" value="classpath:mybatis.xml"></property>
    <!-- 关联映射sql文件 -->
    <property name="mapperLocations" value="classpath:com/testing/mapper/*.xml"></property>
    </bean>

    <!-- mybatis的SqlSessionTemplate -->
    <bean id="session" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sessionFactory"></constructor-arg>
    </bean>

    </beans>

     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:p="http://www.springframework.org/schema/p"
    xmlns:c="http://www.springframework.org/schema/c" 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.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- -扫描只包含controller控制器层- -->
    <context:component-scan base-package="com.testing">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter>

    </context:component-scan>
    </beans>

    剩下的就是包了:主要是模型bean层  控制层controller的包  主要放映射文件的包   还有一个是service包

    这是项目结构:

     

    lib:

    bean层里面的就不写了很简单,这里主要写一下服务层service和mapper映射文件还有controller层:

    mapper映射文件:

    <?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.slee">

    <select id="select" resultType="slee">
    select * from sleeParams
    </select>

    <delete id="deleteById" parameterType="slee">
    delete from sleeParams where
    <if test="sleeParamsId!=null and sleeParamsId !=''">
    sleeParamsId=#{sleeParamsId}
    </if>
    </delete>
    <update id="update" parameterType="slee">
    update sleeParams set
    sleeParamsJx=#{sleeParamsJx}
    ,sleeParamsPcbType=#{sleeParamsPcbType}
    ,sleeParamsEMS=#{sleeParamsEMS}
    ,sleeParamscode=#{sleeParamscode}
    ,sleeParamsBBH=#{sleeParamsBBH}
    ,sleeParamsMarkeCode=#{sleeParamsMarkeCode}
    ,sleeParamsStatus=#{sleeParamsStatus}
    where sleeParamsId=#{sleeParamsId}
    </update>

    <insert id="insertSlee" parameterType="slee"
    useGeneratedKeys="true" keyProperty="sleeParamsId">
    insert into sleeParams
    (sleeParamsId,
    sleeParamsJx,
    sleeParamsPcbType,
    sleeParamsEMS,
    sleeParamscode,
    sleeParamsBBH,
    sleeParamsMarkeCode)
    values
    (#{sleeParamsId},
    #{sleeParamsJx},
    #{sleeParamsPcbType},
    #{sleeParamsEMS},
    #{sleeParamscode},
    #{sleeParamsBBH},
    #{sleeParamsMarkeCode}
    )
    </insert>
    <select id="selectById" resultType="slee" parameterType="slee">
    select * from sleeParams where sleeParamsId=#{sleeParamsId}
    </select>
    </mapper>

     

    服务层service:

    package com.testing.service;

    import java.util.List;

    import org.mybatis.spring.SqlSessionTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import com.testing.bean.SleeParamsBean;


    @Service
    public class SleeService {

    @Autowired
    private SqlSessionTemplate session;

    public boolean add(SleeParamsBean bean){

    try {
    session.insert("com.slee.insertSlee", bean);
    return true;
    } catch (Exception e) {

    e.printStackTrace();
    }
    return false;
    }

    public List<SleeParamsBean> query( SleeParamsBean bean){
    return session.selectList("com.slee.select",bean );
    }

    public boolean delete(SleeParamsBean bean){
    try {
    session.delete("com.slee.deleteById", bean);
    return true;
    } catch (Exception e) {

    e.printStackTrace();
    }
    return false;
    }

    public boolean update(SleeParamsBean bean){
    try {
    session.update("com.slee.update", bean);
    return true;
    } catch (Exception e) {

    e.printStackTrace();
    }
    return false;
    }

    public List<SleeParamsBean> find(SleeParamsBean bean){
    return session.selectList("com.slee.selectById", bean.getSleeParamsId());

    }
    }

    控制层controller:

    package com.testing.controller;

    import java.util.List;

    import javax.servlet.http.HttpServletRequest;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    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.RequestMethod;

    import com.testing.bean.SleeParamsBean;
    import com.testing.service.SleeService;

    @Controller
    public class SleeParamsController {

    private Log log = LogFactory.getLog(SleeParamsController.class);

    @Autowired
    private SleeService service;

    /*
    * 查询
    */
    @RequestMapping(value="/querySlee")
    public String query(HttpServletRequest request){
    log.info("进入查询controller层==============");
    SleeParamsBean bean = new SleeParamsBean();
    List list = service.query(bean);
    request.setAttribute("querylist", list);
    return "querySlee.jsp";

    }
    /*
    * 添加
    */
    @RequestMapping(value="addSlee",method=RequestMethod.POST)
    public String add(SleeParamsBean bean,HttpServletRequest request){
    log.info("进入添加的controller层");
    boolean flag = service.add(bean);
    if (flag) {
    request.setAttribute("message","添加成功!");
    }else {
    request.setAttribute("message", "添加失败!");
    }
    return "addSlee.jsp";
    }
    /*
    * 查询单个
    */
    @RequestMapping(value="findSlee")
    public String find(HttpServletRequest request,SleeParamsBean bean){
    log.info("进入查询单个数据controller层");

    SleeParamsBean bean2 = service.find(bean).get(0);
    request.setAttribute("slee",bean2 );
    return "updateSlee.jsp";
    }
    @RequestMapping(value="updateSlee",method=RequestMethod.POST)
    public String update(SleeParamsBean bean , HttpServletRequest request){
    log.info("进入修改的controller层");

    boolean flag = service.update(bean);

    if (flag) {
    request.setAttribute("message", "修改成功");
    }else {
    request.setAttribute("message", "修改失败");
    }
    return "querySlee.jsp";
    }
    /*
    * 删除
    */
    @RequestMapping(value="deleteSlee")
    public String delete(HttpServletRequest request,SleeParamsBean bean){
    log.info("进入删除的页面");
    boolean flag = service.delete(bean);
    if (flag) {
    request.setAttribute("message", "删除成功");
    }else{
    request.setAttribute("message", "删除失败");
    }
    return "querySlee.jsp";
    }
    }

  • 相关阅读:
    Android 简单的语音播报
    Android 轮播图
    Android 再按一次退出程序
    Android 百度地图 android.view.InflateException: Binary XML file line Error inflating class com.baidu.mapapi.map.MapView
    Android Studio3.0打包APK的时候 报错:
    ADPU 大全
    全面介绍Android Studio中Git 的使用(一)
    坐标系转换
    Android 获取手机信息
    获取手机是否root信息
  • 原文地址:https://www.cnblogs.com/zlazm/p/7892629.html
Copyright © 2020-2023  润新知