Từ Vựng Lập Trình Chuyên Ngành: Thuật Ngữ Cốt Lõi cho Nhà Phát Triển

Thuật ngữ cơ bản

entity: Thực thể trong mô hình dữ liệu

timestamp: Dấu thời gian hệ thống

refactor: Tái cấu trúc mã nguồn

query: Truy vấn cơ sở dữ liệu

override: Ghi đè phương thức

container: Thành phần quản lý đối tượng

Ví dụ minh họa JDBC

Connection conn = DataSourceManager.getKetNoi();
String sql = "SELECT ho_ten, tuoi FROM nhan_vien WHERE phong_ban = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, "PhatTrien");
ResultSet rs = stmt.executeQuery();

while (rs.next()) {
    String ten = rs.getString("ho_ten");
    int tuoi = rs.getInt("tuoi");
    System.out.println("Nhân viên: " + ten + ", Tuổi: " + tuoi);
}
rs.close();
stmt.close();

Quản lý giao dịch

try {
    conn.setAutoCommit(false);
    
    String capNhat1 = "UPDATE tai_khoan SET so_du = so_du - ? WHERE id = 1";
    PreparedStatement ps1 = conn.prepareStatement(capNhat1);
    ps1.setDouble(1, 500000);
    ps1.executeUpdate();
    
    String capNhat2 = "UPDATE tai_khoan SET so_du = so_du + ? WHERE id = 2";
    PreparedStatement ps2 = conn.prepareStatement(capNhat2);
    ps2.setDouble(1, 500000);
    ps2.executeUpdate();
    
    conn.commit();
} catch (SQLException e) {
    conn.rollback();
    System.err.println("Lỗi giao dịch: " + e.getMessage());
} finally {
    conn.setAutoCommit(true);
}

Spring Framework

IoC (Inversion of Control): Cơ chế đảo ngược kiểm soát

BeanPostProcessor: Giao diện xử lý vòng đời bean

@Autowired: Tự động tiêm phụ thuộc

@Service
public class XuLyDonHang {
    
    private final KhoHang khoHang;
    private final ThanhToanService thanhToan;
    
    @Autowired
    public XuLyDonHang(KhoHang khoHang, ThanhToanService thanhToan) {
        this.khoHang = khoHang;
        this.thanhToan = thanhToan;
    }
    
    @Transactional
    public void thucHienDonHang(DonHang donHang) {
        khoHang.kiemTraTonKho(donHang.getSanPham());
        thanhToan.thanhToan(donHang.getSoTien());
        khoHang.capNhatKho(donHang.getSanPham());
    }
}

MySQL Cơ Bản

PRIMARY KEY: Khóa chính xác định bản ghi duy nhất

FOREIGN KEY: Khóa ngoại liên kết giữa các bảng

AUTO_INCREMENT: Tự động tăng giá trị

CREATE TABLE khach_hang (
    ma_khach INT PRIMARY KEY AUTO_INCREMENT,
    ten_khach VARCHAR(100) NOT NULL,
    ngay_sinh DATE,
    gioi_tinh ENUM('Nam', 'Nu', 'Khac')
) ENGINE=InnoDB;

RESTful API

endpoint: Điểm kết nối API

payload: Dữ liệu truyền trong request

status code: Mã phản hồi HTTP

@RestController
@RequestMapping("/api/san-pham")
public class SanPhamController {

    @Autowired
    private SanPhamService service;
    
    @GetMapping("/{id}")
    public ResponseEntity<SanPham> layChiTiet(@PathVariable Long id) {
        return service.timKiem(id)
                .map(ResponseEntity::ok)
                .orElse(ResponseEntity.notFound().build());
    }
    
    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public SanPham taoMoi(@RequestBody SanPham moi) {
        return service.luu(moi);
    }
}

JavaScript Modern

const tinhTong = (a, b) => a + b;

function xuLyDongGoi(thamSo) {
    return new Promise((giaiQuyet, tuChoi) => {
        if (typeof thamSo === 'number') {
            giaiQuyet(tinhTong(thamSo, 10));
        } else {
            tuChoi(new Error('Tham số không hợp lệ'));
        }
    });
}

xuLyDongGoi(5)
    .then(ketQua => console.log(`Kết quả: ${ketQua}`))
    .catch(err => console.error(err.message));

Spring Boot Configuration

# application.properties
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/cua_hang
spring.datasource.username=admin
spring.datasource.password=secure123
spring.jpa.hibernate.ddl-auto=update
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

Thuật ngữ liên quan ORM

Entity: Lớp ánh xạ bảng cơ sở dữ liệu

Repository: Giao diện truy cập dữ liệu

JPQL (Java Persistence Query Language): Ngôn ngữ truy vấn

Lazy Loading: Tải dữ liệu theo yêu cầu

Thẻ: Java jdbc mysql Spring orm

Đăng vào ngày 26 tháng 6 lúc 07:12