Java EE开发系列教程 - 添加JPA模块,mysql面试基础知识

notebookRoot

0.0.1-SNAPSHOT

pom

org.wildfly.bom

wildfly-javaee7

import

pom

10.1.0.Final

…/notebook

…/notebookDomain

…/notebookEAR

<packaging>此项目为pom形式,只用来提供pom.xml文件供子模块继承。

<dependencyManagement>使用wildfly bom 来管理wildfly的依赖库。Wildfly bom也是一个pom类型的项目,其中定义了wildfly所有的依赖库。import scope 是说此pom继承自wildfly bom。这样做可以避免在每个模块的pom.xml中定义版本号,以免引起混乱。

<modules> 标签引用其他子模块,运行maven的目标也会在这些子模块中同时运行 notebookDomain 和notebookEAR 模块会在下面创建。

更新JSF模块

=======

由于更新了项目结构,上次创建的JSF模块需要做一些改动,新的pom.xml文件:

4.0.0

com.zxuqian

notebook

war

com.zxuqian

notebookRoot

0.0.1-SNAPSHOT

…/notebookRoot/pom.xml

maven-compiler-plugin

3.5.1

1.8

1.8

maven-war-plugin

3.0.0

WebContent

org.jboss.spec.javax.faces

jboss-jsf-api_2.2_spec

provided

注意 <parent> 标签, 引用自notebookRoot根模块。 依赖更改为wildfly bom中提供的 org.jboss.spec.javax.faces.jboss-jsf-api_2.2_spec

安装 MySQL 数据库

============

请参考MySQL官方网站如何安装: https://dev.mysql.com/doc/refman/5.7/en/osx-installation-pkg.html

基本只需下载一个安装包,双击运行。这里用的版本为MySQL 5.7。

创建JDBC Resource

===============

首先下载mysql jdbc 连接驱动: https://dev.mysql.com/downloads/connector/j/

解压缩下载的文件,其中 mysql-connector-java-5.1.40-bin.jar 即为驱动。

首次启动Wildfly之前需要添加用户才能登录管理界面,在命令行中运行:

/Users/zxuqian/development/tools/wildfly-10.1.0.Final/bin/add-user.sh

根据提示创建管理用户。

从命令行中启动Wildfly:

/Users/zxuqian/development/tools/wildfly-10.1.0.Final/bin/standalone.sh

登录到管理界面: http://localhost:9990

在欢迎界面点击Deploy an Application旁边的 start。我们需要先把MySQL的jdbc驱动部署到Wildfly。在随后出现的页面中,点击 Add 。

选择Upload a new deployment。点击Next。

选择解压得到的jar文件。点击Next。

保持默认,点击Finish。

回到首页,点击Create a datasource旁边的start链接。在随后出现的页面中选择 Subsystems -> Datasources -> Non-XA。点击右边的 Add。

选择MySQL datasource. 点击Next。

指定一个Datasource名称和JNDI名称。 JNDI 名称十分重要,会在JPA连接到JDBC Resource的时候用到。点击Next。

选择Detected driver并选择第一个检测出来的驱动。点击next。

定义连接 URL。这里我创建的数据库名称为notebook,在配置URL之前,先在mysql中使用“create database notebook”命令创建此数据库。指定MySQL用户名和密码之后,点击next。

查看配置概要,如果正确点击finish。

可通过下图的方式测试是否连接成功:

如果成功连接到数据库,会弹出下图提示框:

创建JPA module

============

从IntelliJ中创建一个Maven 模块。使用下图所示的groupId, artifactId, 并选择择之前所创建的notebookRoot做为父项目: com.zxuqian:notebookRoot:0.0.1-SNAPSHOT

创建完成后,修改pom.xml文件内容:

4.0.0

com.zxuqian

notebookDomain

jar

com.zxuqian

notebookRoot

0.0.1-SNAPSHOT

…/notebookRoot/pom.xml

maven-compiler-plugin

3.5.1

1.8

1.8

org.hibernate.javax.persistence

hibernate-jpa-2.1-api

provided

此模块打包为Jar项目,为Java EE所要求的JPA模块打包结构。

因为wildfly运行环境提供JPA实现,所以这里JPA依赖的scope为provided,仅在编译时提供。

创建一个 Entity


Entity是Java对象和数据库表建立关系的桥梁,使用JPA注解来配置如何生成对应的数据库表。首先创建一个class,类名为User,并填入如下代码:

package com.zxuqian.notebook.domain;

import java.io.Serializable;

import java.util.Date;

import javax.persistence.*;

/**

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

总结

我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。

这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。

大家可以把Java基础,JVM,并发编程,MySQL,Redis,Spring,Spring cloud等等做一个知识总结以及延伸,再去进行操作,不然光记是学不会的,这里我也提供一些脑图分享给大家:

希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

338)]

[外链图片转存中…(img-tXpM9Wza-1712182450338)]

[外链图片转存中…(img-i9OgIfLY-1712182450338)]

希望你看完这篇文章后,不要犹豫,抓紧学习,复习知识,准备在明年的金三银四拿到心仪的offer,加油,打工人!

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值