1.Spring:控制反转 控制权的转移 spring容器帮我们创建对象
2.SpringMVC:servlet
3.MyBatis:持久层框架 orm
4.依赖注入的两种方式:
在配置文件配置bean:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描bean包 使用别名 -->
<property name="typeAliasesPackage" value="com.summer.bean"></property>
<!--配置加载映射文件 UserMapper.xml-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
在类前面加上注释@Service
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public boolean login(String username, String password) {
User user = userDao.findUserByUsername(username);
if(user!=null&&user.getPassword().equals(password)){
return true;
}
return false;
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
}
5.转发(forward)VS重定向(redirect):
重定向相当于直接在地址栏输入一个新的网址,这个网址自然会显示在地址栏上,当然是可见的。
转发就是从其他页面跳转过来,跳转后显示在眼前页面的地址并不是当前页面的地址,而是上一个页面的地址(或servlet处理上一个页面请求的地址),因此,当前页面的地址当然是不可见的。
比较:
1.重定向的地址栏会发生变化,转发的地址栏不变.
2.重定向两次请求两次响应,转发一次请求一次响应.
增删改查&登录
1、在IUserDao中创建相应的接口
public interface IUserDao {
User findUserByUsername(String username);
List<User> findAll();
void deleteById(int id);
void add(User user);
User selectUserById(int id);
void update(User user);
}
2、在UserMapper中实现Dao接口,也就是对数据库进行操作
<mapper namespace="com.summer.dao.IUserDao">
<select id="findUserByUsername" parameterType="String" resultType="user">
select * from tb_user where username=#{username}
</select>
<select id="findAll" resultType="user">
select * from tb_user
</select>
<delete id="deleteById" parameterType="int">
delete from tb_user where id=#{id}
</delete>
<insert id="add" parameterType="user">
insert into tb_user(username,password) values (#{username},#{password})
</insert>
<select id="selectUserById" parameterType="int" resultType="user">
select * from tb_user where id =#{id}
</select>
<update id="update" parameterType="user">
update tb_user set username=#{username},password=#{password} where id =#{id}
</update>
</mapper>
3、在IUserService中声明服务的接口
public interface IUserService {
boolean login(String username,String password);
List<User> findAll();
void deleteById(int id);
void add(User user);
User selectUserById(int id);
void update(User user);
}
4、在UserServiceImpl中实现IUserService中声明的接口
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public boolean login(String username, String password) {
User user = userDao.findUserByUsername(username);
if(user!=null&&user.getPassword().equals(password)){
return true;
}
return false;
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public void deleteById(int id) {
userDao.deleteById(id);
}
@Override
public void add(User user) {
userDao.add(user);
}
@Override
public User selectUserById(int id) {
return userDao.selectUserById(id);
}
@Override
public void update(User user) {
userDao.update(user);
}
}
5、在UserController中控制不同页面的跳转。
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("login.do")
public ModelAndView login(String username,String password){
boolean flag = userService.login(username, password);
ModelAndView modelAndView=new ModelAndView();
if(flag){
modelAndView.setViewName("main");
}else {
modelAndView.setViewName("../failer");
}
return modelAndView;
}
@RequestMapping("findAll.do")
public ModelAndView findAll(){
List<User> users=userService.findAll();
ModelAndView modelAndView=new ModelAndView();
modelAndView.setViewName("user-list");
modelAndView.addObject("users",users);
return modelAndView;
}
@RequestMapping("deleteById.do")
public String delete(int id){
userService.deleteById(id);
return "redirect:findAll.do";
}
@RequestMapping("add.do")
public String add(User user){
userService.add(user);
return "redirect:findAll.do";
}
@RequestMapping("toUpdate.do")
public ModelAndView toUpdate(int id){
User user=userService.selectUserById(id);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("user",user);
modelAndView.setViewName("user-update");
return modelAndView;
}
@RequestMapping("update.do")
public String update(User user){
userService.update(user);
return "redirect:findAll.do";
}
}
登录
主界面-登录成功
用户管理-全部用户
用户管理-新建用户
用户管理-删除用户
用户管理-更新用户