Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2.1
(1) 导入相关包,包结构如下图所示:包和代码会在后面上传
工程目录
(2) 配置spring:修改src/applicationContext-mybatis.xml文件,结果如下所示:
(3) 在src下添加jdbc.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/user?characterEncoding=utf-8
uname=root
password=123123
(4) 在com.jin.entity包下添加实体类,实体类对应于数据表,其属性与数据表相同或多于数据表。
package com.jin.entity;
public class User {
private Integer id;
private String name;
private String pwd;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
(5) 配置mybatis-config.xml
<7>log4j.properties
### \u8BBE\u7F6ELogger\u8F93\u51FA\u7EA7\u522B\u548C\u8F93\u51FA\u76EE\u7684\u5730 ###
log4j.rootLogger=debug,stdout,logfile
### \u628A\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### \u628A\u65E5\u5FD7\u4FE1\u606F\u8F93\u51FA\u5230\u6587\u4EF6\uFF1Ajbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
###\u663E\u793ASQL\u8BED\u53E5\u90E8\u5206
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
8.1配置UserMapper.java接口
package com.jin.dao;
import java.util.List;
import com.jin.entity.User;
public interface UserMapper {
public List getUserList();
public User getUser(User user);
public int insertUser(User user);
public int updateUser(User user);
public int deleteUser(User user);
}
8.2UserMapper.xml
insert into user values(null,#{name},#{pwd})
delete from user where id=#{id}
update user set name=#{name},pwd=#{pwd} where id=#{id}
(9)配置service层com.jin.service
UserService.java接口
package com.jin.service;
import java.util.List;
import com.jin.entity.User;
public interface UserService {
public List getUserList();
public User getUser(User user);
public int insertUser(User user);
public int updateUser(User user);
public int deleteUser(User user);
}
UserServiceImpl.java实现类
package com.jin.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.jin.dao.UserMapper;
import com.jin.entity.User;
import com.jin.service.UserService;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
@Override
public List getUserList() {
// TODO Auto-generated method stub
return userMapper.getUserList();
}
@Override
public User getUser(User user) {
// TODO Auto-generated method stub
return userMapper.getUser(user);
}
@Override
public int insertUser(User user) {
// TODO Auto-generated method stub
return userMapper.insertUser(user);
}
@Override
public int updateUser(User user) {
// TODO Auto-generated method stub
return userMapper.updateUser(user);
}
@Override
public int deleteUser(User user) {
// TODO Auto-generated method stub
return userMapper.deleteUser(user);
}
(10)控制 层 com.jin.action
IndexAction.java
package com.jin.action;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.jin.entity.User;
import com.jin.service.UserService;
@RequestMapping("/user")
@Controller
public class IndexAction {
private Logger loger = Logger.getLogger(IndexAction.class);
@Resource
private UserService userService;
@RequestMapping("/index")
public String index(){
return "index";
}
@RequestMapping("/register")
public String register(){
return "register";
}
@RequestMapping("/exit")
public String exit(){
return "exit";
}
@RequestMapping("/login")
public String login(){
System.out.println("杩涘叆---------------------------");
return "login";
}
@RequestMapping("/loginsuccess")
public ModelAndView loginsuccess(User user){
user=userService.getUser(user);
return new ModelAndView("loginsuccess");
}
@RequestMapping("/regsuccess")
public ModelAndView regsuccess(User user){
int f=userService.insertUser(user);
if(f>0){
user=userService.getUser(user);
}
return new ModelAndView("regsuccess");
}
}
(11)jsp:login.jsp
pages/login.
退出页面
welcome:--${user.Name}--
(12) web.xml
contextConfigLocation
classpath:applicationContext-*.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
spring
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-servlet.xml
1
spring
/
org.springframework.web.context.ContextLoaderListener
log4jConfigLocation
classpath:log4j.properties
org.springframework.web.util.Log4jConfigListener
index.jsp