先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
在新增或者修改项目后,要记得保存,保存后下次可以复用
3.3 配置项
为了更好的发掘生成器的功能,我们可以灵活的运用配置项的功能。
C/C++属性配置示例:
C# / Javas程序配置示例:
通用配置
- 命名 :系统、对象等命名时候,请避免使用特殊字符:
# ¥ % & ^ ) - = + : " ' } ]【】~!? . , < > / 、
等 - 中文名 用于对象名或属性名的描述,这样生成的系统注释才会齐全。例:管理员
- 是否查询 增删改查的查找功能中,如果查询设为【是】,则该属性会作为查询条件,例:可以通过姓名来查找学生
- 是否统计 系统查询功能中,对于查出的数据会进行自动统计,例:每天的营业额设为统计,将自动对查询出来的数据求和
- 是否平均 系统查询功能中,对于查出的数据会进行自动平均,例:学生身高设为平均,将自动显示平均身高
- 更新页显示 修改/更新的时候,这个字段显示,例:我想让学生学号不可修改,我就可以设为否,默认是否
- 可更新 是否可以更新这个字段,如果设为否,C#和Java 将会设为不可修改
- 字段唯一 比如学号、身份证号码,他们是不会重复的字段,应该设为字段唯一。
- 数据类型 C/C++的数据类型为
char
的时候,请在属性名后面加上长度,java和c#则不需要添加后缀[n]
,n表示字符数组长度
- 最大长度 是C#和Java才有的配置,只有数据类型是String才生效。类似于c语言属性名的后缀,表示这个字段最长长度,一般用默认的255即可
- 不为空 必填,例如:姓名为必填项
- 配置下拉框 当下拉框的有值的时候,输入框会变成自动下拉框。例如:性别为 男、女
- 默认值 新增的时候,默认会给这个属性赋值,在C语言和其他语言中有所不同,要注意。
例1:【字符串】例如我想名族默认是汉族:那么要填"汉族"
,要加双引号,类似于string family = “汉族”;填的是 = 后面的内容
。
例2:【数字】数量默认是100:填100
例3:【时间】窗体生成分为Java和C#窗体,在java和C#中都有时间类型,Java的默认时间是new Date()
,而C#的为DateTime.Now.ToString()
,这时为了统一配置,我用通配符来代替他们。例如我要设默认时间为当前时间,则填{time.now}
(这是我自己制定的规则),生成的时候,他们会判断这是java、C#项目来自动设置默认值。 - 外键
这一个内容要单独理解,配置简单,但是功能比较多,拿下图的学生成绩管理系统
来说:
前提是我们已经添加了学生:Student
对象和课程:Course
对象,现在添加这个成绩对象
1、 看下图,课程和学生对应的外键已经填上了内容,这个意思指的是,学生成绩管理系统
必须先添加学生和课程,才能添加成绩,没有学生和课程,哪来的成绩对吧?
2、 自动设置权限,这个学生,如果【是登陆用户】,那么学生登陆后,是只能查看自己的成绩的,这个用处很多,很重要。例如:借阅系统中,我们希望读者只能看到自己的借阅记录。
3、 便利的查询,在C#和Java中的查询框是可以设置为下拉框的,以下例子中,因为课程和学生都是外键而且他们是查询条件,所以生成的成绩管理系统,在查成绩的时候,可以通过下拉框来选择查询某个学生、课程的成绩。
部分代码
public class MainView extends JFrame {
JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton addBtn = new JButton("增加");
JButton updateBtn = new JButton("修改");
JButton delBtn = new JButton("删除");
JTextField searchTxt = new JTextField(15);
JButton searchBtn = new JButton("查询");
JPanel southPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton preBtn = new JButton("上一页");
JButton nextBtn = new JButton("下一页");
MainViewTable mainViewTable = new MainViewTable();
private int pageNo = 1;
private int pageSize = 10;
MainViewHandler mainViewHandler;
public MainView() {
super("主界面-Java学生成绩管理");
Container contentPane = getContentPane();
Rectangle bounds = DimensionUtil.getBounds();
pageSize = Math.floorDiv(bounds.height, 35);
mainViewHandler = new MainViewHandler(this);
// 放置北边的组件
layoutNorth(contentPane);
// 设置中间的jtable
layoutCenter(contentPane);
// 放置南边的组件
layoutSouth(contentPane);
// 自定义图标
URL imgUrl = MainView.class.getClassLoader().getResource("learnIcon.jpg");
setIconImage(new ImageIcon(imgUrl).getImage());
// 根据屏幕大小设置主界面大小
setBounds(bounds);
// 设置窗体完全充满整个屏幕的可见大小
setExtendedState(JFrame.MAXIMIZED_BOTH);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(true);
setVisible(true);
}
private void layoutCenter(Container contentPane) {
TableDTO dto = getTableDTO();
MainViewTableModel mainViewTableModel = MainViewTableModel.assembleModel(dto.getData());
// 把jtable和model关联
mainViewTable.setModel(mainViewTableModel);
mainViewTable.renderRule();
JScrollPane jScrollPane = new JScrollPane(mainViewTable);
contentPane.add(jScrollPane, BorderLayout.CENTER);
showPreNext(dto.getTotalCount());
}
private TableDTO getTableDTO() {
StudentService studentService = new StudentServiceImpl();
StudentRequest request = new StudentRequest();
request.setPageNo(pageNo);
request.setPageSize(pageSize);
request.setSearchKey(searchTxt.getText().trim());
TableDTO tableDTO = studentService.retrieveStudents(request);
return tableDTO;
}
private void layoutSouth(Container contentPane) {
preBtn.addActionListener(mainViewHandler);
nextBtn.addActionListener(mainViewHandler);
southPanel.add(preBtn);
southPanel.add(nextBtn);
contentPane.add(southPanel, BorderLayout.SOUTH);
}
/\*
设置上一页下一页是否可见
\*/
private void showPreNext(int totalCount) {
if (pageNo == 1) {
preBtn.setVisible(false);
} else {
preBtn.setVisible(true);
}
int pageCount = 0;
if (totalCount % pageSize == 0) {
pageCount = totalCount / pageSize;
} else {
pageCount = totalCount / pageSize + 1;
}
if (pageNo > pageCount) {
pageNo = pageCount;
} else if (pageNo < 1) {
pageNo = 1;
}
if (pageNo == pageCount) {
nextBtn.setVisible(false);
} else {
nextBtn.setVisible(true);
}
}
private void layoutNorth(Container contentPane) {
// 增加事件监听
addBtn.addActionListener(mainViewHandler);
updateBtn.addActionListener(mainViewHandler);
delBtn.addActionListener(mainViewHandler);
searchBtn.addActionListener(mainViewHandler);
northPanel.add(addBtn);
northPanel.add(updateBtn);
northPanel.add(delBtn);
northPanel.add(searchTxt);
northPanel.add(searchBtn);
contentPane.add(northPanel, BorderLayout.NORTH);
}
public static void main(String[] args) {
new MainView();
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageNo() {
return pageNo;
}
public void reloadTable() {
TableDTO dto = getTableDTO();
MainViewTableModel.updateModel(dto.getData());
mainViewTable.renderRule();
showPreNext(dto.getTotalCount());
}
public long[] getSelectedStudentIds() {
int[] selectedRows = mainViewTable.getSelectedRows();
long[] ids = new long[selectedRows.length];
for (int i = 0; i < selectedRows.length; i++) {
int rowIndex = selectedRows[i];
Object idObj = mainViewTable.getValueAt(rowIndex, 0);
ids[i] = Long.parseLong(idObj.toString());
}
return ids;
}
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/8b35063cf3b8ab1e2aa0c6321e8f1337.png)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-umcnTPX7-1713302512725)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**