上篇博文我们介绍了mybatis的基本概念与原理,这篇博文我们通过Spring与Mybatis集成,开发一个简单用户增删改查的Web项目。
基本准备工作
1、安装JDK1.6以上版本,安装与配置
2、下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis/
3、下载mybatis-spring-1.2.1版:https://repo1.maven.org/maven2/org/mybatis/mybatis-spring/
4、Spring-4.0.0的版本
5、tomacat6.x以上版本即可
当然,这些jar还不够,还需要MySQL数据库与驱动,log4j的jar等等。下面我们开始今天的旅行:
第一步:创建数据库表
在Navicat下执行如下sql命令创建数据库mybatis和表t_user
CREATE DATABASE IF NOT EXISTS mybatis;
USE mybatis;
create table t_user ( user_id int(11) NOT NULL AUTO_INCREMENT, user_name varchar(20) not null, user_age varchar(20) not null, PRIMARY KEY (user_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
我们先看一下项目的完整目录,再继续下面的内容
第二步:添加jar包
对于下面代码的内容,我们就不再一一贴出来,只是把最重要的内容贴出来,大家可以下载源码。
第三步:创建model
创建一个model包并在其下创建一个User.java文件。
package com.tgb.model; /** * 用户 * @author liang * */ public class User { private int id; private String age; private String userName; public User(){ super(); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public User(int id, String age, String userName) { super(); this.id = id; this.age = age; this.userName = userName; } }
第四步:创建DAO接口
创建一个包mapper,并在其下创建一个UserMapper.java文件作为DAO接口。
package com.tgb.mapper; import java.util.List; import com.tgb.model.User; public interface UserMapper { void save(User user); boolean update(User user); boolean delete(int id); User findById(int id); List<User> findAll(); }
第五步:实现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"> <!-- namespace:必须与对应的接口全类名一致 id:必须与对应接口的某个对应的方法名一致 --> <mapper namespace="com.tgb.mapper.UserMapper"> <insert id="save" parameterType="User"> insert into t_user(user_name,user_age) values(#{userName},#{age}) </insert> <update id="update" parameterType="User"> update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id} </update> <delete id="delete" parameterType="int"> delete from t_user where user_id=#{id} </delete> <!-- mybsits_config中配置的alias类别名,也可直接配置resultType为类路劲 --> <select id="findById" parameterType="int" resultType="User"> select user_id id,user_name userName,user_age age from t_user where user_id=#{id} </select> <select id="findAll" resultType="User"> select user_id id,user_name userName,user_age age from t_user </select> </mapper>
这里对这个xml文件作几点说明:
1、namespace必须与对应的接口全类名一致。
2、id必须与对应接口的某个对应的方法名一致即必须要和UserMapper.java接口中的方法同名。
第六步:Mybatis和Spring的整合
对于Mybatis和Spring的整合是这篇博文的重点,需要配置的内容在下面有详细的解释。
<?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: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-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!-- 1. 数据源 : DriverManagerDataSource --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> <!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:config/mybatis-config.xml" /> </bean> <!-- 3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory basePackage:指定sql映射文件/接口所在的包(自动扫描) --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.tgb.mapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> <!-- 4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 5. 使用声明式事务 transaction-manager:引用上面定义的事务管理器 --> <tx:annotation-driven transaction-manager="txManager" /> </beans>
第七步:mybatis的配置文件
<?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> <typeAlias alias="User" type="com.tgb.model.User" /> </typeAliases> <!-- 实体接口映射资源 --> <!-- 说明:如果xxMapper.xml配置文件放在和xxMapper.java统一目录下,mappers也可以省略,因为org.mybatis.spring.mapper.MapperFactoryBean默认会去查找与xxMapper.java相同目录和名称的xxMapper.xml --> <mappers> <mapper resource="com/tgb/mapper/userMapper.xml" /> </mappers> </configuration>
总结
Mybatis和Spring的集成相对而言还是很简单的,祝你成功。
源码下载:SpringMVC+Spring4+Mybatis3
下篇博文我们将Hibernate和Mybatis进行一下详细的对比。
相关推荐
本项目采用Java语言开发,整合了Mybatis、Spring和SpringMVC三大框架,构建了一套高效的SSM整合开发框架。该框架包含118个文件,其中涉及Java类30个,第三方jar包20个,Java源文件18个,配置XML文件14个,属性配置...
需下载mysql图形化管理工具(例如Navicat),新建数据库library,右键数据库-->运行项目中的adopt.sql脚本 用IDE打开项目(建议使用idea),打开src/main/resources/application.yml,将数据库的username
该平台使用Java语言开发后台业务逻辑,运用了SpringMVC+Spring+MyBatis框架进行搭建,数据库服务器采用MySQL5.6对数据进行持久化。其主要功能有:兼职招聘、论坛交流、在线聊天、个人中心、信箱留言、登录注册等功能...
MyBatis框架,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生...
MyBatis框架,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生...
基于SSM(Spring+SpringMVC+MyBatis)和Vue.js的在线医疗信息管理系统是一个集成了多种技术的医疗信息化系统,旨在帮助医疗机构实现在线医疗服务和管理。该系统主要由以下模块组成: 用户管理模块:包括用户的注册、...
这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...
这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...
内容概要:该留学生交流互动论坛网站系统基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js开发,旨在提供一个在线的留学生交流互动平台,主要...后端使用Spring+SpringMVC+MyBatis框架实现业务逻辑处理和数据持久化。
内容概要:该大学生企业推荐系统基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js开发,旨在帮助大学生快速找到符合自己专业背景和兴趣爱好的...后端使用Spring+SpringMVC+MyBatis框架实现业务逻辑处理和数据持久化。
内容概要:该旅游资源网站系统基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js开发,旨在提供一个方便快捷的旅游资源查询、预订和分享平台。...后端使用Spring+SpringMVC+MyBatis框架实现业务逻辑处理和数据持久化。
内容概要:该企业公寓后勤管理系统基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js开发,旨在提供一个方便快捷的公寓后勤服务管理平台。...后端使用Spring+SpringMVC+MyBatis框架实现业务逻辑处理和数据持久化。
基于SSM(Spring+SpringMVC+MyBatis)和Vue.js的医院门诊互联电子病历管理信息系统是一个集成了多种技术的医疗信息化系统,旨在提高医院门诊的管理效率和服务质量。 该系统主要由以下模块组成: 用户管理模块:包括...
内容概要:该教学视频点播系统基于SSM(Spring+SpringMVC+...后端使用Spring+SpringMVC+MyBatis框架实现业务逻辑处理和数据持久化。同时,该系统还应用了安全管理和权限控制等技术手段,确保数据的安全性和机密性。
内容概要:该房屋租赁系统求租合同模块基于SSM(Spring+...后端使用Spring+SpringMVC+MyBatis框架实现业务逻辑处理和数据持久化。同时,该系统还应用了安全管理和权限控制等技术手段,确保数据的安全性和机密性。
核心技术包括Spring框架实现依赖注入和控制反转,SpringMVC框架实现WEB层的请求转发和响应处理,MyBatis框架实现持久层的数据操作。另外,项目还使用了Bootstrap框架实现页面的响应式设计,使得系统界面美观且易于...
这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...
"weixin050高校体育场管理系统+ssm(源码+部署说明+演示视频+源码介绍+lw).rar" 这个资源包是一个针对高校体育场地管理的软件系统,它使用了SSM框架(Spring + SpringMVC + MyBatis)进行开发。以下是对该系统的...