`
xueyue521-qq
  • 浏览: 21666 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MyBatis+Spring轻量级整合(Maven)

阅读更多
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基本配置完毕,其它相关信息可以参考其它配置
分享到:
评论

相关推荐

    struts2+spring+mybatis+easyui的实现

    **MyBatis** 是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了更灵活的SQL操作方式。MyBatis通过XML或注解配置SQL映射文件,将接口方法与SQL语句关联起来。在业务层,我们可以定义Mapper接口,然后在...

    MyBatis+Spring轻量级整合

    ### MyBatis与Spring的轻量级整合 #### 一、引言 随着企业级应用对数据处理的需求日益增加,如何高效地管理数据库操作成为了一个关键问题。在Java开发领域,MyBatis作为一款优秀的持久层框架,因其简单易用的特点...

    springmvc + spring + mybatis + maven整合配置文件

    Spring MVC是Spring框架的一部分,它是一个轻量级的MVC框架,用于处理HTTP请求和响应。它提供了一种模型-视图-控制器的设计模式,使得开发者可以将业务逻辑、数据和用户界面分离。Spring MVC的核心组件包括...

    maven+spring MVC+Mybatis+jetty+mysql

    与传统的Tomcat相比,Jetty 更轻量级,启动更快,适合快速部署和嵌入式应用。在本项目中,Jetty 作为应用服务器,承载Spring MVC 应用,接收和响应HTTP请求。 5. MySQL: MySQL 是一个流行的开源关系型数据库管理...

    基于注解的Spring+Struts2+Mybatis+Maven项目

    Mybatis是一个轻量级的持久层框架,它将SQL与Java代码分离,提供动态SQL和映射功能。在基于注解的版本中,`@Select`、`@Insert`、`@Update`和`@Delete`注解用于标记SQL查询。同时,`@Mapper`接口定义了数据库操作,...

    SpringMVC+Spring+mybatis+maven整合视频教程源码+视频地址.rar

    Mybatis是一个轻量级的持久层框架,它简化了SQL操作,通过XML或注解配置,将SQL与Java代码分离,使得数据库操作更加直观。在Spring和SpringMVC的环境中,Mybatis可以与Spring的DataSource集成,实现数据库连接的管理...

    SpringBoot+Mybatis+SpringSecurity+Bootstrap+Layui开发的java web轻量级小巧视频网站系统

    SpringBoot+Mybatis+SpringSecurity+Bootstrap+Layui开发java web轻量级小巧视频网站系统 项目描述 PC端+手机端模式自适应 支持本地资源视频文件上传在线播放,同时支持在线资源链接上传(ed2k、迅雷、等资源)...

    springmvc+spring+mybatis+maven示例

    MyBatis是一个轻量级的持久层框架,它允许开发者编写SQL语句,直接操作数据库,而不是通过ORM(对象关系映射)工具。MyBatis通过XML或注解配置SQL映射文件,将Java方法与SQL语句关联起来,提供灵活的数据访问控制。...

    Java Spring SpringMVC+MyBatis+Maven+easyUI整合代码

    在"Java Spring SpringMVC+MyBatis+Maven+easyUI整合代码"项目中,开发者可能需要做以下工作: 1. 配置SpringMVC和MyBatis的集成,定义数据源、事务管理器以及Mapper接口。 2. 创建SSM(Spring-SpringMVC-MyBatis)...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    **Mybatis**:Mybatis是一个轻量级的持久层框架,它解决了Java开发中的数据库操作问题。Mybatis通过XML或注解配置以及映射语句,将SQL与Java代码紧密结合起来,提供了灵活的数据库操作。它允许开发者直接编写原生的...

    springmvc+spring+mybatis+Maven+mysql环境搭建源码

    MyBatis是一个轻量级的持久层框架,它简化了SQL与Java的交互。MyBatis通过XML或注解方式定义SQL语句,将SQL与Java代码分离,提供了更灵活的数据库操作。在SSM项目中,MyBatis与Spring集成,通过Spring管理...

    spring+springMVC+Mybatis+MYSQL+Redis+Maven项目整合源码

    Mybatis是一个轻量级的持久层框架,它简化了数据库操作,允许开发者直接编写SQL语句,避免了ORM(Object-Relational Mapping)的复杂性。在本项目中,Mybatis作为数据访问层,与MySQL数据库进行交互,执行增删改查等...

    spring+springMVC+myBatis+maven项目整合

    MyBatis则是一个轻量级的持久层框架,它允许开发者用SQL语句直接操作数据库,同时通过XML或注解的方式将SQL与Java代码绑定,实现了数据访问的便捷性。 【压缩包子文件的文件名称列表】揭示了项目的一些基本结构: ...

    Springmvc+Spring+Mybatis+Maven简单的增删改查

    它是一个基于模型-视图-控制器(MVC)架构模式的轻量级Web框架。在Spring MVC中,Controller组件接收HTTP请求,处理业务逻辑,然后将结果转发给View组件进行渲染。开发者可以通过注解(如@Controller和@...

    SSM框架(IDEA+Spring+SpringMVC+Maven+Mybatis+MySQL).zip

    3. Mybatis:Mybatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在XML配置文件或Java类中,实现了SQL与Java代码的紧密集成。Mybatis通过动态SQL支持,可以方便地进行复杂的数据库操作,同时避免了传统的...

    SpringMvc+Spring+Mybatis+Maven整合示例源码

    Mybatis是一个轻量级的持久层框架,它将SQL语句与Java代码解耦,使得数据库操作更易于维护和调试。在SSM项目中,Mybatis与Spring集成,通过SqlSessionFactory和SqlSession对象管理数据库连接,Mapper接口和XML配置...

    SpringMvc+Spring+MyBatis+Maven项目

    1. **Spring框架**:Spring是Java领域中最流行的轻量级框架之一,它提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)等核心功能。在本项目中,Spring负责管理应用的...

    springmvc+spring3+mybatis+maven整合源码

    MyBatis是一个轻量级的持久层框架,它将SQL语句与Java代码解耦,通过XML或注解的方式配置映射,使得数据访问更加灵活和高效。MyBatis允许开发者直接编写SQL,避免了ORM(对象关系映射)带来的性能损失,同时保持了...

    struts2_mybatis_spring_框架实例整合_数据库 文档

    MyBatis则是一个轻量级的持久层框架,它允许开发者直接编写SQL语句,提供了灵活的数据映射功能。MyBatis的核心是SqlSession,通过它可以执行SQL操作,获取结果集,并将其映射为Java对象。在与Spring整合时,MyBatis...

    mybatis + spring + springmvc + maven + json + quartz整合jar包

    5. **JSON**:JavaScript Object Notation,是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web应用中,JSON常用于服务器向客户端传递数据,如API接口的数据交互。 6. **Quartz**:...

Global site tag (gtag.js) - Google Analytics