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());
    	}
    }

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


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

  • 相关阅读:
    .NetCore使用protobuf 生成C#代码(Grpc)
    备忘:.net WebServices 禁用浏览器访问与禁用wsdl生成
    Java web中的web-xml中标签定义之jsp-config
    转:centos7.2安装jdk1.6和/etc/profile不生效问题
    转:Linux中tomcat服务成功发布但局域网浏览器无法访问
    windows10(本机)与VirtualBox中CentOS7(虚拟机)互相访问总结
    获取JPEGImageEncoder和JPEGCode这两个类
    WebService发布与调用问题:expected: {http://schemas.xmlsoap.org/soap/envelope/}Envelope but found: {http://schemas.xmlsoap.org/wsdl/}definitions
    转:问题解决:The project cannot be built until build path errors are resolved
    利用Metaweblog技术的API接口同步到多个博客网站(详细)
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4711124.html
Copyright © 2011-2022 走看看