MVC框架:
M:model (service,dao,pojo)
V:view (jsp)
C:controller (servlet)
使用MyBatis:普通mvc中的dao层就是MyBatis的Mapper。(本案例中mapper没有进行路径分离,即xml和接口在一个包中)
Mapper层(dao层 操作数据库,使用jdbc)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zxw.mapper.UserMapper">
<!-- 查询用户是否存在 -->
<select id="selUser" parameterType="user" resultType="user">
select * from t_user where uname=#{uname} and pwd=#{pwd}
</select>
<!-- 注册用户 -->
<insert id="insUser" parameterType="user">
insert into t_user values(default,#{uname},#{pwd},#{sex},#{age},#{birthday})
</insert>
</mapper>
package com.zxw.mapper;
import org.apache.ibatis.annotations.Param;
import com.zxw.pojo.User;
public interface UserMapper {
//查询用户是否存在
public User selUser(@Param("uname")String uname,@Param("pwd")String pwd);
//注册用户
public int insUser(User user);
}
service层(业务逻辑处理)
package com.zxw.service.impl;
import org.apache.ibatis.session.SqlSession;
import com.zxw.mapper.UserMapper;
import com.zxw.pojo.User;
import com.zxw.service.UserService;
import com.zxw.util.MyBatisUtils;
public class UserServiceImpl implements UserService {
@Override
public User selUser(String uname,String pwd) {
SqlSession session = MyBatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User u = mapper.selUser(uname, pwd);
session.close();
return u;
}
@Override
public int insUser(User user) {
SqlSession session = MyBatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
int insUser = mapper.insUser(user);
if(insUser>0){
session.commit();
}else{
session.rollback()