11.4日

javaBean是一种符合特定规范的Java类,主要用于封装数据(即属性)以及对这些数据的操作(即方法)。JavaBean的设计目的是为了提高代码的可重用性和可维护性。要创建一个有效的JavaBean,你需要遵循一些基本规则:

公共类:JavaBean类通常是公共的(public),这意味着它可以被其他类访问。

无参构造函数:JavaBean类必须有一个无参数的公共构造函数,以便实例化对象时不需要传递参数。

私有成员变量:JavaBean内部的数据(属性)通常定义为私有的,以确保数据的安全性。

公共的getter和setter方法:对于每个私有成员变量,JavaBean应该提供公共的getter(用于获取值)和setter(用于设置值)方法,这被称为JavaBean的封装特性。

public class Person {
// 私有成员变量
private String name;
private int age;

// 无参构造函数
public Person() {
    // 构造函数主体为空
}

// Getter 方法
public String getName() {
    return this.name;
}

// Setter 方法
public void setName(String name) {
    this.name = name;
}

// Getter 方法
public int getAge() {
    return this.age;
}

// Setter 方法
public void setAge(int age) {
    this.age = age;
}

}
这样做的好处是外部可以直接通过调用setName()和getName()方法来修改或获取name的值,而不需要直接操作name本身,从而保护了数据的安全性和完整性。同样地,也可以通过setAge()和getAge()方法来操作age属性。
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

MyBatis 的主要特点
SQL 映射文件:MyBatis 使用 XML 文件或者注解来配置 SQL 映射,这使得开发者可以灵活地编写 SQL 语句,而不必担心框架的限制。

自动映射:MyBatis 可以根据数据库字段和 Java 对象属性的匹配关系自动进行对象的填充和结果的提取。

缓存机制:MyBatis 提供了两级缓存机制,一级缓存在 SqlSession 中,二级缓存可以在多个 SqlSession 间共享。

动态 SQL:MyBatis 支持动态 SQL,可以根据不同的条件生成不同的 SQL 语句,非常方便处理复杂的查询需求。

事务管理:MyBatis 可以集成到 Spring 框架中,利用 Spring 的事务管理功能,简化事务处理。

插件机制:MyBatis 提供插件机制,允许开发者自定义拦截器,实现功能增强或扩展。

基本使用步骤
引入依赖:首先需要在项目中引入 MyBatis 的相关依赖。

org.mybatis mybatis 3.5.7 配置文件:配置 MyBatis 的全局配置文件 mybatis-config.xml。 Copy Mapper 文件:定义 SQL 映射文件 UserMapper.xml。 编写 Java 代码执行 SQL 查询。

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.Reader;

public class MyBatisExample {
public static void main(String[] args) {
try {
// 读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);

        // 获取 SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 调用映射文件中的 SQL
        User user = sqlSession.selectOne("com.example.mapper.UserMapper.selectUserById", 1);
        System.out.println(user);

        // 关闭 SqlSession
        sqlSession.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

posted @ 2024-11-04 21:55  sword_kong  阅读(4)  评论(0编辑  收藏  举报