最新要闻
- 世界热文:男子微波炉加热蛋白吃饭时爆炸 家属:很后怕 幸好还没吃进嘴里
- 焦点观察:95后考研落榜父母上岸疑似是营销旧文:当事人已删帖清号
- 今日精选:《狂飙》反派戏九成是香港导演拍摄 代表作《无间道》:网友惊叹
- 特斯拉召回3470辆汽车:广东又现失控连撞多车冲毁店门 潮州事故争议还在
- 天天观速讯丨资深教师称有学校已开始裁减英语老师:有专家称不支持取消英语主科地位建议
- 天天实时:黑曼巴科比还在吗_黑曼巴科比
- 焦点信息:“学雷锋” 护平安
- 绝了!民间大神将手机魔改成30000mAh电池:续航BT、可两周一充
- 【环球报资讯】可算盼到!苹果一大波春季新品要来了:黄色款iPhone 14在列
- 神速!Android 15全球首曝:代号“香草冰淇淋”相当甜美
- 正直播:感动中国2022年度人物盛典!名单揭晓:满满正能量
- 全球热资讯!代表谈中传硕士在火锅店当保洁:建议大学生先就业再择业
- 简讯:库存多到爆!今年才两个月 SSD价格就跌超3成:还会更便宜?
- 环球热点!男子高速公路狂飙120km/h看《狂飙》:不碰方向盘、不看正前方
- 小米平板6系列来了:外形、CPU配置大曝光!确认新增NFC
- 焦点速读:真心恐怖!南极洲深海拍到罕见冥河水母:触手约10米长
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球今日讯!day01-项目介绍+SSM环境搭建
项目介绍+SSM环境搭建
1.项目功能/界面
- SSM整合项目界面:使用Vue完成
- 技术栈:前后端分离开发,前端框架Vue3+后端框架SSM
- 前端框架-Vue3
- 后端框架-SSM(SpringMVC+Spring+MyBatis)
- 数据库-MySQL
- 项目依赖管理-Maven
- 分页-pagehelper
- 逆向工程-MyBatis Generator
- 其他...
2.项目基础环境搭建
2.1创建项目
(1)创建maven项目(注意配置maven的仓库镜像,不然创建的时候会很慢),File--New--Project--Maven
(2)手动创建java和test相关目录
【资料图】
(3)pom.xml文件中引入项目基本的jar包
UTF-8 1.8 1.8 junit junit 4.11 test org.springframework spring-webmvc 5.3.8 org.springframework spring-jdbc 5.3.8 org.springframework spring-aspects 5.3.8 org.mybatis mybatis 3.5.7 com.alibaba druid 1.2.6 mysql mysql-connector-java 5.1.49
(4)给项目配置Tomcat
(5)启动tomcat,测试成功
2.2项目全局配置web.xml
Archetype Created Web Application contextConfigLocation classpath:applictionContext.xml org.springframework.web.context.ContextLoaderListener springDispatcherServlet org.springframework.web.servlet.DispatcherServlet 1 springDispatcherServlet / characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 forceRequestEncoding true forceResponseEncoding true characterEncodingFilter /* hiddenHttpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter hiddenHttpMethodFilter /*
如果web.xml的
报红,选择只是高亮syntax即可,本身是没有问题的,只是DTD本身的约束
2.3SpringMVC配置
WEB-INF 目录下创建SpringMVC的配置文件 springDispatcherServlet-servlet.xml
文件的命名要根据上面web.xml的配置
2.4配置Spring和MyBatis,并完成整合
(1)在resource目录下创建jdbc.properties,配置连接mysql的信息
# The key value is arbitraryjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/furn_ssm?useSSL=true&useUnicode=true&characterEncoding=UTF-8jdbc.user=rootjdbc.pwd=123456
(2)在pom.xml文件引入mybatis整合spring的适配包
org.mybatis mybatis-spring 2.0.6
(3)在resource目录下创建 Spring 的配置文件 applicationContext.xml
右键-->New-->XML Configuration-->Spring Config
(4)在resource目录下创建mapper目录,存放xxxMapper.xml文件
(5)在resource目录下创建mybatis的配置文件 mybatis-config.xml(原因和上面一致,因为在spring配置文件中指定了路径)
2.5创建表,使用逆向工程生成Bean、XxMapper和XxMapper.xml
(1)创建数据库和表
-- 创建数据库CREATE DATABASE furn_ssm;USE furn_ssm;-- 创建家居表CREATE TABLE furn(`id` INT(11) PRIMARY KEY AUTO_INCREMENT, #id`name` VARCHAR(64) NOT NULL, #家居名`maker` VARCHAR(64) NOT NULL, #厂商`price` DECIMAL(11,2) NOT NULL, #价格`sales` INT(11) NOT NULL, #销量`stock` INT(11) NOT NULL, #库存`img_path` VARCHAR(256) NOT NULL #照片路径);-- 初始化家居数据INSERT INTO furn(`id` , `name` , `maker` , `price` , `sales` , `stock` , `img_path`) VALUES(NULL , "北欧风格小桌子" , "熊猫家居" , 180 , 666 , 7 , "assets/images/product-image/6.jpg");INSERT INTO furn(`id` , `name` , `maker` , `price` , `sales` , `stock` , `img_path`) VALUES(NULL , "简约风格小椅子" , "熊猫家居" , 180 , 666 , 7 , "assets/images/product-image/4.jpg");INSERT INTO furn(`id` , `name` , `maker` , `price` , `sales` , `stock` , `img_path`) VALUES(NULL , "典雅风格小台灯" , "蚂蚁家居" , 180 , 666 , 7 , "assets/images/product-image/14.jpg");INSERT INTO furn(`id` , `name` , `maker` , `price` , `sales` , `stock` , `img_path`) VALUES(NULL , "温馨风格盆景架" , "蚂蚁家居" , 180 , 666 , 7 , "assets/images/product-image/16.jpg");SELECT * FROM furn;
(2)使用MyBatis Generator 逆向生成bean mapper接口和mapper.xml
如果逆向工程生成的代码不能满足需求,再自己编写
2.1)修改Mybatis-config.xml,增加typeAliases别名配置,配置日志输出
2.2)在pom.xml引入MyBatis Generator包
org.mybatis.generator mybatis-generator-core 1.4.0
2.3)在项目目录下创建mbg.xml(mybatis generator),并参考文档进行配置
文档和模板:MyBatis Generator Core – MyBatis Generator XML Configuration File Reference
2.4)在test目录下创建一个MBGTest.java,该文件可以生成相关bean、mapper接口和mapper.xml
文件模板:MyBatis Generator Core – Running MyBatis Generator With Java
package com.li.furn.test;import org.junit.Test;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;import java.io.File;import java.util.ArrayList;import java.util.List;/** * @author 李 * @version 1.0 */public class MBGTest { @Test public void generator() throws Exception { List warnings = new ArrayList(); boolean overwrite = true; //这里根据自己的情况指定配置的 mbg.xml文件 //如果下面这样访问,需要将文件放在项目目录下 File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); }}
运行上述方法后,可以看到成功生成了指定的文件:这样我们就可以直接使用逆向工程成功的方法操作数据库,而不必在接口和映射文件来回编写代码。
(3)使用Junit测试Spring和MyBatis是否整合成功,能否通过MyBatis添加furn到数据库
3.1)修改bean:Furn.java,分别添加全参和无参构造器(略)
3.2)在test目录下增加测试文件,测试逆向工程生成的方法是否可用。
@Testpublic void insertSelective() { //初始化spring容器 ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml"); //获取到 FurnMapper的代理对象(类型=class com.sun.proxy.$Proxy17) FurnMapper furnMapper = ioc.getBean(FurnMapper.class); //添加数据 Furn furn = new Furn(null, "小电灯", "一等家居", new BigDecimal(66), 123, 45, "/assets/images/product-image/1.jpg"); int affected = furnMapper.insertSelective(furn); System.out.println("操作影响行数=" + affected + ",操作成功!");}
测试成功:
2.6注意事项和细节说明
关于逆向生成的方法中,insertSelective() 和 insert() 方法的区别:
- insertSelective-选择性保存数据
比如User中有三个字段:id,name,age,但是在插入数据时只设置了name字段:
User u = new User();u.setName("张三")insertSelective(u);
它在底层发出的sql语句为:insert into db_user (id,name) value (null,"张三");
,也就是说生成的sql的字段是有选择性的,会根据你设置的值来生成(ps:这里的id是自增长的)
- insert 则是无论设置多少个字段,统一都要添加一遍,即使是一个。如:
User u = new User();u.setName("张三")insert(u);
底层生成的sql语句为:insert into db_user (id,name,age) value (null,"张三",null,null)
因此在使用insert方法时要注意,如果表的字段不允许为null,调用方法时又没有设置值,就会出错。通常情况下推荐使用 insertSelective() 方法。
全球今日讯!day01-项目介绍+SSM环境搭建
快讯:送你5款免费好玩的小游戏-搜嗖工具箱
世界热文:男子微波炉加热蛋白吃饭时爆炸 家属:很后怕 幸好还没吃进嘴里
焦点观察:95后考研落榜父母上岸疑似是营销旧文:当事人已删帖清号
今日精选:《狂飙》反派戏九成是香港导演拍摄 代表作《无间道》:网友惊叹
特斯拉召回3470辆汽车:广东又现失控连撞多车冲毁店门 潮州事故争议还在
天天观速讯丨资深教师称有学校已开始裁减英语老师:有专家称不支持取消英语主科地位建议
天天实时:黑曼巴科比还在吗_黑曼巴科比
当前头条:Paper Reading: How good are query optimizers, really?
全球实时:使用ELRepo升级CentOS内核
天天热点!使用招商银行云直连服务提现
新动态:TCP通信聊天服务端和客户端(C/C++语言开发)附完整源码
焦点信息:“学雷锋” 护平安
绝了!民间大神将手机魔改成30000mAh电池:续航BT、可两周一充
【环球报资讯】可算盼到!苹果一大波春季新品要来了:黄色款iPhone 14在列
全球观热点:二叉树遍历的操作与实现
神速!Android 15全球首曝:代号“香草冰淇淋”相当甜美
正直播:感动中国2022年度人物盛典!名单揭晓:满满正能量
全球热资讯!代表谈中传硕士在火锅店当保洁:建议大学生先就业再择业
简讯:库存多到爆!今年才两个月 SSD价格就跌超3成:还会更便宜?
环球热点!男子高速公路狂飙120km/h看《狂飙》:不碰方向盘、不看正前方
小米平板6系列来了:外形、CPU配置大曝光!确认新增NFC
焦点速读:真心恐怖!南极洲深海拍到罕见冥河水母:触手约10米长
【世界热闻】无/低代码开发平台(产品)
跳过中考、高考、研考!15岁女生被西交大少年班录取:8年本硕连读
单踏板模式害死人?广东一特斯拉疑失控连撞多车冲毁店门 两人受伤现场惨
The Missing Semester - 第五讲 学习笔记
记录--在Vue3这样子写页面更快更高效
全球今日讯!打开MASA Blazor的正确姿势5:插槽
全球焦点!弯道超车成功!中国新能源汽车产销量全世界第一
每日关注!“准点下班被辞”女子申请赔偿一个月工资 公司回应:等仲裁结果
定位解析一个因脚本劫持导致webpack动态加载异常的问题
全球热文:python名称空间和作用域
天天实时:定位Dll加载异常的方法
环球热资讯!《进击的巨人》最终季完结篇开播 前篇拿下豆瓣9.7分:改编超越原作
核心部件100%国产!东风新一代商乘通用氢燃料电池产品完成
世界热文:同档网络无敌!一加Ace 2V搭载自研的游戏云专网技术
第五章 运输层
代表建议试行十二年义务教育:中考定终身太早 拒绝小学初中内卷
一男子和峨眉山猴子练搏击互殴 当事人回应:条件反射、请勿模仿
【全球新要闻】(数据库系统概论|王珊)第九章关系查询处理和关系优化-第二节:查询优化
轻松玩转Makefile | 企业项目级Makefile实例
精选! 《狂飙》“大嫂”高叶上手小米13:徕卡人像实拍样张美呆
天天时讯:3端通用!腾讯视频VIP会员年卡148元到手
当前快讯:董明珠称格力不看文凭只看能力:研究生到一线生产线非人才
济南动物园网红小黑猩猩“柒仔”去世:初步研判系突发疾病死亡
每日热议!奔驰4S店展车充新车 女子上门维权:被骗了、将走法律程序
天天快资讯丨突发!蔚来前实习生称遭同事强奸未遂 反被拒绝留用!公司:已成立调查组
“清籁”琴
环球观点:5-Nacos注册中心
灭蟑螂小窍门厨房_灭蟑螂小窍门
关于目录问题的总结-Python
天天即时看!实现js继承的几种方式以及他们的优缺点
今热点:AI修复图片画质和视频画质的方法
【热闻】数学建模(一):LP 问题
【新要闻】如何去除新家的甲醛_如何去除新家的甲醛
2023年2月随笔-难产的“学系列”
关注:乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 深入OpenAI与马斯克、微软的秘密,通过API轻松接入ChatGPT
天天热推荐:git clone的时候出现出现 fatal: unable to access 'https://github.com/...':OpenSSL
第125篇: 期约Promise基本特性
环球速递!kong和konga的安装部署
视焦点讯!腾讯云短信的使用方法
06while循环
环球热头条丨外星人AW620M无线鼠标上市:26000 DPI、140小时长续航
世界简讯:PC优化翻车!《卧龙:苍天陨落》官方道歉:将尽快推出更新补丁
环球头条:多线程全面总结
怎么注册微信公众号?
Pro版同款!荣耀Magic5至臻版影像泄露:5000万像素旗舰三摄
今日要闻!《LOL》英雄价格正式调整!全面下调
全球热议:理想L9车主实惨:白天打开星环模式灯 扣1分罚款100元?
iPhone良品率不足50%也不怕 富士康又在印度设立新工厂
小鹏汽车欲靠P7“回血”:老款清库再降3.5万、新车下周上市
降价后真香了!特斯拉中国2月销量出炉:暴涨130%
9.98万起杀疯!比亚迪王朝系列2月销量超10万台:秦PLUS贡献3成
2月新能源汽车销量榜:比亚迪一家占比近4成 第三名暴走
世界资讯:委员蒋胜男谈35岁职场危机:根源是“996” 必须改变
今日讯!中国性能车!全新领克03 TCR赛车官图发布:售价超百万
排查系统执行SQL与数据库直接执行结果不一致的问题
每日资讯:详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路
记录--手摸手带你撸一个拖拽效果
天天讯息:VSCode官方的配置同步方案
快报:144MB缓存立大功 AMD锐龙7000X3D内存自由:4800都稳赢i9
环球观点:AMD RX 7900 XT价格全面雪崩:沦落到RTX 4070 Ti的级别
《旷野之息》发售6周年:续作《塞尔达传说:王国之泪》发布新预告
当前视点!中国围棋第一人易主!李轩豪超越柯洁 AI立大功
环球快讯:vivo推出“手语翻译官”应用:准确率可达80%以上
网络通信——TCP “三次握手“、“四次挥手“ 详解
PHP语言在线代码运行编译工具推荐
今日报丨JavaScript 回调函数属于闭包?
全球快看:ChatGPT开放API,上来就干到最低价,可以人手一个ChatGPT了
全球新动态:Spring事务使用注意事项
【全球独家】限制儿童支付金额方便了!微信青少年模式升级:一键开启上线
三排七座!仰望U8内饰曝光:比亚迪首款百万豪车来了
世界热门:刚失败一次后 日本不放弃:新一代运载火箭尝试再度发射
热到离谱?首个冲上20℃的北方省会诞生 下周或破30℃
欧洲2035年禁售燃油车要黄?德国公然反对!意大利:我也不同意
环球精选!登月用!中国新一代载人火箭预计2027年首飞
天天即时:《狂飙》“大嫂”高叶上手小米13:女神持机美如画
全球观速讯丨火山引擎 DataTester:A/B 实验如何实现人群智能化定向?
环球快资讯丨Redis分布式锁常见坑点分析