手把手实战:eclipse 搭建 SpringMvc+mybatis 框架环境
说明
spring mvc的环境在“ 手把手实战:eclipse搭建SpringMvc框架环境 ”中已经搭建完成,那么接下来此会在此基础上把mybatis添加进去(前一章由于有很多截图使得篇幅看起来很长,在这章我就不再粘一遍了。我只是把它的代码拿过来,改个工程的名字来做这篇例子的)
环境准备
eclipse
jdk 1.8
tomcat 7
mysql 5
添加mybatis所需要的jar包及其他包
添加mybatis所需要的相关配置xml
在“ 手把手实战:eclipse搭建SpringMvc框架环境 ”中有提过,我在web.xml中已经配置好了所有src下的spring - *。xml都会被我初始化,所以我这里的命名为spring-applicationContext。 XML。
其内容为
数据源配的是我本地的mysql库,这个我就不详细说了。下面的两项配置都是mybatis有关的,一个是mapper的xml的位置,另一个是mybatis会自动装配的dao接口的包位置。
接下来要创建一个对应数据库的实体类和一个DAO接口。位置如下
包 com.hlm.bo;
import java.io.Serializable;
import java.util.Date;
/ **
* <p>
* <ul> 用户:对应hlm_users表的实体</ ul>
* <li> id:主键</ li>
* <li> userCode:用户唯一识别码</ li>
* <li> userName:用户姓名</ li>
* <li> 性别:性别</ li>
* <li> 令牌:注册令牌,手机或邮箱</ li>
* <li> tokenType:令牌类型.0为手机,1为邮箱</ li>
* <li> createTime:注册时间</ li>
* <li> 密码:密码</ li>
* </ p>
* @author hlm
*
* /
公共 类 用户 实现 Serializable {
private static final long serialVersionUID = -3452179176154022411L;
私人 长 ID ;
private String userCode ;
私人 字符串 用户名 ;
私人 整数 性 ;
私人 字符串 令牌 ;
私人 整数 tokenType ;
私人 日期 createTime ;
私人 字符串 密码 ;
public Users(){
}
public Long getId(){
返回 ID ;
}
public void setId(Long id ){
这个。id = id ;
}
public String getUserCode(){
返回 userCode ;
}
public void setUserCode(String userCode ){
这个。userCode = userCode ;
}
public String getUserName(){
返回 用户名;
}
public void setUserName(String userName ){
这个。userName = userName ;
}
public Integer getSex(){
返回 性别;
}
public void setSex(Integer sex ){
这个。性别 = 性别;
}
public String getToken(){
返回 令牌;
}
public void setToken(String token ){
这个。标记 = 标记;
}
public Integer getTokenType(){
返回 tokenType ;
}
public void setTokenType(Integer tokenType ){
这个。tokenType = tokenType ;
}
public Date getCreateTime(){
return createTime ;
}
public void setCreateTime(Date createTime ){
这个。createTime = createTime ;
}
public String getPassword(){
返回 密码;
}
public void setPassword(String password ){
这个。密码 = 密码;
}
}
|
包 com.hlm.dao;
import com.hlm.bo.Users;
公共 接口 UsersDao {
/ **
*创建用户
* @param bo
* /
public void createUsers(Users bo );
}
|
另外再创建一个包com.hlm.sql来存放* Mapper.xml,也就是前面配置文件中有配置的
UserMapper.xml中内容如下,在此我只是简单地写了一条新增的语句。该ID对应我usersDao.java接口中的新增方法名。
<?xml version =“1.0”encoding =“UTF-8”?>
<!DOCTYPE mapper PUBLIC“ - // ibatis.apache.org // DTD Mapper 3.0 // EN”
<mapper namespace = “com.hlm.dao.UsersDao” >
<insert id = “createUsers” parameterType = “com.hlm.bo.Users” >
插入到hlm_users(id,user_code,user_name,
性别,令牌,CREATE_TIME,密码,
token_type)
值(#{ID},{#} USERCODE,#{USERNAME},{#}性别,#{令牌},{#} createTime,#{密码},{#} tokenType)
</插入>
</映射器>
|
最后我们改一下原来的UsersController.java
包com.hlm.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.hlm.bo.Users; import com.hlm.command.UsersCommand; import com.hlm.dao.UsersDao; @Controller public class UsersController { @Resource private UsersDao usersDao; @RequestMapping(“/ sigup.do”) public ModelAndView sigup(HttpServletRequest req){ ModelAndView mv = new ModelAndView(); UsersCommand cmd = new UsersCommand(“小明”,0,“[email protected]”,1,“123456”); 用户bo =新用户(); BeanUtils.copyProperties(cmd,bo); bo.setUserCode(bo.getUserName()+ “1”); usersDao.createUsers(BO); req.getSession()。setAttribute(“user”,bo); mv.addObject(“password”,bo.getPassword()); mv.addObject(“userName”,bo.getUserName()); 的System.out.println(bo.getPassword()); mv.setViewName( “索引”); 返回mv; } } |
老样子,部署好tomcat后启动,启动好后打开浏览器输入网址:http:// localhost:8080 / springmvcmybatis /
点击后
数据库多了一条数据
题外话
我知道有些同学在网上看到这个mybatis的xml配置文件都叫applicationContext.xml并不像我这里叫spring-applicationContext.xml。然后,他们会在web.xml里多出如下的配置语句
当然,这也是可以,只要能告诉web.xml中哪些XML文件是需要读到的就行(其实这两种方式虽然效果一样,但实质上是有区别的,好学的同学可以搜一下相关的答案,我这里就不多说了)。但也有些同学采用上面这种方式会遇到问题,看到我上面的大红框里面有两个小红框没,这两个是必需的。有些同学从别年制的时候可能只复制了第一个框中的,第二个框中的就没复制,导致的MyBatis的配置文件没有生效,启动tomcat的的时候就可能遇到DAO这个豆没找到了,因为刀的bean的在mybatis的配置文件中定义生成方式的。
最后附上数据表建表语句
|
git代码地址:https://github.com/mottohlm/springmvcm ybatis
20180527