本文提供了全面的JAVA副业学习指南,从入门到实战,涵盖了安装Java环境、基础语法、数据类型、控制结构、类与对象等核心知识点。同时,文章还介绍了Java Web开发、数据库操作、Spring Boot框架入门以及项目实战等内容,旨在帮助读者掌握JAVA技术并顺利开展JAVA副业学习。
Java副业学习:从入门到初级实战指南 Java基础入门Java简介与安装
Java 是一种广泛使用的编程语言和计算平台,支持跨平台开发,可以在任何具备Java虚拟机(JVM)的设备上运行。Java语言的设计目标是简单、面向对象、分布、解释、健壮、安全、结构中立和可移植。它可以用于开发各种类型的软件,包括桌面应用程序、移动应用、Web应用、游戏等。
Java开发环境的安装包括安装Java开发工具包(JDK)和选择合适的集成开发环境(IDE)。JDK是Java开发工具包的简称,包括Java虚拟机(JVM)、Java编译器(javac)和Java运行时环境(JRE)。
安装Java JDK
- 访问官方网站下载JDK:https://www.oracle.com/java/technologies/javase-downloads.html 或者使用OpenJDK:https://openjdk.java.net/install/
- 根据操作系统选择合适的安装包。
- 安装过程中,选择合适的安装路径,并确保“添加到环境变量”选项被勾选。
- 安装完成后,可以通过命令行验证安装是否成功,输入
java -version
。
安装IDE
推荐使用 IntelliJ IDEA 或 Eclipse。
-
IntelliJ IDEA
- 访问 IntelliJ IDEA 官网下载页面:https://www.jetbrains.com/idea/download/
- 选择合适的安装包并进行安装。
- 安装完成后,打开 IntelliJ IDEA 并选择合适的安装选项。
-
Eclipse
- 访问 Eclipse 官网下载页面:https://www.eclipse.org/downloads/
- 选择合适的安装包并进行安装。
- 安装完成后,打开 Eclipse 并选择合适的安装选项。
Java开发环境搭建
开发环境搭建包括安装Java开发工具包(JDK)、选择合适的集成开发环境(IDE),并配置环境变量。
安装JDK
- 安装JDK步骤已在上面介绍。
- 确保环境变量已设置正确。例如,在Windows系统中,需要将JDK的
bin
目录添加到系统环境变量PATH
中。 - 通过命令行验证安装:
java -version
。
安装IDE
选择合适的IDE进行安装,例如 IntelliJ IDEA 或 Eclipse。
- 在 IDE 中创建一个新的Java项目。
- 配置项目所需的库和依赖。
- 在 IDE 中配置Java编译器和运行环境。
配置环境变量
在Windows系统中,系统环境变量PATH
需要包含JDK的bin
目录,以确保Java命令可以被系统识别。
- 打开环境变量设置界面:
控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 环境变量
。 - 在“系统变量”中找到
Path
,点击编辑。 - 添加JDK的
bin
目录路径,例如C:\Program Files\Java\jdk-18.0.1\bin
。 - 点击确定,完成环境变量配置。
Java基本语法
Java 语言的基本语法包括变量声明、语句和注释。
变量声明
在Java中,变量的声明包括数据类型、变量名和可选的初始化值。
int number = 5; // 整型变量
double decimal = 3.14; // 浮点型变量
boolean flag = true; // 布尔型变量
char letter = 'a'; // 字符型变量
String text = "Hello"; // 字符串型变量
语句
Java中的语句用于执行特定的操作,如赋值、条件判断、循环等。
// 赋值语句
int x = 10;
x = x + 2; // 等价于 x += 2
// 条件语句
if (x > 5) {
System.out.println("x is greater than 5");
} else {
System.out.println("x is less than or equal to 5");
}
// 循环语句
for (int i = 0; i < 5; i++) {
System.out.println("i: " + i);
}
注释
注释用于解释代码,不被执行。
// 单行注释
int y = 20; // 这是变量 y 的声明
/*
多行注释
可以跨越多行
*/
/**
* JavaDoc 注释
* 用于生成 API 文档
*/
public void exampleMethod() {
// 方法体
}
常用数据类型与变量
Java的数据类型分为基本数据类型和引用数据类型。
基本数据类型
基本数据类型包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。
byte b = 127; // 字节型
short s = 32767; // 短整型
int i = 2147483647; // 整型
long l = 9223372036854775807L; // 长整型
float f = 3.14f; // 浮点型
double d = 3.14159265359; // 双精度浮点型
char c = 'A'; // 字符型
boolean flag = true; // 布尔型
引用数据类型
引用数据类型包括数组、类和接口等。
// 数组示例
int[] numbers = {1, 2, 3, 4, 5};
// 类示例
class Person {
String name;
int age;
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
// 接口示例
interface Animal {
void eat();
void sleep();
}
控制结构(条件语句和循环语句)
Java 中的控制结构包括条件语句(if-else、switch)和循环语句(for、while、do-while)。
条件语句
int x = 5;
if (x > 3) {
System.out.println("x is greater than 3");
} else if (x == 3) {
System.out.println("x is equal to 3");
} else {
System.out.println("x is less than 3");
}
switch (x) {
case 1:
System.out.println("x is 1");
break;
case 2:
System.out.println("x is 2");
break;
default:
System.out.println("x is not 1 or 2");
}
循环语句
// for 循环
for (int i = 0; i < 5; i++) {
System.out.println("i: " + i);
}
// while 循环
int j = 0;
while (j < 5) {
System.out.println("j: " + j);
j++;
}
// do-while 循环
int k = 0;
do {
System.out.println("k: " + k);
k++;
} while (k < 5);
方法定义与调用
方法定义包括方法名、返回类型、参数列表和方法体。
// 无参数无返回值的方法
public void sayHello() {
System.out.println("Hello");
}
// 有参数有返回值的方法
public int add(int a, int b) {
return a + b;
}
// 调用方法
sayHello();
int result = add(2, 3);
System.out.println("Result: " + result);
类与对象
Java 是一种面向对象的编程语言,类和对象是其核心概念。
类
public class Person {
// 成员变量
String name;
int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 成员方法
public void introduce() {
System.out.println("My name is " + name + ", I am " + age + " years old.");
}
}
对象
public class Main {
public static void main(String[] args) {
// 创建对象
Person person1 = new Person("Alice", 25);
Person person2 = new Person("Bob", 30);
// 调用对象的方法
person1.introduce(); // 输出: My name is Alice, I am 25 years old.
person2.introduce(); // 输出: My name is Bob, I am 30 years old.
}
}
封装、继承、多态基础
封装
封装是将数据(成员变量)和操作数据的方法(成员方法)封装到一个类中,防止数据被外部直接访问。
public class Person {
private String name; // 私有成员变量
private int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 公有成员方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void introduce() {
System.out.println("My name is " + name + ", I am " + age + " years old.");
}
}
继承
继承是面向对象编程中一个重要的特性,它允许一个类继承另一个类的属性和方法。
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void bark() {
System.out.println(name + " is barking.");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("Rex");
dog.eat(); // 输出: Rex is eating.
dog.bark(); // 输出: Rex is barking.
}
}
多态
多态是面向对象编程中的一个重要概念,它允许子类对象被赋值给父类变量。
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void bark() {
System.out.println(name + " is barking.");
}
}
public class Main {
public static void main(String[] args) {
// 多态示例
Animal animal = new Dog("Rex");
animal.eat(); // 输出: Rex is eating.
// 调用Dog特有的方法
((Dog) animal).bark(); // 输出: Rex is barking.
}
}
Java开发工具使用
常用IDE介绍(IntelliJ IDEA、Eclipse等)
IntelliJ IDEA
IntelliJ IDEA 是一款由 JetBrains 开发的 Java 开发环境,它是目前最受欢迎的 Java IDE 之一。
-
安装 IntelliJ IDEA:
- 访问 JetBrains 官网下载页面:https://www.jetbrains.com/idea/download/
- 选择合适的安装包并进行安装。
- 安装完成后打开 IntelliJ IDEA,并选择合适的安装选项。
-
创建新项目:
- 打开 IntelliJ IDEA,选择“Create New Project”。
- 选择“Java”项目类型,配置项目名和项目路径,点击“Next”。
- 配置 JDK 版本,点击“Finish”。
- 配置项目属性:
- 打开“File” -> “Project Structure”。
- 配置项目 SDK 和库路径。
Eclipse
Eclipse 是一款流行的 Java IDE,由 Eclipse 基金会开发和维护。
-
安装 Eclipse:
- 访问 Eclipse 官网下载页面:https://www.eclipse.org/downloads/
- 选择合适的安装包并进行安装。
- 安装完成后打开 Eclipse,并选择合适的安装选项。
-
创建新项目:
- 打开 Eclipse,选择“File” -> “New” -> “Java Project”。
- 配置项目名和项目路径,点击“Next”。
- 配置 JDK 版本,点击“Finish”。
- 配置项目属性:
- 打开“Project” -> “Properties”。
- 配置项目 SDK 和库路径。
代码编辑和调试技巧
代码编辑技巧
- 代码补全:IDE 通常提供智能代码补全功能,可以在输入代码时自动补全。
- 重构支持:IDE 提供丰富的重构功能,如重命名、提取方法、内联变量等。
- 代码导航:IDE 提供代码导航功能,如跳转到定义、查找使用等。
调试技巧
- 设置断点:在代码中设置断点,程序运行到断点处会暂停。
- 单步执行:在断点处逐行执行代码,观察变量值变化。
- 查看变量值:在调试模式下,查看变量的当前值。
- 查看调用堆栈:查看当前程序的调用堆栈,了解函数调用顺序。
- 条件断点:设置条件断点,只有满足条件时才会触发断点。
版本控制工具(Git)入门
Git 安装与配置
-
安装 Git:
- 访问 Git 官网下载页面:https://git-scm.com/downloads
- 选择合适的安装包并进行安装。
- 安装完成后打开 Git Bash 或命令行工具。
- 配置 Git 用户信息:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Git 基本操作
- 初始化仓库:
git init
- 添加文件到仓库:
git add .
- 提交更改:
git commit -m "commit message"
- 查看状态:
git status
- 查看提交历史:
git log
- 克隆仓库:
git clone <repository-url>
- 拉取最新更改:
git pull
- 推送更改:
git push
Git 代码示例
# 创建新的Git仓库
git init
# 添加文件到仓库
git add .
# 提交更改
git commit -m "Add initial files"
# 拉取最新更改
git pull origin main
# 推送更改
git push origin main
Java Web开发入门
HTTP协议基础
HTTP(HyperText Transfer Protocol)是互联网上应用最广泛的一种网络协议,用于客户端与服务器之间的交互。
-
HTTP 请求方法:
GET
:用于请求数据。POST
:用于提交数据。PUT
:用于更新数据。DELETE
:用于删除数据。HEAD
:用于获取响应头。OPTIONS
:用于获取支持的方法。TRACE
:用于追踪请求。
- HTTP 状态码:
200 OK
:请求成功。201 Created
:资源创建成功。204 No Content
:请求成功,但响应没有主体内容。301 Moved Permanently
:资源永久移动。302 Found
:资源临时移动。400 Bad Request
:请求语法错误。401 Unauthorized
:未授权。403 Forbidden
:服务器理解请求但拒绝执行。404 Not Found
:资源未找到。500 Internal Server Error
:服务器内部错误。
Servlet与JSP简介
Servlet
Servlet 是运行在服务器端的 Java 类,它能够接收客户端请求并生成响应。
-
创建 Servlet:
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class HelloWorldServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); response.getWriter().println("<h1>Hello, World!</h1>"); } }
- 配置 Servlet:
在web.xml
文件中配置 Servlet 的映射。<web-app> <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.example.HelloWorldServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
JSP
JSP(JavaServer Pages)是一种用来创建动态网页的标准 Java 技术。
-
创建 JSP 文件:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World</title> </head> <body> <h1>Hello, World!</h1> </body> </html>
- 配置 JSP 文件:
在web.xml
文件中配置 JSP 文件的映射。<web-app> <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>xpowered-by</param-name> <param-value>false</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> </web-app>
Java Web应用开发流程
创建 Web 项目
-
创建 Maven 项目:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>web-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> </dependencies> </project>
-
创建 Servlet 和 JSP 文件:
- 创建 Servlet 文件。
- 创建 JSP 文件。
- 配置
web.xml
文件。
-
打包项目:
mvn clean package
- 部署项目:
将打包生成的 WAR 文件部署到 Web 服务器(如 Tomcat)。
部署到 Web 服务器
-
配置 Tomcat:
- 将生成的 WAR 文件放入 Tomcat 的
webapps
目录。 - 启动 Tomcat 服务器。
- 将生成的 WAR 文件放入 Tomcat 的
- 访问 Web 应用:
- 打开浏览器,访问
http://localhost:8080/your-app-name
。
- 打开浏览器,访问
Spring Boot框架入门
创建 Spring Boot 项目
-
使用 Spring Initializr 创建新项目:
- 访问 Spring Initializr 网站:https://start.spring.io/
- 选择项目类型、语言和依赖库(如 Web、Thymeleaf、JDBC)。
- 创建项目并下载。
-
导入项目到 IDE:
- 将下载的项目导入 IntelliJ IDEA 或 Eclipse。
- 配置 Spring Boot 应用:
- 编写主类
Application.java
。 - 配置
application.properties
或application.yml
文件。 - 创建控制器类
HelloController.java
。
- 编写主类
示例代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@RestController
public class HelloController {
@GetMapping("/")
public String hello() {
return "Hello, World!";
}
}
运行 Spring Boot 应用
-
运行主类:
- 在 IDE 中运行
Application
类的main
方法。
- 在 IDE 中运行
- 访问应用:
- 打开浏览器,访问
http://localhost:8080/
。
- 打开浏览器,访问
前后端分离开发简介
前后端分离架构
前后端分离架构将前端和后端开发分离,前端负责页面渲染和用户交互,后端负责数据处理和业务逻辑。
-
前端技术栈:
- 前端框架(React、Vue.js、Angular)。
- 前端构建工具(Webpack、Gulp、Grunt)。
- 前端状态管理(Redux、Vuex)。
- 后端技术栈:
- 后端框架(Spring Boot、Django、Flask)。
- 数据库(MySQL、PostgreSQL、MongoDB)。
- 服务端渲染(JSP、Thymeleaf)。
示例代码
前端(React 示例):
import React from 'react';
import ReactDOM from 'react-dom';
function App() {
return (
<div>
<h1>Hello, World!</h1>
</div>
);
}
ReactDOM.render(<App />, document.getElementById('root'));
后端(Spring Boot 示例):
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@RestController
public class HelloController {
@GetMapping("/")
public String hello() {
return "Hello, World!";
}
}
Java数据库操作入门
SQL语言基础
SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言。
基本语法
-
创建表:
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100), age INT, department VARCHAR(100) );
-
插入数据:
INSERT INTO employees (id, name, age, department) VALUES (1, 'Alice', 25, 'IT');
-
查询数据:
SELECT * FROM employees;
-
更新数据:
UPDATE employees SET age = 26 WHERE id = 1;
- 删除数据:
DELETE FROM employees WHERE id = 1;
示例代码
-- 创建表
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT,
department VARCHAR(100)
);
-- 插入数据
INSERT INTO employees (id, name, age, department) VALUES (1, 'Alice', 25, 'IT');
-- 查询数据
SELECT * FROM employees;
-- 更新数据
UPDATE employees SET age = 26 WHERE id = 1;
-- 删除数据
DELETE FROM employees WHERE id = 1;
JDBC编程
JDBC(Java Database Connectivity)是 Java 用于数据库连接的标准接口。
示例代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "password";
try {
// 1. 获取连接
Connection conn = DriverManager.getConnection(url, user, password);
// 2. 创建 SQL 语句
String sql = "INSERT INTO employees (id, name, age, department) VALUES (?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 1);
pstmt.setString(2, "Bob");
pstmt.setInt(3, 28);
pstmt.setString(4, "Sales");
pstmt.executeUpdate();
// 3. 查询数据
sql = "SELECT * FROM employees";
ResultSet rs = conn.createStatement().executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getInt("age") + " " + rs.getString("department"));
}
// 4. 关闭资源
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
数据库连接池与事务处理
数据库连接池
数据库连接池是一种管理数据库连接的技术,它可以显著提高应用程序的性能和稳定性。
- 连接池实现:
- HikariCP
- C3P0
- Druid
示例代码
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class ConnectionPoolExample {
public static void main(String[] args) {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("root");
config.setPassword("password");
HikariDataSource ds = new HikariDataSource(config);
try (Connection conn = ds.getConnection()) {
// 使用数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
事务处理
事务处理确保数据库操作的一致性和完整性。
-
事务属性:
ACID
属性(原子性、一致性、隔离性、持久性)。
- 事务操作:
begin transaction
commit transaction
rollback transaction
示例代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TransactionExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "root";
String password = "password";
try {
// 1. 获取连接
Connection conn = DriverManager.getConnection(url, user, password);
conn.setAutoCommit(false); // 开启事务
// 2. 执行 SQL
String sql = "INSERT INTO employees (id, name, age, department) VALUES (?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 1);
pstmt.setString(2, "Alice");
pstmt.setInt(3, 25);
pstmt.setString(4, "IT");
int rows = pstmt.executeUpdate();
if (rows > 0) {
conn.commit(); // 提交事务
} else {
conn.rollback(); // 回滚事务
}
// 3. 关闭资源
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
ORM框架Hibernate简述
ORM(Object-Relational Mapping)框架用于将对象映射到关系数据库。
Hibernate 特性
- 对象映射:将 Java 对象映射到数据库表。
- 事务管理:提供事务处理支持。
- 缓存机制:提供数据缓存机制,提高性能。
- 查询语言:提供 HQL(Hibernate Query Language)查询语言。
示例代码
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateExample {
public static void main(String[] args) {
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
Employee employee = new Employee();
employee.setId(1);
employee.setName("Alice");
employee.setAge(25);
employee.setDepartment("IT");
session.save(employee);
session.getTransaction().commit();
session.close();
sessionFactory.close();
}
}
public class Employee {
private int id;
private String name;
private int age;
private String department;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
}
MyBatis基础
MyBatis 是 Java 程序员常用的一种持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 特性
- 配置灵活:支持 XML 和注解两种配置方式。
- 映射灵活:支持自定义 SQL 语句和存储过程。
- 缓存机制:提供一级缓存和二级缓存。
- 插件扩展:支持自定义插件扩展功能。
示例代码
<!-- MyBatis 配置文件 -->
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/example/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
<!-- 映射文件 -->
<mapper namespace="com.example.mapper.EmployeeMapper">
<insert id="insertEmployee">
INSERT INTO employees (id, name, age, department) VALUES (#{id}, #{name}, #{age}, #{department})
</insert>
</mapper>
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisExample {
public static void main(String[] args) {
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("mybatis-config.xml"));
try (SqlSession session = factory.openSession()) {
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee employee = new Employee();
employee.setId(1);
employee.setName("Alice");
employee.setAge(25);
employee.setDepartment("IT");
mapper.insertEmployee(employee);
session.commit();
}
}
}
public interface EmployeeMapper {
void insertEmployee(Employee employee);
}
Java项目实战
简单项目选题建议
选择简单的项目主题,以便在学习过程中能够更好地理解概念和技巧。
-
图书管理系统:
- 功能:添加、删除、查询图书信息。
- 技术:Java、JDBC、MySQL。
- 示例代码
import java.util.Scanner;
public class BookManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Welcome to the Book Manager!");
System.out.println("1. Add Book");
System.out.println("2. Delete Book");
System.out.println("3. Search Book");
System.out.print("Enter your choice: ");
int choice = scanner.nextInt();switch (choice) { case 1: addBook(); break; case 2: deleteBook(); break; case 3: searchBook(); break; default: System.out.println("Invalid choice!"); }
}
public static void addBook() {
// 添加图书代码
}public static void deleteBook() {
// 删除图书代码
}public static void searchBook() {
// 查询图书代码
}
} -
个人博客系统:
- 功能:发布文章、评论管理、用户注册登录。
- 技术:Java、Spring Boot、MySQL、HTML/CSS/JavaScript。
- 示例代码
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class BlogApplication {
public static void main(String[] args) {
SpringApplication.run(BlogApplication.class, args);
}
}@RestController
public class BlogController {
@GetMapping("/")
public String hello() {
return "Welcome to the Blog!";
}
} -
在线商城系统:
- 功能:商品展示、购物车、订单管理。
- 技术:Java、Spring Boot、MySQL、HTML/CSS/JavaScript。
- 示例代码
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class ECommerceApplication {
public static void main(String[] args) {
SpringApplication.run(ECommerceApplication.class, args);
}
}@RestController
public class ECommerceController {
@GetMapping("/")
public String hello() {
return "Welcome to the E-Commerce!";
}
} -
学生信息管理系统:
- 功能:添加、删除、查询学生信息。
- 技术:Java、Hibernate、MySQL。
- 示例代码
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration;
public class StudentManager {
public static void main(String[] args) {
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();Student student = new Student(); student.setId(1); student.setName("Alice"); student.setAge(25); session.save(student); session.getTransaction().commit(); session.close(); sessionFactory.close();
}
}public class Student {
private int id;
private String name;
private int age;public int getId() {
return id;
}public void setId(int id) {
this.id = id;
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}public int getAge() {
return age;
}public void setAge(int age) {
this.age = age;
}
}
实战项目开发流程
- 需求分析:
- 确定项目的目标和功能。
- 分析用户需求和业务流程。
- 设计架构:
- 确定项目的技术栈。
- 设计系统架构和数据库模型。
- 编码实现:
- 创建项目目录结构。
- 编写业务逻辑代码。
- 编写数据库操作代码。
- 测试验证:
- 编写单元测试。
- 进行功能测试。
- 进行性能测试。
- 部署上线:
- 部署到服务器。
- 配置服务器环境。
- 监控系统运行状态。
示例代码
import java.util.Scanner;
public class BookManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Welcome to the Book Manager!");
System.out.println("1. Add Book");
System.out.println("2. Delete Book");
System.out.println("3. Search Book");
System.out.print("Enter your choice: ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
addBook();
break;
case 2:
deleteBook();
break;
case 3:
searchBook();
break;
default:
System.out.println("Invalid choice!");
}
}
public static void addBook() {
// 添加图书代码
}
public static void deleteBook() {
// 删除图书代码
}
public static void searchBook() {
// 查询图书代码
}
}
项目文档撰写与提交
项目文档是项目开发的重要组成部分,它包括需求文档、设计文档、技术文档等。
- 需求文档:
- 描述项目的功能需求和业务流程。
- 设计文档:
- 描述系统架构、数据库模型、接口设计等。
- 技术文档:
- 描述技术选型、编码规范、数据库设计等。
- 测试文档:
- 描述测试计划、测试用例、测试结果等。
- 用户手册:
- 描述用户操作流程和使用方法。
示例代码
# Book Manager Project Documentation
## 1. 需求文档
### 功能需求
- 添加图书
- 删除图书
- 查询图书
### 业务流程
1. 用户登录系统
2. 用户选择功能
3. 系统执行相应操作
## 2. 设计文档
### 系统架构
- 前端:HTML/CSS/JavaScript
- 后端:Java、Spring Boot、MySQL
### 数据库模型
```sql
CREATE TABLE books (
id INT PRIMARY KEY,
title VARCHAR(100),
author VARCHAR(100),
year INT
);
3. 技术文档
技术选型
- Java、Spring Boot、MySQL
编码规范
- 代码风格:遵循 Java 编程规范
- 代码注释:注释代码的功能和逻辑
测试计划
- 单元测试:测试每个模块的功能
- 功能测试:测试整个系统的功能
测试用例
- 功能:添加图书
- 输入:图书信息
- 期望输出:图书信息添加成功
用户操作流程
- 用户登录系统
- 用户选择功能
- 系统执行相应操作
初步了解项目管理和团队协作
项目管理和团队协作是项目开发的重要环节,它包括项目计划、任务分配、进度跟踪、团队沟通等。
- 项目计划:
- 制定项目时间表。
- 确定任务清单。
- 任务分配:
- 根据团队成员的技能和时间表分配任务。
- 进度跟踪:
- 使用项目管理工具跟踪任务进度。
- 团队沟通:
- 使用团队协作工具(如 Slack、钉钉)进行沟通。
- 版本控制:
- 使用 Git 管理代码版本。
示例代码
# 代码提交示例
git add .
git commit -m "Add book management functionality"
git push origin main
Java副业发展建议
如何利用业余时间进行Java学习
利用业余时间进行 Java 学习可以采用以下方法:
-
制定学习计划:
- 制定详细的学习计划,包括每天的学习时间和学习内容。
- 制定长期目标,确保学习进度。
-
选择合适的学习资源:
- 在线教程(慕课网、Coursera 等)。
- 编程书籍(如《Effective Java》)。
- 技术博客和社区(如 Stack Overflow、CSDN)。
-
动手实践:
- 编写简单的程序。
- 参与开源项目。
- 解决实际问题。
- 参加技术社区:
- 加入技术论坛(如 Stack Overflow、CSDN)。
- 参加技术 Meetup 和 Hackathon。
示例代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
如何寻找Java相关的兼职或远程工作机会
寻找 Java 相关的兼职或远程工作机会可以通过以下途径:
-
招聘网站:
- 智联招聘、前程无忧、猎聘网。
- 访问企业官方网站查看招聘信息。
-
技术社区:
- Stack Overflow、GitHub。
- 技术 Meetup 和 Hackathon。
-
社交媒体:
- LinkedIn、微博、微信公众号。
- 关注技术大 V 和知名博主。
- 人才市场:
- 参加招聘会,查看招聘广告。
- 通过猎头公司推荐。
示例代码
public class JobApplication {
public static void main(String[] args) {
System.out.println("Applying for a Java Developer position!");
}
}
Java副业工作中常见问题及解决方法
在 Java 副业工作中常见的问题包括技术问题、时间管理问题和沟通问题。
-
技术问题:
- 问题:遇到技术难题时无法解决。
- 解决方法:查阅相关资料、向同事或导师求助、查阅技术文档。
-
时间管理问题:
- 问题:无法平衡工作和学习的时间。
- 解决方法:制定详细的时间表,合理安排工作和学习时间。
- 技巧:使用时间管理工具(如番茄工作法、Todoist)。
- 沟通问题:
- 问题:与团队成员沟通不畅。
- 解决方法:明确沟通目标和方式。
- 技巧:使用团队协作工具(如 Slack、钉钉)进行有效沟通。
示例代码
public class ProblemSolver {
public static void main(String[] args) {
System.out.println("Solving problems with Java!");
}
}
通过这篇指南,希望你能够更好地学习和掌握 Java 技术,并成功开启你的 Java 副业之路。祝你学习顺利,工作愉快!