spring整合mybatis(入门级简单教程2)

1、这几天在网上查找spring和mybatis的整合的博客以及相关的资料,弄来弄去,程序还是跑不起来。今天早上突然意识到,什么事都是从零开始的,所以,我就改变了我的整合思路:首先,先在spring上整合数据源(请参考本人的上一篇博客),其次,整合sqlSessionFactoryBean。具体请看下面:

2、前期准备:(1)、对mybatis有一定的了解,能够使用其基本功能。(2)、理解spring的相关原理和概念

3、总体的包和类等等
 

所以,在我们开始之前,请自己下载好相关的jar包,包括
(spring:)
http://repo.spring.io
(mybatis:)
https://github.com/mybatis/mybatis-3/releases
(mybatis-spring:)
https://github.com/mybatis/spring/releases

百度云下载链接
4、配置applicationContext.xml文件:(配置文件里面的前16行是我随便在网上找的,宜多不宜少)

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">


destroy-method="close">




















 










5、models,包括user和manager


public class User {

private int id;
private String name;
private String password;

public User(){

}

public int getId() {
return id;
}
public void setId(int 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;
}


}



package com.models;

public class Manager {

private int id;
private String name;
private String password;


public Manager(){

}
public int getId() {
return id;
}
public void setId(int 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;
}
}

6、mybatis的mapper接口:(没有,也不用实现类)
package com.dao;

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

import com.models.User;

public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
public User getUser(@Param("id") String userId);
}

import org.apache.ibatis.annotations.Select;

import com.models.Manager;
public interface ManagerMapper {
@Select("SELECT * FROM manager WHERE id = #{id}")
public Manager getManager(String managerID);
}

7、写到这里,我们的工作已经基本上完成了大部分,让我们写一个main函数测试一下:
package com.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.dao.UserMapper;
import com.models.Manager;
import com.models.User;
import com.service.TestService;

public class SpringTest {
public static void main(String[] args) {
ApplicationContext aa = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
//在我数据库中的userId有1这一条
User user = (User)aa.getBean(UserMapper.class).getUser("1");
System.out.println(user.getId());
System.out.println(user.getName());
System.out.println(user.getPassword());
}
}

8、接下来,我们写事物的业务接口和实现此接口的业务类:
先看业务接口:

package com.service;

import com.models.Manager;
import com.models.User;

public interface TestService {

public User doSomeBusinessStuff(String userID);

public Manager getManagerBusiness(String managerID);
}

再看看实现类:(注意,下面的两个setter方法不能省略,可以省略getter方法)

package com.impl;

import com.dao.ManagerMapper;
import com.dao.UserMapper;
import com.models.Manager;
import com.models.User;
import com.service.TestService;

public class TestServiceImpl implements TestService{

private UserMapper userMapper;
private ManagerMapper managerMapper;

public void setUserMapper(UserMapper userMapper){
this.userMapper = userMapper;
}


public void setManagerMapper(ManagerMapper managerMapper) {
this.managerMapper = managerMapper;
}

@Override
public User doSomeBusinessStuff(String userID) {
return this.userMapper.getUser(userID);
}

@Override
public Manager getManagerBusiness(String managerID) {
return this.managerMapper.getManager(managerID);
}
}

9、因为之前我们已经在applicationContext.xml文件中配置了上面这个业务实现类的bean,所以,我们的工作已经完成,let我们test一下:

package com.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.dao.UserMapper;
import com.models.Manager;
import com.models.User;
import com.service.TestService;

public class SpringTest {
public static void main(String[] args) {
ApplicationContext aa = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
/*User user = (User)aa.getBean(UserMapper.class).getUser("1");
System.out.println(user.getId());
System.out.println(user.getName());
System.out.println(user.getPassword());*/
 

TestService service = aa.getBean(TestService.class);


//调用业务实现类的第一个方法

 User user = service.doSomeBusinessStuff("1");
System.out.println(user.getId());
System.out.println(user.getName());
System.out.println(user.getPassword());

 

//调用业务实现类的第二个方法

Manager manager = service.getManagerBusiness("1");
System.out.println("manager info = "+manager.getId()+"; "+manager.getName()+"; "+manager.getPassword());
}
}

10、跑起来了吗?come on!!!!!

参考文献:http://mybatis.github.io/spring/


##############################################################################

11、前面我们使用annotation配置mybatis的,但是在实际的项目开发中使用xml文件配置的方式比较多。
所以,下面我们在前面的基础之上使用xml文件配置:


(1)、新增加两个文件,也就是mybatis的xml配置文件,是在config.mappers包下面的:



"http://mybatis.org/dtd/mybatis-3-mapper.dtd">






"http://mybatis.org/dtd/mybatis-3-mapper.dtd">




 (3)、修改spring的配置文件applicationContext.xml(只需增加下划线的配置文字即可,也别忘了删掉annotation的配置)

你可能感兴趣的:(spring+mybatis)