spring4整合mybatis3

文章目录

  • 开发环境搭建
  • 所需jar包
  • 准备数据库资源
  • 完成配置文件
    • db.properties
    • applicationContext.xml
    • springmvc-config.xml
    • web.xml
  • 持久层实现
  • 服务层实现
  • 控制层实现
  • jsp页面

开发环境搭建

安装Jdk和环境变量配置java_home、path和classpath
安装eclipse的jre环境
安装tomcat8
安装mysql5以上数据库

所需jar包

spring4整合mybatis3_第1张图片

准备数据库资源

完成配置文件

db.properties

dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://127.0.0.1:3306/mybatis
dataSource.user=root
dataSource.password=root
dataSource.maxPoolSize=20
dataSource.maxIdleTime = 1000
dataSource.minPoolSize=6
dataSource.initialPoolSize=5

applicationContext.xml



			      
	   
       
       
	 
    
    
	
	

	
	
	
	
	
	
	
	
	
	
	
	


springmvc-config.xml



        
    
    
    
    
    
    
    
      
        
        
            /WEB-INF/content/
        
        
        
            .jsp
        
    
    

web.xml



	
	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
		contextConfigLocation
		/WEB-INF/applicationContext*.xml
	
	
	
  
    springmvc
    
        org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      /WEB-INF/springmvc-config.xml
    
    1
  
  
  
  
    springmvc
    /
  
  
  
  
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
 
	
		characterEncodingFilter
		/*
	
	

持久层实现

User.java

public class User implements Serializable{

	private Integer id;			// id
	private String loginname;	// 登录名
	private String password;	// 密码
	private String username;	// 用户名
	private String phone;		// 电话
	private String address;		// 地址
	
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	省略getter和setter
	
}

Book.java

public class Book implements Serializable{
	
	private Integer id;				// id	
	private String name;			// 书名
	private String author;			// 作者
	private String publication;		// 出版社
	private Date publicationdate;	// 出版日期
	private Double price;			// 价格
	private String image;			// 封面图片
	private String remark;			// 详细描述
	
	public Book() {
		super();
		// TODO Auto-generated constructor stub
	}
	省略getter和setter方法
	

}

UserMapper.java

package org.fkit.mapper;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.fkit.domain.User;

/**
 * UserMapper接口
 * */
public interface UserMapper {
	
	/**
	 * 根据登录名和密码查询用户
	 * @param String loginname
	 * @param String password
	 * @return 找到返回User对象,没有找到返回null
	 * */
	@Select("select * from tb_user where loginname = #{loginname} and password = #{password}")
	User findWithLoginnameAndPassword(@Param("loginname")String loginname,
			@Param("password") String password);

}

BookMapper.java

package org.fkit.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Select;
import org.fkit.domain.Book;

/**
 * BookMapper接口
 * */
public interface BookMapper {

	/**
	 * 查询所有图书
	 * @return 图书对象集合
	 * */
	@Select(" select * from tb_book ")
	List findAll();
	
}

服务层实现

UserService.java

package org.fkit.service;

import org.fkit.domain.User;

/**
 * User服务层接口
 * */
public interface UserService {
	
	/**
	 * 判断用户登录
	 * @param String loginname
	 * @param String password
	 * @return 找到返回User对象,没有找到返回null
	 * */
	User login(String loginname,String password);

}

UserServiceImpl.java

package org.fkit.service.impl;

import org.fkit.domain.User;
import org.fkit.mapper.UserMapper;
import org.fkit.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * User服务层接口实现类
 * @Service("userService")用于将当前类注释为一个Spring的bean,名为userService
 * */
@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
@Service("userService")
public class UserServiceImpl implements UserService {
	
	/**
	 * 自动注入UserMapper
	 * */
	@Autowired
	private UserMapper userMapper;

	/**
	 * UserService接口login方法实现
	 * @see { UserService }
	 * */
	@Transactional(readOnly=true)
	@Override
	public User login(String loginname, String password) {
		return userMapper.findWithLoginnameAndPassword(loginname, password);
	}

}

BookService.java

package org.fkit.service;

import java.util.List;

import org.fkit.domain.Book;

/**
 * Book服务层接口
 * */
public interface BookService {
	
	/**
	 * 查找所有图书
	 * @return Book对象集合
	 * */
	List getAll();

}

BookServiceImpl.java

package org.fkit.service.impl;

import java.util.List;

import org.fkit.domain.Book;
import org.fkit.mapper.BookMapper;
import org.fkit.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * Book服务层接口实现类
 * @Service("bookService")用于将当前类注释为一个Spring的bean,名为bookService
 * */
@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT)
@Service("bookService")
public class BookServiceImpl implements BookService {
	
	/**
	 * 自动注入BookMapper
	 * */
	@Autowired
	private BookMapper bookMapper;

	/**
	 * BookService接口getAll方法实现
	 * @see { BookService }
	 * */
	@Transactional(readOnly=true)
	@Override
	public List getAll() {
		
		return bookMapper.findAll();
	}

}

控制层实现

FormController.java

package org.fkit.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;


/**   
 * @Description: 
 * 
网站:疯狂Java * @author 肖文吉 [email protected] * @version V1.0 */ /** * 动态页面跳转控制器 * */ @Controller public class FormController{ @RequestMapping(value="/{formName}") public String loginForm(@PathVariable String formName){ // 动态跳转页面 return formName; } }

UserController.java

package org.fkit.controller;

import javax.servlet.http.HttpSession;

import org.fkit.domain.User;
import org.fkit.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;

/**
 * 处理用户请求控制器
 * */
@Controller
public class UserController {
	
	/**
	 * 自动注入UserService
	 * */
	@Autowired
	@Qualifier("userService")
	private UserService userService;

	/**
	 * 处理/login请求
	 * */
	@RequestMapping(value="/login")
	 public ModelAndView login(
			 String loginname,String password,
			 ModelAndView mv,
			 HttpSession session){
		// 根据登录名和密码查找用户,判断用户登录
		User user = userService.login(loginname, password);
		if(user != null){
			// 登录成功,将user对象设置到HttpSession作用范围域
			session.setAttribute("user", user);
			// 转发到main请求
			mv.setView(new RedirectView("/fkbookapp/main"));
		}else{
			// 登录失败,设置失败提示信息,并跳转到登录页面
			mv.addObject("message", "登录名或密码错误,请重新输入!");
			mv.setViewName("loginForm");
		}
		return mv;
	}
	
	
}

BookController.java

package org.fkit.controller;

import java.util.List;

import org.fkit.domain.Book;
import org.fkit.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 处理图书请求控制器
 * */
@Controller
public class BookController {
	
	/**
	 * 自动注入BookService
	 * */
	@Autowired
	@Qualifier("bookService")
	private BookService bookService;

	/**
	 * 处理/main请求
	 * */
	@RequestMapping(value="/main")
	 public String main(Model model){
		// 获得所有图书集合
		List book_list = bookService.getAll();
		// 将图书集合添加到model当中
		model.addAttribute("book_list", book_list);
		// 跳转到main页面
		return "main";
	}
	
}

jsp页面

loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录页面


登录页面

${requestScope.message }

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>




首页



欢迎[${sessionScope.user.username }]访问

封面书名作者价格
${book.name } ${book.author } ${book.price }

你可能感兴趣的:(spring4整合mybatis3)