0、声明
以下内容为本人学习时他人博客的总结。
全部内容的原文链接:javabean_一般有趣的 ID的博客-CSDN博客
1、javabean简介
为什么要引入javabean?
JavaBean 是一种 Java 类,它遵循特定的命名约定并实现特定接口和规范。使用 JavaBean 可以将数据封装成对象,这样可以方便地进行操作和管理。引入 JavaBean 的主要目的是为了提高 Java 代码的可维护性和可重用性。
JavaBean 具有以下几个优点:
-
封装性:将数据封装在对象内,只暴露必要的属性和方法,屏蔽内部实现细节,提高安全性。
-
可重用性:JavaBean 可以被其他程序调用,使得代码具有更好的可重用性,减少了代码的冗余。
-
可扩展性:JavaBean 支持继承和多态特性,可以方便地扩展和修改代码,使得代码更加灵活和易于维护。
-
规范性:JavaBean 遵循一定的规范,使得代码结构清晰、易读易懂,并且符合 Java 编程的惯例和标准。
-
工具支持:JavaBean 可以被各种开发工具支持,如 Eclipse、NetBeans 等,方便编写和调试代码。
因此,引入 JavaBean 可以帮助开发人员更好地组织和管理代码,提高代码的可维护性和可重用性。
2、javabean的种类
JavaBean是指一种符合特定规范的Java类,它可以用于描述一个可重用的组件。不同类型的JavaBean可以根据其作用和实现方式进行分类,下面是几种常见的JavaBean分类:
1.实体类Bean(Entity Bean):主要用于封装持久化数据的JavaBean。
2.会话Bean(Session Bean):主要用于支持应用程序的业务逻辑处理。
3.消息驱动Bean(Message-Driven Bean):主要用于在分布式系统中处理异步消息。
4.工具类Bean(Utility Bean):主要包含各种工具方法,如日期处理、字符串处理等。
5.显示类Bean(GUI Bean):主要用于实现用户界面组件,如文本框、按钮等。
6.事件类Bean(Event Bean):主要用于封装事件信息,如鼠标点击事件、键盘事件等。
7.配置类Bean(Configuration Bean):主要用于存储应用程序的配置信息,如数据库连接信息、邮件服务器信息等。
8.验证类Bean(Validation Bean):主要用于验证表单输入数据的合法性,如身份证号码、电话号码等。
3、javabean的设计要求
JavaBean 是一种遵循特定规则的 Java 类,用于构建可重用的组件。它们通常用于表示业务对象,如用户、订单、产品等。
以下是 JavaBean 的设计要求:
1.必须提供一个默认的公共构造函数,不带参数,并且没有返回值。
2.所有属性必须是私有的,并且必须使用公共 getter 和 setter 方法来访问和修改属性的值。
3.属性名必须遵循标准的命名规范,例如:属性 foo 的 getter 方法应该命名为 getFoo(),setter 方法应该命名为 setFoo()。
4.应该实现 java.io.Serializable 接口,以允许 JavaBean 实例在网络上进行传输或存储到文件中。
如果需要,可以提供自定义的序列化和反序列化方法,以便对属性进行更精细的控制。
4、JavaBean数据之间的映射
ORM:对象关系映射。
-
表--->类
-
字段--->属性
-
行--->对象
实现表单与JavaBean数据之间的映射可以采用以下三种方式:
手动映射:即手动编写代码将表单数据赋值给JavaBean属性,或从JavaBean属性中获取数据并展示到表单中。
使用第三方框架:如Apache Struts、Spring MVC等框架都提供了表单数据绑定的机制,可以自动将表单数据与JavaBean属性进行映射。
基于注解的映射:可以通过在JavaBean属性上添加特定的注解来实现表单数据与JavaBean属性之间的映射。常见的注解包括@ModelAttribute、@RequestParam等。
5、 dao设计模式
DAO(Data Access Object)是一种设计模式,它将数据访问逻辑从业务逻辑中分离出来,以达到解耦的目的。
DAO 模式通常包含以下组成部分:
DAO 接口:定义了数据访问对象的方法。
DAO 实现类:实现了 DAO 接口中定义的方法。
数据库访问类:负责和数据库进行交互,提供增删改查等基本操作。
使用 DAO 模式的好处在于,可以使业务逻辑和数据访问逻辑分别独立开来,降低了彼此之间的耦合。这样,当需要修改数据访问逻辑时,不会影响到业务逻辑;同样,当需要修改业务逻辑时,也不会影响到数据访问逻辑。
// DAO 接口
public interface UserDao {
// 增加用户
void addUser(User user);
// 删除用户
void deleteUser(int userId);
// 更新用户
void updateUser(User user);
// 获取用户列表
List<User> getUserList();
}
// DAO 实现类
public class UserDaoImpl implements UserDao {
// 数据库访问类
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
@Override
public void addUser(User user) {
String sql = "INSERT INTO user(name, age) VALUES (?, ?)";
jdbcTemplate.update(sql, user.getName(), user.getAge());
}
@Override
public void deleteUser(int userId) {
String sql = "DELETE FROM user WHERE id = ?";
jdbcTemplate.update(sql, userId);
}
@Override
public void updateUser(User user) {
String sql = "UPDATE user SET name = ?, age = ? WHERE id = ?";
jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
}
@Override
public List<User> getUserList() {
String sql = "SELECT * FROM user";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
}
// 数据库访问类
public class DataSource {
// 省略数据库连接等相关的代码
public Connection getConnection() {
// 获取数据库连接
// ...
return connection;
}
}