spring集成Mybatis框架,junit测试

1、Spring的xml文件配置如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xmlns:aop="http://www.springframework.org/schema/aop"
 5     xmlns:tx="http://www.springframework.org/schema/tx"
 6     xmlns:context="http://www.springframework.org/schema/context"
 7     xsi:schemaLocation="
 8     http://www.springframework.org/schema/beans
 9     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
10     http://www.springframework.org/schema/tx
11     http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
12     http://www.springframework.org/schema/context
13     http://www.springframework.org/schema/context/spring-context.xsd
14     http://www.springframework.org/schema/aop
15     http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
16     ">
17
18     <!--1、 读取propertiser配置文件 -->
19     <context:property-placeholder location="classpath:jdbc.properties"/>
20     <!--2、 JNDI获取数据源(使用dbcp连接池) -->
21      <!-- 当srping容器停止销毁的时候要触发close关闭连接池 ,单例模式-->
22     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
23            destroy-method="close" scope="singleton">
24         <property name="driverClassName" value="${driver}"/>
25         <property name="url" value="${url}"/>
26         <property name="username" value="${jdbc.username}"/>
27         <property name="password" value="${password}"/>
28
29     </bean>
30
31     <!-- 事物管理  采用srping-jdbc的事物管理-->
32     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
33         <property name="dataSource" ref="dataSource"/>
34     </bean>
35
36     <!-- 配置mybatis 的sqlsessionFactory -->
37     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
38         <property name="dataSource"  ref="dataSource"/>
39         <property name="configLocation" value="classpath:mybatis-config.xml"/><!-- 引入mybits的配置文件 -->
40         <property name="mapperLocations" value="classpath:com/bdqn/dao/*.xml"/><!-- 引入xml的mapper文件 -->
41     </bean>
42
43     <!-- 配置mybatis的 sqlsessionTemplate -->
44     <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
45         <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/><!-- 使用构造注入sqlSessionFactory,获得SqlSessionTemplate -->
46     </bean>
47
48     <!-- 把SqlSessionTemplate注入到测试类,测试类就可以使用SqlSessionTemplate了 -->
49     <bean id="employeeTest" class="com.bdqn.test.EmployeeTest">
50         <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/>
51
52     </bean>
53     </beans>

2、Mybatis的xml配置文件如下:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <typeAliases>
 7         <package name="com.bdqn.po"/><!-- 整个po包里面的类都设自己类名为别名 -->
 8     </typeAliases>
 9
10 </configuration>

3、由于mybatis的sql语句是写在xml文件里面的,本次采用的是数据源连接池。所以在spring的xml文件中先引入测试类:

<bean id="employeeTest" class="com.bdqn.test.EmployeeTest">

用juit测试sql时,再把spring的xml文件一次性load到上下文:ApplicationContext中,

再通过ApplicationContext.getBean("employeeTest") 拿到测试类,就可以在整个spring容器依赖关系中操作了。拿到测试类,调用sqlsession模板:

sqlSessionTemplate  ,运用模板的各种增删查改方法,代码如下:
 1 package com.bdqn.test;
 2
 3
 4 import java.util.List;
 5
 6 import org.apache.log4j.Logger;
 7 import org.junit.Test;
 8 import org.mybatis.spring.SqlSessionTemplate;
 9 import org.springframework.context.ApplicationContext;
10 import org.springframework.context.support.ClassPathXmlApplicationContext;
11
12 import com.bdqn.po.Employee;
13
14 public class EmployeeTest {
15     private Logger logger = Logger.getLogger(EmployeeTest.class);
16
17     private SqlSessionTemplate sqlSessionTemplate;
18     protected ApplicationContext aplcation = null; //注意引包
19     private EmployeeTest test;
20
21
22     @Test
23     public void getEmployeeList() {
24         aplcation =    new ClassPathXmlApplicationContext("applicationContext-spring.xml");//初始化上下文;
25         test = (EmployeeTest) aplcation.getBean("employeeTest");
26
27         List<Employee> list = test.getSqlSessionTemplate().selectList("com.bdqn.dao.EmployeeMapper.getEmployeeList");
28         logger.debug("Employee-----"+list.size());
29
30
31     }
32
33
34     public SqlSessionTemplate getSqlSessionTemplate() {
35         return sqlSessionTemplate;
36     }
37     public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
38         this.sqlSessionTemplate = sqlSessionTemplate;
39     }
40
41
42
43 }

备注:

运行时报了个数据库连接错误:

Access denied for user ‘Administrator‘@‘localhost‘ (using password: YES)

找了很久都找不到原因,用户名,密码,驱动等绝对是没有错的,后来在xml文件中直接写入值就没有问题,就知道问题出在这个properties文件了,一个一个改了测试,发现是这个:username=root上,只要改一下这个username就好了,百度查了说是可能在引入时跟别的username重名了。---浪费了一晚上的时间!!!谨记!!!

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/testdb
username=root
password=123456

时间: 2024-08-16 01:36:40

spring集成Mybatis框架,junit测试的相关文章

Spring集成MyBatis框架

Java在写数据库查询时,我接触过四种方式: 1.纯Java代码,引用对应的数据库驱动包,自己写连接与释放逻辑(可以用连接池) 这种模式实际上性能是非常不错的,但是使用起来并不是非常方便:一是要手工为Connection做获取与释放,大量的冗余代码也容易出错:另一个是,复杂的SQL用字符串写起来简直不可维护(换行.可视长度.参数都是问题). 2.使用Spring JdbcTemplate 这个其实还是挺不错的,配置比较简单,功能丰富上比手工管理Connection要舒服多了,而且代码也比较简洁.

Spring+SpringMvc+Mybatis框架集成搭建教程

一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼,网络上又没有很详细的讲解以及搭建的教程.闲来无事,我就利用空闲时间来写这样一个教程和搭建步骤,来帮助那些有问题的小伙伴,让你从此SSM搭建不再有问题. 二.教程目录 1.Spring+SpringMvc+Mybatis框架集成搭建教程一(项目创建) 2.Spring+SpringMvc+Mybat

用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试

这一部分的主要目的是 配置spring-service.xml  也就是配置spring  并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)在这个基础上面 继续进行spring的配置. 回顾上面  我们已经成功测试通过了Mybatis的配置. 这时候的目录结构是: 一:下面我们继续补充目录结构,在com.peakfortake的文件目录项目 

Mybatis-Generator插件的使用与Spring集成Mybatis的配置

Mybatis-Generator插件 Mybatis-Generator是一个用于自动生成dao层接口.pojo以及mapper xml的一个Mybatis插件,该插件有三种用法:命令行运行.Eclipse插件.maven插件.个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上通用,本文也是介绍在maven中配置并使用这个插件. 现在我mysql中有一个school数据库,该数据库有student.cls两张表格,表结构如下: student表: cls表

Spring集成MyBatis的使用-使用Mapper映射器

Spring集成MyBatis使用 前面复习MyBatis时,发现在测试时,需要手动创建sqlSessionFactory,Spring将帮忙自动创建sqlSessionFactory,并且将自动扫描Mapper映射器 (1)集成步骤 step1 导包: spring-webmvc, mybatis, mybatis-spring, dbcp, ojdbc, spring-jdbc, junit, mysql相关等 <dependencies> <!--导入junit测试包-->

Spring集成MyBatis的使用-使用SqlSessionTemplate

Spring集成MyBatis的使用 Spring集成MyBatis,早期是使用SqlSessionTemplate,当时并没有用Mapper映射器,既然是早期,当然跟使用Mapper映射器是存在一些区别的,比如映射文件命名空间不需要跟接口名一样,接口中的方法不一定跟sql的id一样,通过它的SqlSessionTemplate的使用,在具体实现类中可以实现找到对应的sql Spring-Mybatis集成方式二-使用SqlSessionTemplate step1 导包:spring-webm

Unit08: Spring集成mybatis

Unit08: Spring集成mybatis 1. Spring集成mybatis (1)方式一 step1. 导包. spring-webmvc,mybatis,mybatis-spring, ojdbc,dbcp,spring-jdbc,junit. step2. 添加spring的配置文件. 注:集成之后,不再需要mybatis的配置文件了,之前的配置信息 用一个bean(SqlSessionFactoryBean)来代替. step3.实体类. step4.映射文件. step5.Ma

SSM(Spring + Springmvc + Mybatis)框架面试题

JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + Mybatis)框架面试题 一.Spring面试题 1.Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成. 两大核心:1.IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action

Spring+Struts2+Mybatis框架搭建时的常见典型问题

搭建SSM框架时,总是遇到这样那样的问题,有的一眼就能看出来,有的需要经验的积累.现将自己搭建SSM框架时遇到的典型问题总结如下: 一.Struts2框架下的action中无法使用@Autowired自动注入Bean(运行时bean总是为null) 常见原因: A.Spring的配置文件中组件扫描路径错误(即<context:component-scan base-package="xx.xx" />配置错误). B.@Autowired声明的beanName错误,bean