mybatis学习笔记 spring与mybatis整合
转载自http://blog.csdn.net/naruto_Mr/article/details/48239357
1.创建web工程,导入spring依赖包与mybatis依赖包,还需要mybatis-spring.jar,这是spring连接mybatis的桥梁.下载地址:http://mvnrepository.com/artifact/org.mybatis/mybatis-spring
2.配置文件
1)web.xml配置,指定spring配置文件名为config/spring-cfg.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <!-- spring入口 -->
- <!-- 自动加载spring配置文件WEB-INF/applicationContenxt.xml -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- 修改spring配置文件路径 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>WEB-INF/classes/config/spring-cfg.xml</param-value>
- </context-param>
- </web-app>
2)spring-cfg.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:tx="http://www.springframework.org/schema/tx"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.2.xsd">
- <import resource="classpath:config/spring-mybatis.xml"/>
- <!-- 开启注解注入 -->
- <context:annotation-config></context:annotation-config>
- <context:component-scan base-package="com.skymr.mybatis.dao"></context:component-scan>
- <context:component-scan base-package="com.skymr.mybatis.service"></context:component-scan>
- </beans>
引用mybatis的spring配置文件,开启自动扫描功能,扫描dao层与service层.
3)spring-mybatis.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"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <!-- 数据源 -->
- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <!-- 这个属性driverClassName为什么在DriverManagerDataSource及父类中找不到呢 -->
- <property name="driverClassName" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://127.0.0.1:3306/website"/>
- <property name="username" value="root" />
- <property name="password" value="root" />
- </bean>
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.skymr.mybatis.dao"></property>
- <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
- </bean>
- <!-- sessionFactory配置 -->
- <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="mapperLocations" value="classpath:com/skymr/mybatis/mappers/*.xml"/>
- <property name="configLocation" value="classpath:config/mybatis-config.xml"/>
- </bean>
- </beans>
首先是配置数据源;
再配置了个MapperScannerConfigurer,这个是什么用的呢?
在Service的实现层中,要使用到dao层的实现层的实例,但是mybatis中是没有dao层实现层的啊,怎么注入到Service中呢,我想MapperScannerConfiger就是解决这个问题的,它是将mybatis自己对dao层的实例化后的实例注入到spring容器中,我们就可以取出后使用.
最后配置了SqlsessionFactory,指定mapper文件路径与mybatis的另一些配置.
3)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>
- <typeAliases>
- <!-- 别名配置,方便书写 -->
- <package name="com.skymr.mybatis.model"/>
- </typeAliases>
- </configuration>
只是定义别名而已.
3.分层
1).Model层
- package com.skymr.mybatis.model;
- public class User {
- private int id;
- private String userName;
- private String password;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String toString(){
- return id+"," + userName+","+password;
- }
- }
2)Dao层
- package com.skymr.mybatis.dao;
- import com.skymr.mybatis.model.User;
- public interface UserDao {
- public User login(String userName, String password);
- }
3)mapper层,UserMapper.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.skymr.mybatis.dao.UserDao">
- <select id="login" resultType="User">
- select * from mybatis_user where userName=#{param1} and password=#{param2}
- </select>
- </mapper>
4).Service层
- package com.skymr.mybatis.service;
- import com.skymr.mybatis.model.User;
- public interface UserService {
- public User login(String userName, String password);
- }
- package com.skymr.mybatis.service.impl;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Repository;
- import com.skymr.mybatis.dao.UserDao;
- import com.skymr.mybatis.model.User;
- import com.skymr.mybatis.service.UserService;
- @Repository("userService")
- public class UserServiceBean implements UserService{
- @Resource
- private UserDao userDao;
- public User login(String userName, String password) {
- return userDao.login(userName, password);
- }
- }
4.测试
- package com.skymr.mybatis.service;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.skymr.mybatis.model.User;
- public class LoginTest {
- @Test
- public void loginTest(){
- ApplicationContext context= new ClassPathXmlApplicationContext("/config/spring-cfg.xml");
- UserService service =(UserService) context.getBean("userService");
- User user = service.login("aaaa", "aaaa");
- System.out.println(user);
- }
- }
mybatis学习笔记 spring与mybatis整合的更多相关文章
- mybatis 学习笔记 -详解mybatis 及实例demo
快速入门1 要点: 首先明白mybatis 是什么 这是一个持久层的框架.之前叫做ibatis.所以,在它的代码中出现ibatis这个词的时候,不要感到惊讶.不是写错了,它确实就是这个样子的. 首先, ...
- MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...
- SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)
系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到 ...
- MyBatis学习笔记(3)—— 利用mybatis灌入假数据
由于第三方厂商未能按时提供实时数据,故需要纯手动导入一些实时数据,用于统计分析.正好最近自己学习了mybatis .因此使用mybatis 配置一个select.insert 的简单操作语句,用于灌入 ...
- MyBatis学习笔记1--初识MyBatis
我也是初学者,写博客只是想把自己的整个思路整理一下,有不对或者不好的地方,请大家多多指正. 1.MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射. ...
- MyBatis学习笔记(三)——优化MyBatis配置文件中的配置
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4264301.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的 ...
- 1.1(Mybatis学习笔记)初识Mybatis
一.Mybatis下载与使用 下载地址:https://github.com/mybatis/mybatis-3/releases 下载后解压目录: 需要将lib下的jar包和mybatid-x-x- ...
- Mybatis学习笔记-第一个Mybatis程序
思路 搭建环境 搭建数据库(略) CREATE DDATABASE CREATE TABLE INSERT VALUES 新建项目 普通Maven项目 删除src文件夹 --> 建立父工程 导入 ...
- Mybatis学习笔记导航
Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...
随机推荐
- Docker运行GUI软件的方法
转自 https://www.csdn.net/article/2015-07-30/2825340 简介: Docker通过namespace将容器与主机上的网络和运行环境进行了隔离,默认情况下,在 ...
- 【数据库】MongoDB学习
http://www.w3cschool.cc/mongodb/mongodb-tutorial.html http://api.mongodb.org/python/2.7rc0/examples/ ...
- Bootstrap-table学习笔记(二)——前后端分页模糊查询
在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下,顺便做个总结: 1,前端分页 2,后端分页 3,模糊查询 前端分页相当简单,在我添加了2w条测试数据的时候打开的很流畅,没有卡顿. ...
- 《DSP using MATLAB》示例Example7.18
代码: M = 33; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; T1 = 0.1095; T2 = 0.598; Hrs = [zeros(1,11) ...
- ②HttpURLConnection通过Json参数方式提交Post请求
之前的文章介绍过通过报文的方式HttpURLConnection提交post请求,今天介绍下通过Json参数的方法提交Post请求,先上代码 public static HttpResponse se ...
- Angular2使用boostrap和ng-bootstrap总结
Angular2使用bootstrap有几种方式,本文主要介绍两种方式进行Boostrap样式的使用: 一.直接通过静态文件的方式进行引入: 通过命令新建一个Bootstrap的工程 ng new B ...
- utf_8 和 GBK 不搭出现乱码(转)
今天调数据的时候发现调出来的一直是乱码,用了各种方法都未解决,简单的调数据用了好长时间,最后突然发现了一个问题 页面的 <meta http-equiv="Content-Type&q ...
- the road of test
1.firefox打印兼容问题: <HTML> <HEAD> <TITLE>JavaScript利用IE内置打印控件IEWebBrowser进行打印/打印页面设置/ ...
- 如何设计并使用FireMonkeyStyle
如何设计并使用FireMonkeyStyle FireMonkey使用Style来控制控件的显示方式. 每个控件都有一个StyleLookup属性,FireMonkey就是通过控件的这个属性来在当前窗 ...
- Avro之二:入门demo
一.使用avro-maven插件为avsc文件生成对应的java类: 在项目的pom.xml中增加依赖及插件如下: <dependency> <groupId>org.apac ...