zoukankan      html  css  js  c++  java
  • Spring : 征服数据库 (两)

    本节介绍Spring和ORM集成框架。尽管Hibernate在开源ORM 社区很受欢迎。但是,本文将MyBatis案例解说。也MyBatis和Hibernate好坏是没有意义的,主要看实际需求,有兴趣的可以百度、歌查看。


    首先配置环境。你得有mybatis和mybatis-spring在Springproject的build path里,假设你使用的是Maven,仅仅需加入以下的依赖:(都是眼下最新版本号)

    		<dependency>
    			<groupId>org.mybatis</groupId>
    			<artifactId>mybatis</artifactId>
    			<version>3.2.7</version>
    		</dependency>
    		<dependency>
    			<groupId>org.mybatis</groupId>
    			<artifactId>mybatis-spring</artifactId>
    			<version>1.2.2</version>
    		</dependency>

    这里主要介绍的是Mybatis和Spring的整合,不会着重解说Mybatis的详细使用方法。

    我们知道。MyBatis应用的核心是SqlSessionFactory,在Spring里也须要定义这样一个bean,

     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
      </bean>

    使用的是SqlSessionFactoryBean创建SqlSessionFactory。并须要注入数据源dataSource,这里的数据源就是Spring里面定义的随意数据源,为了演示方便,使用的是上一篇文章介绍的H2内嵌数据源,

    <jdbc:embedded-database id="dataSource" type="H2">
    		<jdbc:script location="classpath:schema.sql" />
    		<jdbc:script location="classpath:data.sql" />
    	</jdbc:embedded-database>
    

    在MyBatis里面,为实现SQL的映射。使用的是XML配置文件或mapper接口。上一篇我们的SQL的模式例如以下:

    create table spitter (
      id identity,
      username varchar(25) not null,
      password varchar(25) not null,
      fullname varchar(100) not null,
      email varchar(50) not null,
      update_by_email boolean not null
    );
    

    新建一个接口,

    package org.chen.mybatis.mapper;
    
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    import org.chen.domain.Spitter;
    public interface SpitterMapper {
    
    	@Select("SELECT * from spitter where email = #{email}")
    	Spitter getSpitter(@Param("email") String email);
    }
    

    实际上命名并无要求。但约定是domain+Mapper。在一个方法上面加入注解,这里是 @Select。内容是一个SQL语句, #{email}是參数,用于PrepraredStatement使用。

    然后使用MapperFactoryBean将该接口注冊到Spring,

      <bean id="spitterMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
          <property name="mapperInterface" value="org.chen.mybatis.mapper.SpitterMapper" />
          <property name="sqlSessionFactory" ref="sqlSessionFactory" />
      </bean>

    如今使用上面这个bean就能够完毕关系对象映射了,我们一般把spitterMapper注入到service里面。

    如,

    public class TestService {
    
    	private SpitterMapper spitterMapper;
    
    	public void setSpitterMapper(SpitterMapper spitterMapper) {
    		this.spitterMapper = spitterMapper;
    	}
    
    
    	public void getSpitterByEmail(String email){
    		
    		Spitter spitter = spitterMapper.getSpitter(email);
    		
    		System.out.println("spitter is " + spitter.getFullName());
    	}
    }

    至此,基本操作根据可以完毕。


    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    WinForm获取窗体关闭原因和是否取消关闭值
    DIV CSS 居中代码(以及靠右)
    C#获取本机所有IP地址(包括局域网和本机外网IP)
    C# WinForm关闭窗体确认
    .NET WinForm全屏和退出以及蓝屏黑屏等
    HTML5标签
    C# 文件、文件夹操作语句(删除,创建,移动,检查是否存在)
    jquery聚焦文本框
    JS当前页面登录注册框,固定DIV,底层阴影
    Visual Studio 怎样添加引用
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4711124.html
Copyright © 2011-2022 走看看