`
zy3381
  • 浏览: 157877 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

MyBatis,Spring整合简易教程

阅读更多
在实际的项目开发中,我们需要将MyBatis和Spring进行整合,通过Spring 的依赖注入以减少代码的耦合。本文以MyEclipse和MySQL数据库为开发环境简单的讲解一下MyBatis和Spring的整合过程。

首先我们创建一个Java Project,名称任意,然后导入所需要包:spring3.1.1, mybatis-3.1.1.jar, mysql-connector-java-5.1.2-beta-bin.jar ,mybatis-spring-1.1.1.jar

第一步:创建数据库表
在Navicat下执行如下sql命令创建表User.

CREATE TABLE user
(
  id int(11) NOT NULL AUTO_INCREMENT,
  username varchar(20) NOT NULL,
  password varchar(20) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后插入测试数据
INSERT INTO user VALUES ('1', 'admin', 'admin');


第二步:创建model
创建一个model包并在其下创建一个User.java文件。
package model;

public class User {
	private int id;
	private String username;
	private String password;
	public User(){
		
	}
	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 "User [id = "+ id +" , username = "+ username +"]" + " , password = "+ password;
	}
}


第三步:创建DAO接口(这里我们对增删改查进行简单的实现)
创建一个包dao,并在其下创建一个UserMapper.java文件作为DAO接口。
package dao;

import model.User;

public interface UserMapper {
	public User selectUser(User user);
	public void insertUser(User user);
	public void updateUser(User user);
	public void deleteUser(int userId);
}


第四步:实现DAO接口
在dao包下创建一个UserMapper.xml文件作为上一步创建的DAO接口的实现。
<?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="dao.UserMapper">
<select id="selectUser" parameterType="model.User" resultType="model.User">
	SELECT * FROM user WHERE username=#{username} AND password=#{password}
</select>
<insert id="insertUser" parameterType="model.User" flushCache="true">
   INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})
</insert>
<update id="updateUser" parameterType="model.User">
	UPDATE user SET password=#{password} WHERE id=#{id}
</update>
<delete id="deleteUser" parameterType="int">
	DELETE FROM user WHERE id=#{userId}
</delete>
</mapper>

这里对这个xml文件作几点说明:
1. namespace要指定为接口的类路径。
2. select,insert,update,delete的id必须要和UserMapper.java接口中的方法同名。

第五步:创建MyBatis的配置文件
在src下创建一个mybatis-config.xml文件,由于我们的数据源部分是要交给Spring管理,所以此处的配置文件只包含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>
	<mappers>
		<mapper resource="dao/UserMapper.xml"/>
	</mappers>
</configuration>


第六步:在Spring中配置数据源
在src下创建一个ApplicationContext.xml文件作为Spring的配置文件,这里我们使用Spring自带的Jdbc数据源,读者可以根据实际需要替换为其他数据源。
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	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.0.xsd 
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
	http://www.springframework.org/schema/aop  
	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!—配置数据源-->
	<bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName">
		<value>org.gjt.mm.mysql.Driver</value>
	</property>
	<property name="url">
		<value>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</value>
	</property>
	<property name="username">
		<value>root</value>
	</property>
	<property name="password">
		<value>123456</value>
	</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="jdbcDataSource" />
    <property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
	<property name="mapperInterface" value="dao.UserMapper"></property>
    <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>

关于Spring配置的说明:
Spring没有内置的提供对MyBatis的支持,配置sqlSessionFactory和userMapper所需要的class是来自于mybatis-spring-1.1.1.jar。

第七步:测试
在src下创建一个test包,并在其下创建一个test.java文件
package test;

import model.User;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import dao.UserMapper;

public class test {
	public static void main(String[] args) {
		ApplicationContext ctx=null;
		ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
		UserMapper userMapper=(UserMapper)ctx.getBean("userMapper");
		User u=new User();
		u.setUsername("admin");
		u.setPassword("admin");
		System.out.println(userMapper.selectUser(u));
		//插入(去掉下面的注释进行调试)
		/*
		User insertUser=new User();
		insertUser.setUsername("testUsername");
		insertUser.setPassword("testPassword");
		userMapper.insertUser(insertUser);
		*/
		//更新(去掉下面的注释进行调试)
		/*
		u.setId(1);
		u.setPassword("updatePassword");
		userMapper.updateUser(u);
		*/
		//删除(去掉下面的注释进行调试)
		/*
		userMapper.deleteUser(9);
		*/
	}
}










分享到:
评论
6 楼 飞行官肥皂 2015-03-25  
赞一个,基础不好的都学会了,么么
5 楼 cnm493 2015-03-03  
w6889037 写道
大神,问一下,如果不是测试,是实际开发中需要分层,那么impl应该怎么写,impl类里面也是用ApplicationContext来访问数据库么

Spring的注入不知道吗?在Dao里面注入userMapper操作数据库就好了啊。
4 楼 w6889037 2015-02-11  
大神,问一下,如果不是测试,是实际开发中需要分层,那么impl应该怎么写,impl类里面也是用ApplicationContext来访问数据库么
3 楼 zhuyuyan06045837 2014-06-05  
lineNumber: 14; columnNumber: 3; 元素内容必须由格式正确的字符数据或标记组成。
2 楼 zy3381 2012-12-28  
zhqh100 写道
您好,我根据您的这篇文章搭建好了环境,可以查询和插入,修改数据了,这里想请教一下,文章中只是说了如何查询一条user数据,如果要返回表中的所有用户的话,该怎么实现?如何返回List或者Map?多谢


还是这个例子的环境,举个简单的例子说明一下:

第一步:DAO接口(UserMapper.java)中增加下面这个方法:

public List<User> findUsers();


第二步:在UserMapper.xml里增加如下的SQL语句映射:

<select id="findUsers" resultType="model.User">
	SELECT * FROM user
</select>


第三步:最后在测试的main方法里按照如下来取得查询出来的List

List<User> users = userMapper.findUsers();
1 楼 zhqh100 2012-12-22  
您好,我根据您的这篇文章搭建好了环境,可以查询和插入,修改数据了,这里想请教一下,文章中只是说了如何查询一条user数据,如果要返回表中的所有用户的话,该怎么实现?如何返回List或者Map?多谢

相关推荐

    SpringBoot整合Mybatis集成Swagger简易教程

    在本教程中,我们将深入探讨如何将SpringBoot与Mybatis框架整合,并且集成Swagger来创建一个功能完善的RESTful API文档。SpringBoot以其简洁的配置和快速的开发特性,已经成为Java领域开发微服务的首选框架。而...

    spring+mybatis+oracle简易案例

    总结,"spring+mybatis+oracle简易案例"是一个整合了Spring框架、MyBatis ORM和Oracle数据库的基础应用示例,展示了如何在Java项目中实现数据的CRUD操作。通过学习和实践这个案例,开发者可以深入理解这三个技术的...

    mybatis 简易教程只有单mybatis 没有整合其他框架.docx

    本教程主要聚焦于MyBatis的基本使用,没有涉及与其他框架的整合。 在上述代码中,我们看到了一个简单的MyBatis入门示例,这个例子展示了如何使用MyBatis来获取数据库中的数据。首先,我们导入了必要的包,包括`...

    spring3Mvc+mybatis3简易整合框架

    《Spring3Mvc+Mybatis3整合框架详解》 在当今的软件开发中,框架的使用大大提升了开发效率和代码质量。Spring3Mvc和Mybatis3是两个非常流行的Java Web开发框架,它们各自在不同的领域发挥着重要作用。Spring3Mvc...

    springboot整合mybatis的demo

    本教程将深入探讨如何整合这两个框架,创建一个简易的SpringBoot应用,以实现数据访问功能。 首先,我们需要在项目中引入相关的依赖。SpringBoot提供了starter来简化依赖管理,对于MyBatis,我们可以使用`spring-...

    SpringMVC+Mybatis集合整个简易Web项目

    **SpringMVC+Mybatis整合构建简易Web项目** 在JavaWeb开发中,SpringMVC和Mybatis是两个非常重要的框架,它们的结合可以构建出高效、灵活的后端架构。本项目采用Spring、SpringMVC、Mybatis以及Maven进行集成,...

    简易指南:使用Spring Boot整合MyBatis轻松优雅

    **简易指南:使用Spring Boot整合MyBatis轻松优雅** 在现代Java开发中,Spring Boot以其简洁的配置和快速的应用启动而备受青睐。MyBatis作为轻量级的持久层框架,以其灵活的SQL映射机制深受开发者喜爱。将两者结合...

    利用spring boot+thymeleaf+mybatis搭建的简易母婴信息管理系统.zip

    在本项目中,我们利用Spring Boot、Thymeleaf和MyBatis这三大技术栈构建了一个简易的母婴信息管理系统。这个系统旨在通过自动化的方式管理母婴相关的数据,提高工作效率,为用户提供便捷的信息查询和管理服务。以下...

    mybatis+struts+spring搭建好的框架

    6. **MyBatis简易教程**:帮助开发者了解和学习MyBatis的基本用法和最佳实践。 这个框架组合的优势在于,Spring提供了一站式的解决方案,Struts简化了Web层的处理,而MyBatis则为数据库操作提供了简洁且强大的工具...

    SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统

    SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查功能设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息 ...

    用SpringBoot整合MyBatis实现登录注册功能

    这是SpringBoot整合MyBatis实现的简易登陆注册。这里所使用的开发环境是:IDEA、MySQL_8.0.17、Java8;其中用到了Druid数据库连接池。这个登录注册demo中,登录失败有两种情况:①账户不存在;②密码错误。注册失败...

    本科毕业设计+利用springboot+mybatis打造一个简易的客户管理系统,前后端分离

    本科毕业设计+利用springboot+mybatis打造一个简易的客户管理系统,前后端分离 开发环境 操作系统:Windows 10 IDE工具:IDEA JDK:JDK1.8 数据库:MySQL 5.7 构建工具:Maven 框架:Springboot+Mybatis 相关技术...

    Spring、SpringMVC、MyBatis整合 ---- ssm.rar

    自己写的简单的Spring、SpringMVC、MyBatis整合,里面的配置文件都全,方法的话,写了个保存账户信息和查询账户的方法,页面也有,不过比较简易,可能要改的地方,你的pom.xml里面的依赖坐标要改成你自己电脑上的。...

    SpringBoot简易Demo(整合mybatis)

    SpringBoot简易Demo(整合mybatis)是一个基于SpringBoot框架的示例项目,它演示了如何在SpringBoot应用中集成MyBatis,一个流行的持久层框架,以实现数据库操作。使用Maven作为构建工具,这个项目提供了简洁而有效...

    学生管理系统(SpringMVC+Spring+Mybatis)

    在整合SSM(SpringMVC+Spring+Mybatis)的过程中,通常会使用Spring的配置文件(如applicationContext.xml)来配置Spring和Mybatis的bean,包括数据源、事务管理器、SqlSessionFactory等。同时,还需要在SpringMVC的...

    springMVC+spring+Mybatis简易项目搭建

    4. **Mybatis-Spring**:将Mybatis与Spring整合,使得Mybatis的SqlSessionFactory和Mapper可以被Spring管理。 在搭建SSM项目时,我们通常会遵循以下步骤: 1. **环境准备**:安装JDK、Maven或Gradle、Tomcat服务器...

    SpringColud1简易分布式

    SpringColud1简易分布式 ● cloud-config-server:配置服务器-(通过git获取配置) ● cloud-eureka-server:eureka注册服务器 ● cloud-simple-service:一个使用mybatis的数据库应用,服务端 ● cloud-simple-...

    SpringBoot Mybatis 简易环境

    总之,Spring Boot Mybatis的简易环境是一个很好的起点,它可以帮助你快速地搭建一个可运行的Web应用,并在此基础上进行各种数据库操作的实践。随着你对这两个框架的理解加深,你可以逐步添加更多功能,如安全控制、...

    【Java框架-Mybatis】(03) - 文件

    【Java框架-Mybatis】(03) - Spring整合Mybatis操作Mysql,快速上手 - 简易版 在Java开发中,Mybatis是一个轻量级的持久层框架,它提供了灵活的SQL映射机制,使得Java对象与数据库表之间的映射变得简单。而Spring...

Global site tag (gtag.js) - Google Analytics