Java 作为一种主流编程语言,拥有丰富的开发框架,能够帮助开发者高效地构建高质量的应用。没错。这次我们主要讲解
Java 工程开发框架以及一些实战案例。
Spring 是一个开源框架,主要用于企业级应用开发。它提供了全面的基础设施支持,包括依赖注入、面向切面编程、数据访问、事务管理等。
Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了 Java 对数据库的访问。它将 Java 对象与数据库表进行映射,使得开发者可以使用面向对象的方式操作数据库。
Apache Struts 是一个开源的 Web 应用框架,主要用于构建基于 MVC 模式的 Web 应用。它通过集中化的控制器来管理请求,并通过视图层和模型层分离业务逻辑和用户界面。
user-management/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── usermanagement/
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── model/
│ │ │ │ └── User.java
│ │ │ ├── repository/
│ │ │ │ └── UserRepository.java
│ │ │ ├── service/
│ │ │ │ └── UserService.java
│ │ │ └── UserManagementApplication.java
│ │ └── resources/
│ │ └── application.properties
└── pom.xml
package com.example.usermanagement.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// Getters and setters
}
package com.example.usermanagement.repository;
import com.example.usermanagement.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
package com.example.usermanagement.service;
import com.example.usermanagement.model.User;
import com.example.usermanagement.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User saveUser(User user) {
return userRepository.save(user);
}
public User findUserByUsername(String username) {
return userRepository.findByUsername(username);
}
}
package com.example.usermanagement.controller;
import com.example.usermanagement.model.User;
import com.example.usermanagement.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
return ResponseEntity.ok(userService.saveUser(user));
}
@GetMapping("/{username}")
public ResponseEntity<User> getUser(@PathVariable String username) {
return ResponseEntity.ok(userService.findUserByUsername(username));
}
}
package com.example.usermanagement;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class UserManagementApplication {
public static void main(String[] args) {
SpringApplication.run(UserManagementApplication.class, args);
}
}
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/userdb
spring.datasource.username=root
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
product-management/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── productmanagement/
│ │ │ ├── dao/
│ │ │ │ └── ProductDao.java
│ │ │ ├── model/
│ │ │ │ └── Product.java
│ │ │ ├── service/
│ │ │ │ └── ProductService.java
│ │ │ └── ProductManagementApplication.java
│ │ └── resources/
│ │ └── hibernate.cfg.xml
└── pom.xml
package com.example.productmanagement.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private double price;
// Getters and setters
}
package com.example.productmanagement.dao;
import com.example.productmanagement.model.Product;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class ProductDao {
private SessionFactory sessionFactory;
public ProductDao() {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
public void saveProduct(Product product) {
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(product);
session.getTransaction().commit();
session.close();
}
public List<Product> getAllProducts() {
Session session = sessionFactory.openSession();
session.beginTransaction();
List<Product> products = session.createQuery("from Product", Product.class).list();
session.getTransaction().commit();
session.close();
return products;
}
}
package com.example.productmanagement.service;
import com.example.productmanagement.dao.ProductDao;
import com.example.productmanagement.model.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductService {
@Autowired
private ProductDao productDao;
public void saveProduct(Product product) {
productDao.saveProduct(product);
}
public List<Product> getAllProducts() {
return productDao.getAllProducts();
}
}
package com.example.productmanagement;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ProductManagementApplication {
public static void main(String[] args) {
SpringApplication.run(ProductManagementApplication.class, args);
}
}
hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。