由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教。
一、代码结构
整个项目的代码结构如图所示:
controller为控制层,主要用于对业务模块的流程控制。
dao为数据接入层,主要用于与数据库进行连接,访问数据库进行操作,这里定义了各种操作数据库的接口。
mapper中存放mybatis的数据库映射配置。可以通过查看mybatis相关教程了解
model中存放了我们的实体类
service为业务层,我们的各种业务都定义在此,由controller调用不同业务实现不同的操作。
由于之前搭建环境都是自己配置依赖环境,导致缺各种缺包或者依赖冲突,所以这次我使用了maven来管理项目,可以上网查一下相关的教程,使用起来非常方便。
下面是我的pom.xml文件的配置
4.0.0 com.mjl testssmwar 1.0-SNAPSHOT testssm Maven Webapp http://maven.apache.org UTF-8 4.1.4.RELEASE 2.5.0 junit junit4.12 test org.springframework spring-core${spring.version} org.springframework spring-beans${spring.version} org.springframework spring-context${spring.version} org.springframework spring-tx${spring.version} org.springframework spring-web${spring.version} org.springframework spring-webmvc${spring.version} org.springframework spring-jdbc${spring.version} org.springframework spring-test${spring.version} test org.mybatis mybatis3.2.8 org.mybatis mybatis-spring1.2.2 mysql mysql-connector-java5.1.34 com.mchange c3p00.9.5-pre8 org.aspectj aspectjweaver1.8.4 log4j log4j1.2.17 javax.servlet servlet-api3.0-alpha-1 javax.servlet jstl1.2 org.codehaus.jackson jackson-mapper-asl1.9.13 commons-io commons-io2.4 commons-fileupload commons-fileupload1.2.2 testssm
下面进入主题,直接上代码,我之前是先看了各种原理,但是看了半天也没明白,所以大家可以先把项目跑起来,然后再去对照springmvc的各个模块进行分析,哪个模块执行哪个操作,我认为这样的效果比较好。
我个人喜欢先从数据库与ORM框架与spirng开始搭建,这样的话在一开始就可以对ORM框架进行检验,免得在最后检验的时候出了问题。
先看web.xml的配置
contextConfigLocation classpath*:config/applicationContext.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter public class User { private int id; private String username; private String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
数据库接入层dao的接口,在这里我使用了mybatis以接口方式编程,这部分借鉴了其他的教程,有不懂的地方可以查看http://www.yihaomen.com/article/java/302.htm 该网址的mybatis教程,我觉得写的很不错。
package com.mjl.dao;
import com.mjl.model.User;
public interface IUserDao {
//这里以接口形式定义了数据库操作方法,我们只需
// 在Mybatis映射文件中对其进行映射就可以直接使用
public User selectById(int id);
public User selectByName(String username);
}
mybatis映射文件文件名必须与接口类相同,否则无法映射成功。
好了,到这里mybatis与spring已经整合完毕,我们需要测试一下mybatis是否与spring整合成功,写一个test类
package com.mjl.test;
import com.mjl.dao.IUserDao;
import com.mjl.model.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
private static ApplicationContext ac;
static {
ac = new ClassPathXmlApplicationContext("config/applicationContext.xml");
}
public static void main(String[] args) {
IUserDao mapper = (IUserDao) ac.getBean("IUserDao");
System.out.println("获取alvin");
User user = mapper.selectByName("alvin");
System.out.println(user.getId()+":"+"username:"+user.getUsername());
System.out.println("password:"+user.getPassword());
}
}
如果成功,如下图所示:
到这里mybatis与spring就整合结束了,明天继续更新下半部分。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



