在这里写一个简单的SSM项目搭建小例:
项目地址文件地址:https://download.csdn.net/my
数据库为:oracle
工具为:eclipse
环境为:jdk1.8、tomcat7.0
使用到的jar包
表名为cource 字段包括cource_id、cource_name、cource_score、start_date
由于建表时名字写错了在后面配置和创建实体类是会将cource 该为course。
首先有一个实体类course;
private String courseId;
private String courseName;
private int courseScore;
private Date startDate;
mapper接口:
package com.neuedu.ssmdemo.mapper;
import java.util.List;
import com.neuedu.ssmdemo.model.Course;
public interface ICourseMapper {
// 接口方法默认是共有的抽象的
public abstract List<Course> findAll();
}
mapper映射文件 .xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.neuedu.ssmdemo.mapper.ICourseMapper">
<resultMap type="Course" id="courseMap">
<id column="cource_id" property="courseId"/>
<result column="cource_name" property="courseName"/>
<result column="cource_score" property="courseScore"/>
<result column="start_date" property="startDate"/>
</resultMap>
<!-- 根据方法的功能,配置对应的标签 -->
<select id="findAll" resultMap = "courseMap">
select * from cource
</select>
</mapper>
service层接口:
package com.neuedu.ssmdemo.service;
import java.util.List;
import com.neuedu.ssmdemo.model.Course;
/**
* @author gyf
*
*/
public interface ICourseService {
public List<Course> findAll();
}
service实现类
package com.neuedu.ssmdemo.service.imp;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.neuedu.ssmdemo.mapper.ICourseMapper;
import com.neuedu.ssmdemo.model.Course;
import com.neuedu.ssmdemo.service.ICourseService;
//把当前类配置成为需要进行事务控制,当执行更新操作时spring会自动完成事务管理
@Transactional
//把当前类在spring中注册为服务组件,spring实例化对象时可以根据配置执行来注入
@Service
public class CourseService implements ICourseService {
//整合调用mybatis的mapper接口,由spring执行依赖注入
@Resource
private ICourseMapper courseMapper;
@Override
public List<Course> findAll() {
return courseMapper.findAll();
}
}
mybatis-config配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置别名 -->
<typeAliases>
<package name = "com.neuedu.ssmdemo.model"/>
</typeAliases>
<mappers>
<package name="com.neuedu.ssmdemo.mapper"></package>
</mappers>
</configuration>
applicationContext配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 使用spring提高的组件扫描注解组件 -->
<context:component-scan base-package="com.neuedu.ssmdemo.service"/>
<context:property-placeholder location = "classpath:config/db.properties"/>
<!-- 整合spring+mybatis后事务交给spring进行统一管理,需要统一使用spring提供的数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
<property name="username" value="数据库账号"></property>
<property name="password" value="数据库密码"></property>
<property name="url" value="jdbc:oracle:thin://localhost:1521/orcl"></property>
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
</bean>
<!-- 整合mybatis,把数据源给mybatis sqlSessionFactory -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id = "sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="config/mybatis-config.xml"/>
</bean>
<!-- mapper 接口扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.neuedu.ssmdemo.mapper"></property>
</bean>
</beans>
测试方法:
package test;
import java.util.List;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.neuedu.ssmdemo.model.Course;
import com.neuedu.ssmdemo.service.ICourseService;
public class TestCourseService {
private Logger logger=Logger.getLogger(TestCourseService.class);
private ApplicationContext context = null;
private ICourseService courseService;
@Before
public void init(){
logger.info("执行spring环境初始化");
// 方法一 ApplicationContext
String configLocation = "config/applicationContext.xml";
// 接收一个配置文件名称的数组作为参数
String [] configs = new String []{configLocation};
context = new ClassPathXmlApplicationContext(configs);
logger.info("执行spring环境初始化完毕");
}
@Test
public void testFindAll(){
courseService = context.getBean(ICourseService.class);
List<Course> list = courseService.findAll();
if (list!=null) {
for (Course course : list) {
logger.info(course.getCourseName());
}
}
}
}
一个简单demo奉上,一可以去顶部地址下载项目文件具体分析