Spring+Mybatis开发示例

写下来留个纪念(^~^)大神可飘过

1,实现Spring+Mybatis+数据源的配置

2,实现枚举到数据库TINYINT类型的转换

3,slf4j日志配置方法

4,数据库增+删+改+查操作

5,实现效果界面+项目配置目录树

 
   

6,关键代码:

a)控制器

package com.fresh.lyh.simple.controller;

import com.fresh.lyh.simple.model.Simple;
import com.fresh.lyh.simple.model.cenum.SimpleStatusEnum;
import com.fresh.lyh.simple.service.SimpleService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 作者 yaohua.liu
 * 时间 2014-06-12 20:20
 * 包名 com.qunar.qfound.controller
 * 说明 ...
 */
@Controller
@RequestMapping("/")
public class SimpleController {
    @Resource
    SimpleService simpleService;

    Logger logger = LoggerFactory.getLogger(SimpleController.class);
    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    @RequestMapping("")
    public Object go(Model model) {
        logger.info("======================================>go.do");
        return forwardToIndex(model);
    }

    @RequestMapping("regedit.do")
    public Object regedit(@RequestParam(value = "name", required = true) String name,
                          @RequestParam(value = "passwd", required = true) String passwd,
                          @RequestParam(value = "birth", required = false) String birth,
                          @RequestParam(value = "status", required = false) int status,
                          Model model) {
        logger.info("===============================regedit.do: " + name + ":" + passwd + ":" + birth);

        Simple simple = new Simple(name, passwd);
        simple.setCreateTime(new Date());
        try {
            simple.setBirth(sdf.parse(birth));
            simple.setStatus(SimpleStatusEnum.codeOf(status));
        } catch (ParseException e) {
            logger.info("===============解析生日日期失败");
        }
        if (simpleService == null)
            logger.info("simpleService注入失败!!");

        simpleService.regedit(simple);

        return forwardToIndex(model);
    }

    @RequestMapping("update.do")
    public Object update(@RequestParam(value = "name", required = true) String name, @RequestParam(value = "id", required = true) int id, Model model) {
        logger.info("=============================== update.do:" + name + ":" + id);

        Simple simple = new Simple();
        simple.setName(name);
        simple.setId(id);
        simpleService.update(simple);

        return forwardToIndex(model);
    }

    @RequestMapping("query.do")
    public Object query(@RequestParam(value = "name", required = false) String name, Model model) {
        logger.info("===============================query.do: " + name);

        Simple simple = new Simple();
        simple.setName(name);
        List<Simple> simpleList = simpleService.query(simple);
        model.addAttribute("simples", simpleList);
        return "simple";
    }

    @RequestMapping("delete.do")
    public Object delete(@RequestParam(value = "id", required = true) int id, Model model) {
        logger.info("===============================delete.do: " + id);

        Simple simple = new Simple();
        simple.setId(id);
        simpleService.delete(simple);
        return forwardToIndex(model);
    }

    private String forwardToIndex(Model model) {
        List<Simple> simpleList = null;
        simpleList = simpleService.query();
        model.addAttribute("simples", simpleList);
        return "simple";
    }
}

b)Mybatis配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!--
            自动把create_time 转换成 createTime
            不需要在添加 as 语句,如:
            select create_time as createTime from your_table_name;//以前使用这样的语句
            使用 select create_time from your_table_name;//现在使用这样的语句
        -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!--
        类的别名
        以前使用:<typeAlias type="com.qunar.qfound.model.Simple" alias="Simple"/>
        现在使用:<package name="com.qunar.qfound.model"/>可完成model下面使用实体类的扫描
        后面方式默认把类的别名命名为类名且第一个字母为小写,也支持直接使用类名,如:
        在mapper/simple.xml中可以使用simple也可以使用Simple
    -->
    <typeAliases>
        <package name="com.fresh.lyh.simple.model"/>
        <package name="com.fresh.lyh.simple.model.cenum"/>
    </typeAliases>

    <typeHandlers>
        <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"  javaType="SimpleStatusEnum" />
    </typeHandlers>
</configuration>

c)Mybatis映射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.fresh.lyh.simple.dao.SimpleDAO">

    <resultMap id="simpleResult" type="Simple">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="birth" property="birth"/>
        <result column="create_time" property="createTime"/>
        <result column="passwd" property="passwd"/>
        <result column="status" property="status" javaType="SimpleStatusEnum" jdbcType="TINYINT"/>
    </resultMap>

    <insert
            id="regedit"
            parameterType="Simple"
            useGeneratedKeys="true"
            keyProperty="id">
        <![CDATA[
            insert into simple(
             name,
             passwd,
             birth,
             status,
             create_time
            ) values (
                #{name},
                #{passwd},
                #{birth},
                #{status,javaType=SimpleStatusEnum,jdbcType=TINYINT},
                #{createTime}
           )
        ]]>
    </insert>

    <update id="update"
            parameterType="Simple">
        <![CDATA[

            update simple set
              name = #{name}
            where id=#{id}
        ]]>
    </update>

    <select
            id="query"
            parameterType="Simple"
            resultMap="simpleResult">
        <![CDATA[
          select
              id,
              name,
              passwd,
              birth,
              status,
              create_time
          from simple
        ]]>
        <where>
            <if test="name!=null and name!=''">
                and name=#{name}
            </if>
        </where>
    </select>

    <delete
            id="delete"
            parameterType="java.util.HashMap">
        <![CDATA[
          delete from simple
        ]]>
        <where>
            and id=#{id}
        </where>
    </delete>
</mapper>

d)枚举类文件

package com.fresh.lyh.simple.model.cenum;

/**
 * 作者 yaohua.liu
 * 时间 2014-07-13 20:21
 * 包名 com.qunar.qfound.cenum
 * 说明 ...
 */

public enum SimpleStatusEnum {

    normal(0, "正常"), delete(1, "已删除");
    private Integer code;
    private String role;

    SimpleStatusEnum(Integer code, String role) {
        this.role = role;
        this.code = code;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public static SimpleStatusEnum codeOf(Integer code) {
        for (SimpleStatusEnum status : values()) {
            if (status.code == code)
                return status;
        }
        throw new IllegalArgumentException("Invalid role code: " + code);
    }
}

e)dao配置文件

<?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/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">

    <!-- =================================================== 数据源 -->
    <bean id="abstractPoolDatatSource" abstract="true" class="org.apache.tomcat.jdbc.pool.DataSource"
          destroy-method="close">
        <property name="fairQueue" value="false"/>
        <property name="initialSize" value="1"/>
        <property name="maxActive" value="50"/>
        <property name="maxIdle" value="20"/>
        <property name="maxWait" value="5000"/>
        <property name="minIdle" value="1"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="30"/>
        <property name="testOnBorrow" value="true"/>
        <property name="validationQuery" value="select 1"/>
        <property name="validationInterval" value="500000"/>
    </bean>

    <bean id="dataSource" parent="abstractPoolDatatSource">
        <property name="driverClassName" value="${mysql.jdbc.driver}"/>
        <property name="url" value="${mysql.jdbc.url}"/>
        <property name="username" value="${mysql.jdbc.username}"/>
        <property name="password" value="${mysql.jdbc.password}"/>
    </bean>

    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:mappers/*.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.fresh.lyh.simple.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
    </bean>
</beans>

7,全部代码免费下载地址http://download.csdn.net/detail/love254443233/7643049

Spring+Mybatis开发示例

时间: 2024-12-25 10:00:13

Spring+Mybatis开发示例的相关文章

Easyui+Spring+Mybatis完整示例(后台)

Controller: /**软件管理*/ @Controller @RequestMapping("/deploySoftware") public class DeploySoftwareController extends BaseController { @Autowired private DeploySoftwareService deploySoftwareService; /**跳转到软件信息页面 */ @RequestMapping("/list"

java开发SSM框架的搭建(SpringMVC+Spring+MyBatis)

由于某些原因,重装系统,java-web开发虽然顺手,但烦人的一点是开发环境的搭建.差不多折腾了一整天,笔者在这里把SSM开发环境的搭建重新清理一遍,以飨读者,也供自己以后参考.善于总结,是做好每份工作必备的素质之一. 1安装java虚拟机-JDK(1.7_51) 详见笔者博文:http://blog.csdn.net/gisredevelopment/article/details/24304085 2 安装MyEclipse(2014专业版) 下载地址:http://www.myeclips

SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发。

SSM 即所谓的 Spring MVC + Spring + MyBatis 整合开发.是目前企业开发比较流行的架构.代替了之前的SSH(Struts + Spring + Hibernate) 计划的架构组合 Sping MVC + Spring + MyBatis(非Ajax版) Sping MVC + Spring + MyBatis(Ajax版) Sping MVC + Spring + MyBatis(Ajax版 + JavaConfig) Spring Boot + MyBatis

Java Web开发中Spring+MyBatis框架的简单搭建

这里使用的eclipse,首先创建一个动态web项目. 1.导入Spring IOC.AOP.DAO.dbcp.dbdrive.mybatis.jar . mybatis-spring.jar  本人使用的jar包和版本如下: aopalliance.jaraspectjweaver.jarcommons-dbcp-1.4.jarcommons-logging.jarcommons-pool-1.5.6.jarmybatis-3.2.5.jarmybatis-spring-1.2.2.jarmy

Redis 缓存 + Spring 的集成示例(转)

<整合 spring 4(包括mvc.context.orm) + mybatis 3 示例>一文简要介绍了最新版本的 Spring MVC.IOC.MyBatis ORM 三者的整合以及声明式事务处理.现在我们需要把缓存也整合进来,缓存我们选用的是 Redis,本文将在该文示例基础上介绍 Redis 缓存 + Spring 的集成.关于 Redis 服务器的搭建请参考博客<Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务>. 1. 依赖包安装 pom.xml

java高级软件架构师实战视频教程 Spring+Mybatis+SpringMVC+Ehcache+Memcached+Redis+Nginx+Varnish+ActiveMQ+Keepalived+MySQL+MongoDB

java高级软件架构师实战阶段1视频教程 迅雷下载  百度云 第001节:整体课程概览第002节:分模块.分工程管理第003节:多模块多Web应用合并War包第004节:Git基本原理和安装配置使用第005节:TortoiseGit的本地使用第006节:Egit的本地使用第007节:远程使用以及冲突解决第008节:基本业务功能和数据字典第009节:搭建基础的开发环境第010节:Spring+Mybatis实现DAO第011节:Mybatis的分页实现第012节:Service的实现以及模块化第0

基于Springmvc+Spring+Mybatis+Jqueryeasyui个人信息管理平台(日程管理、天气类型、资产管理、理财规划)

基于Springmvc+Spring+Mybatis+Jqueryeasyui个人信息管理平台(日程管理.天气类型.资产管理.理财规划) 课程讲师老牛 课程分类Java 适合人群中级 课时数量78课时 更新程度完毕 服务类型C类普通服务类课程 用到技术Springmvcspringmybatisjquery easyui 涉及项目个人信息管理好友管理报表实现 咨询QQ2050339477 课程链接http://www.dwz.cn/LO1X3 课程背景 本系统主要用于个人信息的管理通过软件工具对

Spring应用开发常见规范

1.Spring应用开发常见包命名规范 controller:控制器 service:服务-接口 impl:服务-实现 integration sao:调用其他模块的,把feign的调用放到这个下面 web:供前端调用 remote:调用外部接口(其他模块提供的接口) api:各模块间的调用(对外的接口) openapi:对外的接口 dao:持久层/mybatis接口 entity:数据库实体 mapper:持久层/mybatis实现 vo:前端页面到controller的参数对象 dto:调用

Spring+MYBatis企业应用实战pdf高清版免费下载

下载地址:网盘下载 备用地址:网盘下载 内容提要编辑<Spring+MyBatis企业应用实战>介绍了Java EE 领域的两个开源框架:Spring 的MVC 和MyBatis.其中Spring 的版本为4.2,MyBatis 的版本是3.4.本书的示例建议在Tomcat 8 上运行.<Spring+MyBatis企业应用实战>重点介绍如何整合Spring MVC 4+MyBatis 3 进行Java EE 开发,主要包括三个部分.第一部分详细介绍了Spring MVC 框架的用