前言:MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

想瞭解更多可訪問:http://code.google.com/p/mybatis/

我的開發環境
  框架: springmvc+spring+freemarker+mybatis
  開發工具: springsource-tool-suite-2.9.0
  JDK版本: 1.6.0_29
  tomcat版本:apache-tomcat-7.0.26

本文地址:http://www.cnblogs.com/sunang/p/3431596.html  轉載請注明出處^_^

要注意的點已经用          標注,請大家要特別注意。

前置文章

  SpringMVC配置入門    http://www.cnblogs.com/sunang/p/3419544.html

  Spring整合Freemarker  http://www.cnblogs.com/sunang/p/3419676.html

now go!

step1.引入jar包

Maven代碼如下:

        <!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.3</version>
</dependency>
<!-- @Resource注解所需依賴 -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
<!-- JDBC连接数据库所需依赖 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>com.springsource.org.apache.commons.dbcp</artifactId>
<version>1.2.2.osgi</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.5.RELEASE</version>
</dependency>

step2.編輯spring配置文件,代碼如下:

    <!-- MyBatis配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="mySqlDataSource" />
<!-- 配置sql語句映射文件路徑 -->
<property name="mapperLocations" value="classpath:conf/mapper/*Mapper.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<!-- 配置数据源 -->
<bean id="mySqlDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://localhost:3306/sample"></property>
<property name="username" value="root"></property>
<property name="password" value="12345678"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
</bean>

step3.在step.2配置好的src/main/resources/conf/mapper目錄下,編輯sql映射文件UserDaoMapper.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">
<!-- 在DAO中將使用命名空間(namespace)+id的方式來定位sql語句-->
<mapper namespace="user">
<select id="queryUserCount" resultType="int"><!-- resultType的值為返回的結果類型 -->
select count(*) from user;
</select>
</mapper>

step4.編輯Dao、Controller、視圖文件,代碼分別如下:

DAO接口UserDao.java:

package www.asuan.com.dao;

public interface UserDao {
int queryUserCount();
}

DAO實現UserDaoImpl.java:

package www.asuan.com.dao.impl;

import javax.annotation.Resource;

import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository; import www.asuan.com.dao.UserDao; @Repository("userDao")
public class UserDaoImpl implements UserDao { @Resource
private SqlSession sqlSession;// 注入sqlSession public int queryUserCount() {
// 使用sqlSession進行操作
return sqlSession.selectOne("user.queryUserCount");
}
}

controller:

package www.asuan.com.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import www.asuan.com.dao.UserDao; @Controller
@RequestMapping("/learnMVC")
public class SpringMybatisController { @Autowired
UserDao userDao; @RequestMapping("/getUserCount")
public String getUserCount(Model model) {
int userCount = userDao.queryUserCount();//調用DAO方法獲得數據
model.addAttribute("userCount", userCount);
return "userCount.ftl";
}
}

視圖文件userCount.ftl:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
user表中總共有:---${userCount}---條數據
</body>
</html>

step.5 數據庫準備

本文以mysql作為數據庫,在sample下新建user表,數據如下:

step.6 運行與測試

部署并運行工程,瀏覽器訪問:http://localhost:8080/你的工程名/learnMVC/getUserCount.htm

運行結果:

complete!

Spring整合MyBatis的更多相关文章

  1. Spring学习总结(六)——Spring整合MyBatis完整示例

    为了梳理前面学习的内容<Spring整合MyBatis(Maven+MySQL)一>与<Spring整合MyBatis(Maven+MySQL)二>,做一个完整的示例完成一个简 ...

  2. Spring学习总结(五)——Spring整合MyBatis(Maven+MySQL)二

    接着上一篇博客<Spring整合MyBatis(Maven+MySQL)一>继续. Spring的开放性和扩张性在J2EE应用领域得到了充分的证明,与其他优秀框架无缝的集成是Spring最 ...

  3. 分析下为什么spring 整合mybatis后为啥用不上session缓存

    因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...

  4. 2017年2月16日 分析下为什么spring 整合mybatis后为啥用不上session缓存

    因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...

  5. spring整合mybatis错误:class path resource [config/spring/springmvc.xml] cannot be opened because it does not exist

    spring 整合Mybatis 运行环境:jdk1.7.0_17+tomcat 7 + spring:3.2.0 +mybatis:3.2.7+ eclipse 错误:class path reso ...

  6. spring 整合Mybatis 《报错集合,总结更新》

    错误:java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldExcepti ...

  7. spring整合mybatis(hibernate)配置

    一.Spring整合配置Mybatis spring整合mybatis可以不需要mybatis-config.xml配置文件,直接通过spring配置文件一步到位.一般需要具备如下几个基本配置. 1. ...

  8. spring 整合 mybatis 中数据源的几种配置方式

    因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...

  9. Mybatis学习(六)————— Spring整合mybatis

    一.Spring整合mybatis思路 非常简单,这里先回顾一下mybatis最基础的根基, mybatis,有两个配置文件 全局配置文件SqlMapConfig.xml(配置数据源,全局变量,加载映 ...

  10. Spring整合MyBatis 你get了吗?

    Spring整合MyBatis 1.整体架构dao,entity,service,servlet,xml 2..引入依赖 <dependencies> <dependency> ...

随机推荐

  1. calc常用

    Mod:求模(整数相除求余数), And:按位与 Or:按位或 Xor:按位异或 Lsh:按位左移 Not:按位取反 Int:取整数部分

  2. Android笔记之——线程

    Java: package com.example.test_ui_thread01;import android.support.v7.app.AppCompatActivity;import an ...

  3. centos网卡配置和防火墙停止和启动

    Linux 设置网卡配置ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static ...

  4. Ruby-模块和类

    首先看下他们的关系 irb(main):100:0> String.class => Class irb(main):101:0> String.class.superclass  ...

  5. webView 点击页面跳转到浏览器

    @interface ForumDetailViewController ()<UIWebViewDelegate> { NSUInteger _clickedNumber; } @end ...

  6. SpringMVC接收页面表单参数

    一个普通的表单. 表单的代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8&q ...

  7. android之Fragment基础详解(一)

      一.Fragment的设计哲学 Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计.平板电脑的屏幕比手机的大得多,有 ...

  8. oracle java SE

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

  9. ArcMap中地图输出(Options)选项显示不完整

    首先,我开始遇到的时候,认为是高分辨屏幕的问题,所以修改了屏幕的分辨率,结果并没有改变. 然后,认为是对话窗口的显示,修改字体大小,也没有显示完整. 最后,是修改了ArcGIS的注册表才解决.解决方式 ...

  10. spring缓存

    Spring Cache使用详解   复制过来时的地址:http://blog.csdn.net/xiaoyu411502/article/details/48901555 标签: spring-bo ...