前言:昨天新学习了SSM框架搭建,于是迫不及待的在这里分享给大家,SSM框架是将 Mybatis 交给Spring去管理之后 SqlSessionFactory 就不需要手动注入了,Spring 会自动去进行注入,并且 SqlSession 也不需要我们自己去得到了,这样就比较简单了。
(本案例基于开发工具IDEA、MySQL,模拟查询Users类的信息)
一、由于是新建的 maven 项目,第一步先注入 maven 的一些jar 包 ,每个jar包的作用都作好了注释,这里就不一一去解释了,如果有需要用其他jar包的,根据个人需求导入
jar包注入
①
②
③
二、让我们把项目所需要的包、类、数据库以及xml文件建好
以下是本框架的所有包、类、xml截图
users表的数据,我们随便插几条:
三、开始配置xml
1、首先搭建SpringMVC环境(springmvc-config.xml)
此处需要开启注解,小编第一次搭框架因为粗心没有开启注解驱动,始终报注解的错
2、连接数据库的配置文件(db.properties),把连接数据库的配置独立出来的好处是方便切换数据库
3、配置Spring核心文件(applicationContext-common.xml)
①连接数据库,如需切换数据库,只需要更改引入数据库的配置文件
②Spring工厂代理SqlSessionFactory ,搭配model包,mapper包
③配置事务切面,指定方法名
4、web.xml配置文件
四、java类的的编写
model包下的Users(用户)模型类:
不要忽略构造方法
package com.ssm.model;
public class Users {
private int uid;
private String uname;
private String usex;
private String birthday;
private String address;
public Users(String uname, String usex, String birthday, String address) {
this.uname = uname;
this.usex = usex;
this.birthday = birthday;
this.address = address;
}
public Users() {
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUsex() {
return usex;
}
public void setUsex(String usex) {
this.usex = usex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
com.ssm.mapper(映射包).UsersMapper(映射类):
一个model类配一个映射类,注意SQL语句的编写是否正确
package com.ssm.mapper;
import com.ssm.model.Users;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;
import java.util.List;
//服务层组件,用于标注业务层组件,表示定义一个@Service("自定义名")
@Service("usersMapper")
public interface UsersMapper {
//查询所有用户
@Select("select * from users")
public List<Users> findUsers();
}
com.ssm.services.UsersService(业务逻辑的接口)
package com.ssm.services;
import com.ssm.model.Users;
import java.util.List;
//业务层的接口
public interface UsersService {
//查询所有的用户
public List<Users> findUsers();
}
com.ssm.services.impl.UsersServiceImpl(实现业务逻辑的接口)
继承父类(UsersService)并继承父类所有的方法
package com.ssm.services.impl;
import com.ssm.mapper.UsersMapper;
import com.ssm.model.Users;
import com.ssm.services.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("usersService")
//实现业务层的接口
public class UsersServiceImpl implements UsersService{
//使用UsersMapper
//根据返回自动注入
@Autowired
private UsersMapper usersMapper;
@Override
public List<Users> findUsers() {
return usersMapper.findUsers();
}
}
控制器:MainController.java
在此类调用增删改查方法 进行数据库的数据处理
package com.ssm.controller;
import com.ssm.model.Users;
import com.ssm.services.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import java.util.List;
@Controller
public class MainController {
//按照属性名注入,方便多个类的注入
@Resource(name = "usersService",type = com.ssm.services.impl.UsersServiceImpl.class)
private UsersService usersService;
@RequestMapping("test")
public String test(){
List<Users> list=usersService.findUsers();
for (Users users : list) {
System.out.println("编号:"+users.getUid()+" 姓名:"+users.getUname()+" 性别:"+users.getUsex()+" 生日:"+users.getBirthday()+" 地址:"+users.getAddress());
}
// System.out.println(usersService.findUsers().size());
return "index";
}
}
最后启动 Tomcat,浏览器访问http://localhost:8080/test.action
如果看到如下页面,就说明你成功了
怎么样,有没有get到!赶紧自己动手试试吧
结语:由于小编还是新手,写得可能不是很好,有不对之处,还请各位提出, 小编一定吸取意见,砥砺前行!