spring-mybatis集成的xml配置详解,

    jar包引入

   在web-inf下的lib中,要放入spring必备的五个核心jar包,分别是:

beans,core,context,expresstion.context-support,  依赖jar包logging,日志jar包log4j,..aop切面jar包,mybatis,spring-mybatis,,,connection,jdbc,tx

1.首先,配置数据源文件db.properties..在文件中写入要链接的数据库各项参数,比如链接mysql

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/mybatis
db.username=root
db.password=ou134568

2.创建spring.xml文件,引入beans,context,tx的命名空间

  xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
">

2.加载外部资源,即db.properties

     3.定义一个数据源,其中${name} 中的值是从外部资源获取的...name必须和资源文件的属性名称相同...且不要使用username属性名称,以免和计算机管理员名称混淆







4.配置一个sqlsessionfactorybean,

注入configLocation对象,值为mybatis.xml文件路径..

注入mapperLocations,值为mappers的资源路径

注入dataSource,值为数据源的id或别名

注入transactionFactory,这是一个事务管理对象.如果没有注入则需要手动提交事务








4.生成dao-mapper

注入basePackage,值为dao的包路径,会把包路径下所有的接口扫描为bean

注入sqlSessionFactoryBeanName  值为上面已经配置的sqlsessionFactoryBean






5.扫描所有的service实现类,把包路径下所有的类注册

6.还可以配置一个事务管理,方便通过注解控制事务提交

  

7.通过注解来控制事务提交

数据库执行dao层只需要提供接口即可,无需实现类...实现类通过sqlsessionfactorybean来获取代理实现类.

业务逻辑层service在实现类中,设置一个私有的dao对象,通过注解来自动注入dao的代理实现类

@Autowired

private UserDAO userDao;


service实现类中查询的实例

@Override
public UserEntity queryUser(String userId) throws Exception {

UserEntity user=userDao.select("userId", userId);

return user;
}

 测试类

package test;


import java.util.ArrayList;
import java.util.List;


import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


import dao.UserDAO;
import entity.UserEntity;
import service.UserService;
import service.impl.UserServiceImpl;
import utils.SqlSessionUtil;


public class UserServiceTest {
private UserService us;
private static ApplicationContext ac;
@BeforeClass 
public static void init(){
ac = new ClassPathXmlApplicationContext("classpath:/spring.xml");

}

@Before
public void before(){
us = ac.getBean(UserService.class);
}
@Test
public void test()throws Exception {
List list= new ArrayList();
list = us.queryUsers();
System.out.println(list.get(0));

}


}

你可能感兴趣的:(java基础)