全部 android asp.net C/C++ cshap IOS Java javascript nodejs perl php python ruby web容器 其他 前端 数据库 第三方平台 混合式APP 网络 系统 默认分类

SSM环境搭建(接口编程方式)

0 192

一直用ssm在开发项目,之前都是直接copy别人的项目,今天趁着项目刚刚交付,自己搭建一下ssm环境,做个记录

一、创建项目、引入jar包,因为版本不一样,就不贴出这部分的内容了。个人平时的习惯是,先将核心jar包引入,在测试是如果有需要添加的,在额外加入,一堆jar包也不太好记。

二、首先项目中配置spring

 1、项目web.xml中配置


    org.springframework.web.context.ContextLoaderListener



    contextConfigLocation
    classpath:applicationContext.xml

2、构建项目结构如下图(代码见下方):

2.1实体类User

public class User {
	private int id;
	private String name;
	private int age;
        //getters、setters
}

2.2   UserDao 对实体类的操作,其中的方法名称和Mapper中对应的id一样

public interface UserDao {

	public List findAll();

	public User findById(int id);

	public void addUser(User u);

	public void deleteUser(int id);

	public void updateUser(User u);
}

2.3 UserMapper.xml,其中就是对应dao层的具体操作,包括其中的sql语句,类似与其中接口的实现,只不过这个实现是mybatis自己去实现的






	
	

	
	
     
	
		insert into user values (#{id},#{name},#{age})
	

	
	
		delete from user where id = #{id}
	

	
	
		update user
		set name =	#{name},age= #{age}
		where id = #{id}
	
 

2.4   userService,用户的业务操作,注意这里userDao接口,mybatis MapperScannerConfigurer生成代理注入到Spring(spring文件中),所以我们没有不需要为dao层添加注解@Repository进行注入

@Service
public class UserService {

	@Resource
	private UserDao userDao;

	public List findAll() {
		return userDao.findAll();
	}

	public User findById(int qid) {
		return userDao.findById(qid);
	}

	public void addUser(User u) {
		userDao.addUser(u);
	}

	public void deleteUser(int id) {
		userDao.deleteUser(id);
	}

	public void updateUser(User u) {
		userDao.updateUser(u);
	}
}

2.5    applicationContext.xml文件中,主要是sqlSessionFactory和事物的配置,里边有详细的配置注释,这里不再赘述




	
	
	
	

	
	
		
		
		
		
		
		
		
	

	
		
		
		
	

	
	
		
		
		
		
	

	
	
		
	

	
	
		
			
			
			
			
			
		
	

	
		
	

2.6  mybatis的配置文件,这个主要是对全局的配置进行一个设置




	
		
	
	
		
	

2.7   测试类:

public class TestSSM {

	private static ApplicationContext act;
	private static SqlSessionFactory sqlSessionFactory;
	private static SqlSession sqlSession;

	@BeforeClass
	public static void before() throws IOException {
		act = new ClassPathXmlApplicationContext("applicationContext.xml");
		sqlSessionFactory = (SqlSessionFactory) act
				.getBean("sqlSessionFactory");
		sqlSession = sqlSessionFactory.openSession();
	}

	@Test
	public void testFindAll() {
		UserService userService = (UserService) act.getBean("userService");
		List list = userService.findAll();
		for (User u : list) {
			System.out.println(u.toString());
		}

	}
	
	@Test
	public void testFindById() {
		UserService userService = (UserService) act.getBean("userService");
		User u = userService.findById(3);
		System.out.println(u);
	}
	
	@Test
	public void testDeleteUser() {
		UserService userService = (UserService) act.getBean("userService");
		userService.deleteUser(3);;
	}
	
	@Test
	public void testAddUser() {
		UserService userService = (UserService) act.getBean("userService");
		User u = new User();
		u.setName("123");
		u.setAge(33);
		userService.addUser(u);
	}
	
	@Test
	public void testUpdateUser() {
		UserService userService = (UserService) act.getBean("userService");
		User u = new User();
		u.setName("123");
		u.setAge(33);
		u.setId(2);
		userService.updateUser(u);
	}

	@AfterClass
	public static void after() throws IOException {
		sqlSession.close();
	}

}

各个测试方法均测试通过,说明我们的spring + mybatis环境整合成功。

三、整合springmvc或者struts(这里介绍springmvc)

1、web.xml中配置springmvc


	SpringMVC
	org.springframework.web.servlet.DispatcherServlet
	
		contextConfigLocation
		classpath:springmvc.xml
	
	1


	SpringMVC
	
	*.do

2. springmvc.xml



	
	
	
	
	
	
		
			
				text/html;charset=UTF-8
			
		
	
	
	
		
			
					
			
		
	
	
	
		
		
		
	

	
	
		
		
		
		
		
		
	


3.  编写controller层

@Controller
public class UserController {
	@Resource
	private UserService userService;

	@RequestMapping("/test")
	public void test() {
		List list = userService.findAll();
		for (User u : list) {
			System.out.println(u);
		}
	}

}

通过浏览器测试:

OK,一切正常!ssm框架整合成功!

热忱回答0