Mybatis:
前身是ibatis,但由于种种原因,去年五月时改名为Mybatis,绝大多数API与机制没有变化,只是少数配置文件变动了。但是官网上有一个自动转换的工具,可以方便的将Ibatis系统转换为Mybatis.
Spring:
采用3.x,这是因为Mybatis和Spring3.x有一个较好的结合体验,Maven库上有一个Mybatis-Spring结合包.
所需要采用的JAR包:(POM.xml)
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-web<artifactid>
<version>3.0.5.RELEASE<version>
</dependency>
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis</artifactid>
<version>3.0.4</version>
</dependency>
<dependency>
<groupid>mysql</groupid>
<artifactid>mysql-connector-java</artifactid>
<version>5.1.14</version>
</dependency>
这是整体需要采用的JAR包,当然如果要在WEB环境中跑的话,还需要一些其它的包,比如STRUTS,LOG4J,等等。当然这里只关注对于Mybatis和Spring的整合。抛砖引玉而已
Mybatis-config.xml:
(名字可以自定义,最终你会加在Spring配置文件中去加载,让Spring来进行管理)
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false" />
</settings>
<typeAliases>
<typeAlias alias="account" type="com.DreamForce.demo.model.Account" />
</typeAliases>
</configuration>
这里有两个配置,一个是LazyLoadingEnable,设为false,让Mybatis禁止Lazy加载
在TypeAliases,这是一个别名,之所以要别名,是为了在Mapper映射的时候方便使用,这里type对应的是domin中的Account,按照命名规范的话,我们就account作为别名。
AccountMapper.xml(这是Mybatis的核心,所有的SQL在这里配置)
<mapper namespace="com.DreamForce.Demo.persist.DAO.AccountMapper">
<select id="getAccountByUsername" parameterType="string" resultType="account">
SELECT * FROM ACCOUNT WHERE USERID = #{username}
</select>
</mapper>
namespace在这里只是一个虚目录,也就是说,你完全可以定一个不存在的目录,Namespace的存在就相当于public属性,将此Mapper暴露,方便让Service调用,也可以让其它API所用。但为了可维护性,这里将其与AccountMapper接口进行绑定,方便维护。
Select标签定义了一个"getAccountByUsername"的方法,parameterType代表的是传入的参数,这里是一个string类型的。
ResultType用的是account,这里是和之前别名的account一致,如果之前没有建立别名的话,这里不得不用上全路径:“com.DreamForce.demo.model.Account”,这样会相当的麻烦。
简单的示例:(建立一个Account类,然后通过AccountService来进行Account类的管理,也可以建立一个代理类AccountMapper)
Account.java:
public class Account implements Serializable
{
private static final long serialVersionUID = 8751282105532159742L;
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
AccountService.java:
@Service
public class AccountService{
@Autowired
private AccountMapper accountMapper;
public Account getAccount(String username) {
return accountMapper.getAccountByUsername(username);
}
通过@Service注解,可以让Spring进行依赖管理,让Spring知道这是一个Service Bean.
@Autowire注解,可以让自动Set accountMapper,这个也是通过Spring来进行依赖管理的,当然也还需要在Spring配置文件里面进行配置相关的信息,以让Spring可以知道哪些包需要进行注解扫描,以加入依赖管理
applicationContext.xml:
这里用此配置文件进行总体的维护,
DataSource:
<context:property-placeholder location="classpath:mysql.properties"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
配置DataSource,这里通过mysql.properties导入相当的值。
Transaction:
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
这里将dataSource加入Transaction,
在应用中,可以采用@transaction的方式自动开启事务和关闭事务:
如:
@Transactional
public void insert(Object o){......}
SessionFactory:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
配置sessionFactory,需要加入datasource,这里的datasource引用上面配置好的dataSource.同时将mybatis-config.xml加入管理。
需注意Classpath是从根目录导入,而这里的mybatis-config.xml按照JEE规范放在:src/main/Resource/mybatis-config.xml
SessionFactory不需要手动去创建,而在服务器启动时,自动启动,所有的Transaction及相关操作都是依赖于这个已启动的SessionFactory.
Scan:
Scan就是Spring的一种简便的依赖管理,这种之所以简便是你不需要为每一个Bean,Service,Mapper定义一个依赖管理,而只需要在需要加入依赖的类上加入@Service,@Controller等注解就可以加入依赖
当然最重要的是@AutoWired,当系统扫描到这个注解时,就会在系统中去找相关联的类或方法进行注入
<context:annotation-config/>
加入自动注解,让Spring 进行自动注入,具体参考Spring annotation
---annotation scan:
<context:component-scan base-package="com.DreamForce.Demo.persist.IbatisImpl,com.DreamForce.demo.integrate" />
上文定义了扫描的路径,这里定义了两个路径以供Spring进行扫描,当然还可以加上一些过滤条件让扫描更精确,效率更高
---mapper scan:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.DreamForce.Demo.persist.DAO" />
</bean>
这里定义了Mybatis 的Mapper文件路径,所有的Mapper文件在这里去寻找。
当然你也可以自己手动管理Mapper依赖关系:
可以在mybatis-config.xml中加入如下代码,手动进行Mapper依赖维护
<sqlMap resource="com/DreamForce/Demo/persist/DAO/AccountMapper.xml"/>
Web.xml:
1.加入Spring Listener
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.contextConfigLocation中加入Spring配置文件,让Spring Listner进行相关的配置管理
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
当有多个Spring配置文件时可以使用 classpath*:/spring-*.xml这种配置方式..让容器自动寻找Spring配置文件.
至此Spring-Mybatis基本配置完毕,其它相关信息可以参考其它配置
分享到:
相关推荐
SpringBoot+Mybatis+SpringSecurity+Bootstrap+Layui开发java web轻量级小巧视频网站系统 项目描述 PC端+手机端模式自适应 支持本地资源视频文件上传在线播放,同时支持在线资源链接上传(ed2k、迅雷、等资源)...
SpringMVC+Spring+MyBatisMaven多模块项目地址:SpringMVC:1...视图负责将结果显示到客户端Spring:1.Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器架构,IOC容器包含并管理应用对象的配置和生命周期,你
《Gradle+Kotlin结合Spring Boot+Mybatis+SQLite快速开发轻量级服务器应用》 标题想了很多,感觉很多的标题都合适,比如: 《Kotlin + Spring Boot会不会成为一种新的选择?》 《写给Android工程师的服务端开发架构》...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
基于springboot开发的轻量级单体架构购物商城网站,并分为用户、商户、后台三大模块。基于springboot开发的轻量级单体架构购物商城网站,并分为用户、商户、后台三大模块。 用户模块能够进行商品搜索浏览、在线下单...
Java轻量级CRM管理系统源码带本地搭建教程 开发语言 : JAVA 数据库 : MySQL 开发工具 : Eclipse 源码类型 : WebForm 运行环境:jdk8 + IntelliJ IDEA + maven + 宝塔面板 技术框架:SpringBoot + lombok + MyBatis...
Wetech-AdminWetech-Admin 是基于 Spring Boot 2.0 + Mybatis + Vue 的轻量级后台管理系统,适用于中小型项目的管理后台,支持按钮级别的权限控制,系统具有最基本的用户管理、角色管理、权限管理等通用性功能,企业...
基于springboot的轻量级销售团队管理系统源码.zip 完整代码,可运行。 轻量级销售团队管理系统》,这套系统是一套轻量级的CRM系统,基于SSM的SpringBoot架构。这套项目用到很多潮流技术,包括SpringBoot、lombok、...
很难构建合理的项目,我这里抽空弄了一个纯净版本的spring3 MVC,整合mybatis设计,数据库关联mysql,其中前端使用了ACE ADMIN前端框架,融入了各种标签设计,页码引入等,可以算的上是一个轻量级的项目基础模版,...
watchdog-framework基于SpringBoot + Shiro + Mybatis + Mybatis-Plus + HikariCP + Redis + Vue + iView等开发的轻量级管理系统快速开发脚手架,拥有角色,用户,资源管理,权限数据同步更新等功能,并随后项目会...
使用技术:spring+spring mvc+mybatis+layui+jquery http://localhost:8080/login 3个角色权限的帐号登录 user1员工 user2负责人 user3总经理 注意事项 登录账号请查看数据库的staff表,三个账号代表三个不同权限。
SpringMVC+Spring+Mybatis,相比 SSH(Struts2+Spring+Hibernate)来说较新,SpringMVC 可与 Spring 更好的整合,Mybatis 相比 Hibernate 使用更简单、轻便,大部分公司都在使用 SSM 这套框架,主要是轻量级、易使用...
这是一款使用Java面向对象思想来编写并生成Sql语句的工具,并在此基础上同时对Mybatis和Spring Jdbc实现了类似于JPA的轻量级插件支持。插件中内置大量常用Sql执行的方法,目的是为了提高开发效率,减少大量的Sql语句...
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器架构,IOC容器包含并管理应用对象的配置和生命周期,你可以配置你的每个bean如何被创建,也可以配置每个bean是只有一个实例,还是每次需要时都生成一个...
Spring SpringMvc Mybatis 非maven版本 【数据库】 mysql5.7 【容器】 tomcat 7.0 + 【jdk版本】 jdk1.6 + 【概述】 1、导入项目,配置编译环境 2、导入数据库,数据文件在sql目录下。 【亮点】 1、轻量级,dao...
spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器。 其核心是IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC...
AdminLTE-admin轻量级权限管理框架项目说明AdminLTE-admin以SpringMVC + Shiro + Mybatis为核心开发的精简后台基础系统。包含用户管理,角色管理,部门管理,权限管理,菜单管理,日志管理等常用业务模块。使用...
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的...
项目说明 adminlte-boot基于Springboot、Shiro、Mybatis plus、shiro-redis开发的精简...AdminLTE、Springboot、Shiro、Mybatis、mybatis-plus、shiro-redis、Ehcache、redis、Mysql、Maven 快速开始 根据applicatio
GrabOrders简介一个基于Spring+SpringMVC+Mybatis+Redis做二级缓存+Maven管理的抢单系统目标优化高并发场景使用技术后端...核心框架spring、springmvc、mybatis连接池Alibaba Druid缓存框架Redis权限框架JWT图片...