spring集成mybatis(一)

    在spring中集成mybatis的有多種,能夠徹底xml配置,也能夠徹底走註解。這裏記錄一個自認爲比較簡單的配置方法。java

項目目錄:mysql

一、引用jar包的maven配置。web

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    		<dependency>
	    	<groupId>mysql</groupId>
	    	<artifactId>mysql-connector-java</artifactId>
	    	<version>5.1.10</version>
		</dependency>
	     	<dependency>
    		<groupId>com.alibaba</groupId>
    		<artifactId>druid</artifactId>
    		<version>1.1.6</version>
	 	</dependency>	
		<dependency>
    		<groupId>org.mybatis</groupId>
    		<artifactId>mybatis-spring</artifactId>
    		<version>1.3.1</version>
		</dependency>
    <dependency>
    		<groupId>org.mybatis</groupId>
    		<artifactId>mybatis</artifactId>
    		<version>3.4.4</version>
		</dependency>
     <!--反射生成實體類-->  
    <dependency>  
        <groupId>org.mybatis.generator</groupId>  
        <artifactId>mybatis-generator-core</artifactId>  
        <version>1.3.5</version>
    </dependency>

二、配置spring應用上下文。spring

在命名空間添加配置:sql

xmlns:mybatis="http://mybatis.org/schema/mybatis-spring

在xsi:schemaLocation 增長配置:數據庫

http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd

配置如圖:apache

二、配置掃描mybatis的映射mapper接口所在的包和sqlSessionFactory。json

<!-- 定義mybaits -->
        <!-- mybatis:scan 會自動掃描 com.altnum.mybatis.mapper包中全部接口看成mapper配置,以後自動引入mapper類-->
        <mybatis:scan base-package="com.altnum.mybatis.mapper"/>
        <!-- 配置sqlSessionFactory  org.mybatis.spring.SqlSessionFactoryBean是用於整合spring的bean-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" 
        	p:dataSource-ref="dataSource"/>

dataSource 這裏用的是數據庫鏈接池。這裏不給出配置了。bash

三、com.altnum.mybatis.domain.TestUser. 數據庫表映射bean.mybatis

package com.altnum.mybatis.domain;

import java.io.Serializable;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

public class TestUser implements Serializable
{
	private Integer id; //id
	private String name; //姓名
	private String password; //密碼
	private String sex; //性別
	
	public Integer getId()
	{
		return id;
	}
	public void setId(Integer id)
	{
		this.id = id;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getPassword()
	{
		return password;
	}
	public void setPassword(String password)
	{
		this.password = password;
	}
	public String getSex()
	{
		return sex;
	}
	public void setSex(String sex)
	{
		this.sex = sex;
	}
	
	public String toString() {
		return ToStringBuilder.reflectionToString(this,ToStringStyle.DEFAULT_STYLE);
	}
}

四、mybatis註解映射接口。

mybatis:scan 會自動掃描 com.altnum.mybatis.mapper包中全部接口看成mapper配置,以後自動引入mapper類。

package com.altnum.mybatis.mapper;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.altnum.mybatis.domain.TestUser;

public interface TestMapper
{
	@Select("select user_id id,user_name name,user_password password,user_sex sex from thnb_user "
			+ "where user_id = #{id}")
	TestUser findUserWithId(@Param("id") int id);
}

五、測試調用。

在控制層直接注入引用mapper映射接口。

package com.altnum.controller;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.altnum.common.GetUTCTimeUtil;
import com.altnum.mybatis.domain.TestUser;
import com.altnum.server.TestServer;

@Controller
@RequestMapping(value = "/test")
public class TestController
{
	@Resource TestServer testServerImpl;
	//自動注入userMapper
	@Autowired
	private com.altnum.mybatis.mapper.TestMapper TestMapper; 
	
	private static final Logger logger = LogManager.getLogger(TestController.class);
	
	@RequestMapping(value = "test",method=RequestMethod.POST)
	@ResponseBody
	public Object test(HttpServletRequest request, HttpServletResponse response,
			@RequestBody(required = false) String json)
	{
		logger.info("test:" + json);
		TestUser tu = TestMapper.findUserWithId(1);
		logger.info("testMyabtis:" + tu.toString());
		return tu.toString();
	}
}
相關文章
相關標籤/搜索