- 在src- jdbc.properties中修改数据库名称、密码
- 运用mybatis generator修改 ->将8个java文件填入到: src- com.demo.po 中并创建ToString方法
- testmapper.xml改brand
- testdao.java改brand
- testservicelmpl.java改brand
- 此时打开浏览器,运行localhost:8080/demo/test,会显示界面
- 注意:
(1): 项目改名: 右键-> refactor
(2):在src写的代码, 编译后直接到webroot
(3):只要修改JAVA项目,必须重启服务器. 目的是:将新导入的jsp更新到服务器上
(4): jsp代码改之后可以直接运行,不用重启服务器
(5):在浏览器显示的界面按 F12可以进入调试页面(控制台/ 网络/...)
(6):java代码在html用<%%>
(6):$ 是EL表达式
本项目是前台+后台,由于有登陆界面,将其可转换为:登陆+前台+后台
- weboot新建两个文件夹: 后台admin( 导文件)+前台bbs (导文件)
- jsp页面结构: jsp可以加入java代码(html标签代表开始标签; head 代表头,引入静态资源,定义标题;body代表内容)
meta定义编码
link /结束,连接所有静态资源,可以多个link; href表示地址/css/babasport.css
,若换成相对地址../css/babasport.css
容易出错 ; 因此,我们统一换成绝对路径(相对于服务器地址):/css/babasport.css
改为<%=basePath%>bbs/css/babasport.css
其中,如何修改Eclipse中Web项目的jsp文件表头,自动加上basePath,可参考我的博客: https://blog.csdn.net/qq_37486501/article/details/93593070 - 商品展示界面的图片路径 换成绝对路径
<img src="<%=basePath%>bbs/images/t/t1/e1.jpg" alt="" />
- Mybatis执行过程: dao接口中的方法 —>去 mapper映射文件查数据库,并返回结果. 每一个表有唯一一个dao接口,写一个dao写一个mapper
(eg: 创建dao接口文件: ProductDao,写方法
po中的: 创建反向工具作用生成一个java类, 所有的信息,是返回值
其中dao的返回值是Product.java - 创建xml文件: ProductMapper.xml
ProductMapper.xml中
<mapper namespace="com.demo.dao.ProductDao">
<select id="getById"(id) parameterType (参数类型整形)resultType="">
select * from bbs_product where id=#{id} 取参数
</select>
<insert id=""></insert>
<update id=""></update>
<delete id=""></delete>
</mapper>
- 业务层Service层: 一个接口(可以实现多态父类子类) 一个实现(类)
- ProductService .java: 信息要返回给控制层
- 框架注解
@Service //业务层表示把下面的对象放到了spring容器中,
@Controller//控制层
@Repository//持久层,myBatis自动加上了
@Component//组件,不分层
@RequestMapping 请求映射,返回一个字符串,jsp页面名称给用户 - 控制层:springmvc: 单独的类; 里面有映射表 , 方法:查看商品信息
代码:
package com.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import com.demo.dao.ProductDao;
import com.demo.po.Product;
@Service
public class ProductServiceImpl implements ProductService{
@Autowired //依赖注入(DI)
ProductDao dao;
@Override
public Product getById(Integer id) {
return dao.getById(id);
}
}
package com.demo.action;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.demo.po.Product;
import com.demo.service.ProductService;
@Controller
public class ProductController {
@Autowired
ProductService service;
@RequestMapping("/getproduct")
public String getproduct(HttpServletRequest req){
Product p = service.getById(1);
System.out.println(p);
req.setAttribute("data", p);
return "bbs/portal/product"; //请求转发
}
}