框架:什么是框架?为什么要使用框架?框架有什么作用
admin2025-07-04 19:34:05【世界杯比赛赛】
一.什么是框架?
其实框架,就是别人写好了包装起来的一套工具,把你原先必须要写的,必须要做的一些复杂的东西都写好了放在那里,你只要调用他的方法,就可以实现一些本来要费好大劲的功能。形象一点说吧,假如你盖房子,你是自己一砖一瓦的盖简单呢,还是拿一个现成的架子往上面添东西简单呢?结果不言而喻吧,有一个半成品的架子,你只需要添上一些你自己额外需要加的东西就好了。这就是框架的好处。假如,好多好多地方都要用这么一套逻辑,那么我们会定义成一个方法(函数),就免去了写同样代码的麻烦,其实这个方法,就是一个框架啦,只不过非常小而已。
web开发的MVC模式,M是模型,V是视图(表现层),C是控制层。框架就是M层啦,他把一套不涉及任何业务相关的东西都写好了包装起来,你去用就可以了,C的控制层,他是没法写的,因为不同的系统有不同的业务逻辑,框架不可能帮你把业务逻辑也写进去啦。就好比你盖房子的架子,他只能做到一个架子,不是因为他不能完全弄好,而是因为他没法去加,他也不知道你到底是需要什么颜色的瓦片,但是相比来看,框架把很多复杂的东西都弄好了,你只要在上面添加你独有的东西就可以了。
2.框架的作用是什么?
框架可以帮助省略掉一些基本的相同底层代码的反复书写,只需调用框架的方法就可以实现你想要的功能。
3.为什么要学习框架?
学习框架的目的就是提高项目的编写效率,使你可以有更多的时间去编写属于自己独特的东西,而不需要将大量的时间花费在底层代码的书写上。
二.使用框架完成全查和添加
创建测试的数据库
#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;
#创建表
create table t_user
(
uid int primary key auto_increment,
username varchar(20),
password varchar(20),
phone varchar(11),
address varchar(50)
);
insert into t_user(username,password,phone,address) values('张
三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李
四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小
美','123','18565234759','信阳');
select * from t_user;
2.创建一个Java项目并导入mybatis框架的jar包
在项目中创建一个lib文件夹放入mybatis框架的jar包,并导入项目中。
3.创建跟表对应的实体类。
在src中创建com.chen.bean包,然后创建User实体类
package com.lei.bean;
public class User {
private Integer uid;
private String username;
private String password;
private String phone;
private String address;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
", phone='" + phone + '\'' +
", address='" + address + '\'' +
'}';
}
}
4.创建针对表操作的接口类。
在src中创建com.chen.dao包,然后创建UserDao的接口,然后在接口中定义针对数据库的增删
改查等操作。
/**
* 查询所有用户信息
*/
//查询
List
//增加
int add(User user);
5.在接口的包中创建对应的mapper映射配置文件。
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from t_user;
insert into t_user(username,password,phone,address) values(#{username},#{password},#{phone},#{address});
6.在src目录中创建mybatis框架的核心配置文件。
在src中创建一个文件,命名为SqlMapConfig.xml,在该配置文件中配置连接数据库的参数。
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
在测试类中进行测试
public class UserTest {
@Test
public void testSelectAll() throws IOException {
//1.加载核心配置文件的字节输入流
InputStream stream = Resources.getResourceAsStream("mybatis.xml");
//2.创建SqlSessionFactory的构建对象--框架使用的是构建者模式
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//3.通过构建对象加载配置文件的输入流获取SqlSessionFactory
SqlSessionFactory factory=builder.build(stream);
//4.通过工厂对象获取SqlSession对象----执行JDBC操作的
SqlSession sqlSession=factory.openSession();
//5.通过SqlSession对象获取接口对应的代理对象
UserDao userDao=sqlSession.getMapper(UserDao.class);
//6.通过代理对象执行查询方法
List
//7.遍历集合
for (User user:userList) {
System.out.println(user);
}
}
@Test
public void testadd() throws IOException {
//1.加载核心配置文件的字节输入流
InputStream stream = Resources.getResourceAsStream("mybatis.xml");
//2.创建SqlSessionFactory的构建对象--框架使用的是构建者模式
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//3.通过构建对象加载配置文件的输入流获取SqlSessionFactory
SqlSessionFactory factory=builder.build(stream);
//4.通过工厂对象获取SqlSession对象----执行JDBC操作的
SqlSession sqlSession=factory.openSession();
//5.通过SqlSession对象获取接口对应的代理对象
UserDao userDao=sqlSession.getMapper(UserDao.class);
//6.定义User对象 封装数据
User user=new User();
user.setUsername("孙赛欧");
user.setPassword("111");
user.setPhone("222");
user.setAddress("00");
int i = userDao.add(user);
if (i>0){
System.out.println("chenggong");
}else {
System.out.println("shibai");
}
sqlSession.commit();
}
}