SSM框架各层之间的联系
view层调⽤controller层(view和controller层紧耦合,所以要结合开发),controller层调⽤service层(service层既要由调⽤Dao层的接⼝,也要有提供给controller层调⽤的接⼝),service层调⽤Dao层。
开发顺序
1. 完成数据库的创建(Department)
2. 根据数据库的字段(id,name,number),编写实体(entity)类,定义好每个对象的属性
entity.Department
public class Department {
private Integer id;
private String name;
private Integer number;
public Integer getId(){
return id;
}
public void setId(Integer id){
this.id = id;
}
public Integer getNumber(){
return number;
}
public void setNumber(Integer number){
this.number = number;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
3. 编写对数据库进⾏的具体操作,即增删查改。因为需要⽤到SQL语句,⽽我们需要将SQL语句和JAVA代码解耦合,所以我们将他放
在映射⽂件(Mapper)中,即l
代码:l
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC
"-////DTD Mapper 3.0//EN"
"/dtd/mybatis-3-mapper.dtd">
<!--这是⼀个与部门数据库连接(映射)的配置⽂件,描述了对部门表可以进⾏的实质操作
⾸先通过mapper标签对dao接⼝进⾏⼀对⼀的映射(namespace保持唯⼀)-->
<mapper namespace="com.dao.DepartmentDao">
<!--配置数据库查映射,连接到实体类-->
<!--id对应的接⼝内操作的⽅法名,resultType是定义的查询结果的返回类型。如下为实体类中的Department类型-->
<select id="search" resultType="ity.Department">
select * from department
</select>
<!--通过id查,反正最后的操作都需要连接到实体类
并且接收业务层传输的id数据-->
<select id="searchById"
resultType="ity.Department">
select * from department where
id=#{id}
</select>
<!--添加操作,将组添加到部门表中,并且传⼊编号和姓名值-->
<insert id="add">
insert into department
(number,name)values(#{number},#{name})
</insert>
<!--修改操作,在id=x处修改业务层传输过来的编号和姓名-->
<update id="update">
update department set number=#{number},
name=#{name}  where id=#{id}
</update>
<!--删除操作从部门表中删除id为x的组-->
<delete id="delete">
delete from department where id=#{id}
</delete>
</mapper>
4. 编写DepartmentDao.java,将Mapper中的xml⽂件通过id和l⽂件的配置映射到Dao接⼝中l的命名空间来指定Dao接⼝:
<mapper namespace="com.alan.hrsys.dao.DepartmentDao">
<!--配置sqlSessionFactory -->
<bean id="sqlSessionFactory"class="batis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
<!-- mapper扫描器-->
<bean class="batis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.alan.hrsys.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
5. 编写service(业务层)代码。先编写业务层接⼝,在接⼝中定义⽅法,⽅便controller层进⾏调⽤
public interface DepartmentService {
public Department searchById(Integer id);
public boolean add(Department dep);
public boolean update(Department dep);
public boolean delete(Integer id);
}
再在impl包中调⽤Dao接⼝完成每个⽅法的具体实现。
@Service
public class DepartmentServiceImpl implements DepartmentService {
@Autowired
DepartmentDao depDao;
@Autowired
EmployeeDao empDao;
@Override
public List<Department>search(){
List<Department> list = depDao.search();
return list;
}
@Override
public Department searchById(Integer id){
Department dep = depDao.searchById(id);
return dep;
}
@Override
ssm框架实现登录功能public boolean add(Department dep){
int rs = depDao.add(dep);
return rs >0;
}
@Override
public boolean update(Department dep){
int rs = depDao.update(dep);
return rs >0;
}
@Override
public boolean delete(Integer id){
int rs = depDao.delete(id);
rs = empDao.updateByDep(id);
return rs >0;
}
}
6. 编写controller层,通过controller层接收JSP传来的参数,调⽤service层接⼝,进⾏处理后再将处理后的参数通过JSP层展⽰给⽤户

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。