S实现多表添加到数据库 (s向数据库添加多个表)

随着互联网技术的发展,数据的处理变得越来越重要,而在Java Web开发中,使用Spring + SpringMVC + MyBatis (S)框架进行数据管理已经成为了常用的方法。在实际的开发过程中,多表之间的数据关联和添加操作尤为常见,如何用S框架高效地实现多表操作,是我们需要掌握的技能之一。本文将以一个具体的例子来阐述如何使用S框架实现多表添加到数据库。

1. 数据库设计

我们需要设计我们要使用的数据库表格。作为例子,我们设计了三个表格:用户表、商品表、订单表。其中,用户表代表用户信息,包括用户ID、用户名、密码、地址、等字段;商品表代表商品信息,包括商品ID、商品名称、单价等字段;订单表代表订单信息,包括订单ID、用户ID、订单时间、订单总价等字段。三个表格的结构如下:

用户表:

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`username` varchar(255) DEFAULT NULL,

`password` varchar(255) DEFAULT NULL,

`address` varchar(255) DEFAULT NULL,

`phone` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

商品表:

CREATE TABLE `product` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`price` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

订单表:

CREATE TABLE `order` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`userid` int(11) DEFAULT NULL,

`time` varchar(255) DEFAULT NULL,

`totalprice` int(11) DEFAULT NULL,

PRIMARY KEY (`id`),

CONSTRNT `fk_userid` FOREIGN KEY (`userid`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2. 实体类定义

接下来,我们需要根据数据库中的表格定义我们的实体类。我们定义了三个实体类:User、Product、Order。实体类中定义的字段需要和数据库表格中的字段对应,如User实体类中定义了变量id、username、password、address、phone,分别对应数据库表格中的字段id、username、password、address、phone。

User类:

public class User {

private int id;

private String username;

private String password;

private String address;

private String phone;

//getters and setters

}

Product类:

public class Product {

private int id;

private String name;

private int price;

//getters and setters

}

Order类:

public class Order {

private int id;

private int userid;

private String time;

private int totalprice;

//getters and setters

}

3. 建立DAO接口

在S框架中,我们需要建立DAO接口来实现数据的增删改查操作。我们建立了三个DAO接口:UserDAO、ProductDAO、OrderDAO,对应实体类User、Product、Order。

UserDAO接口:

public interface UserDAO {

public int addUser(User user);

//其他方法

}

ProductDAO接口:

public interface ProductDAO {

public int addProduct(Product product);

//其他方法

}

OrderDAO接口:

public interface OrderDAO {

public int addOrder(Order order);

//其他方法

}

在DAO接口中,我们定义了addUser()、addProduct、addOrder()方法用于向数据库添加新的用户、商品和订单。

4. 实现DAO接口

在建立完DAO接口之后,我们需要根据接口中定义的方法实现具体的操作。我们建立了三个DAO层实现类:UserDAOImpl、ProductDAOImpl、OrderDAOImpl。

UserDAOImpl实现类:

@Repository

public class UserDAOImpl implements UserDAO {

@Autowired

private SqlSessionFactory sqlSessionFactory;

@Override

public int addUser(User user) {

SqlSession sqlSession = sqlSessionFactory.openSession();

int result = sqlSession.insert(“addUser”, user);

sqlSession.commit();

sqlSession.close();

return result;

}

//其他方法

}

ProductDAOImpl实现类:

@Repository

public class ProductDAOImpl implements ProductDAO {

@Autowired

private SqlSessionFactory sqlSessionFactory;

@Override

public int addProduct(Product product) {

SqlSession sqlSession = sqlSessionFactory.openSession();

int result = sqlSession.insert(“addProduct”, product);

sqlSession.commit();

sqlSession.close();

return result;

}

//其他方法

}

OrderDAOImpl实现类:

@Repository

public class OrderDAOImpl implements OrderDAO {

@Autowired

private SqlSessionFactory sqlSessionFactory;

@Override

public int addOrder(Order order) {

SqlSession sqlSession = sqlSessionFactory.openSession();

int result = sqlSession.insert(“addOrder”, order);

sqlSession.commit();

sqlSession.close();

return result;

}

//其他方法

}

在实现类中,我们使用@Autowired将SqlSessionFactory注入到DAO层中,然后根据Session的具体操作方法insert(),在数据库中添加新的用户、商品以及订单。

5. 完成业务逻辑

我们将DAO层的操作封装到业务层中,完成对多个表格的添加操作。

UserService业务层:

@Service

public class UserService {

@Autowired

private UserDAO userDAO;

@Autowired

private ProductDAO productDAO;

@Autowired

private OrderDAO orderDAO;

public int addUser(User user, Product product, int quantity) {

//添加用户

int result1 = userDAO.addUser(user);

//添加商品

int result2 = productDAO.addProduct(product);

//创建订单

Order order = new Order();

order.setUserid(user.getId());

//TODO: 时间和价格的计算需要根据实际情况来设定

order.setTime(“2023-06-01”);

int totalprice = product.getPrice() * quantity;

order.setTotalprice(totalprice);

int result3 = orderDAO.addOrder(order);

return result1 + result2 + result3;

}

//其他方法

}

在业务层中,我们定义了addUser()方法,该方法接收User实体类对象、Product实体类对象以及商品数量quantity,首先调用UserDAO接口中的addUser()方法将新用户添加到用户表中,接着将商品添加到商品表中,最后创建订单并添加到订单表中。我们返回添加的结果记录数,辅助后续处理。

6. 结束语

上述就是使用S框架实现多表添加到数据库的详细步骤。其中,我们需要注意在实体类中的变量要和数据库表格中的字段对应,还要注意DAO实现类需要注入SqlSessionFactory,以及使用不同的DAO层接口实现多表之间的关联。在具体实现的过程中,可能会遇到一些坑点,需要我们对框架的整体理解提高到更高的层次上,才能更好的开发代码。

相关问题拓展阅读:

s表格形式的增删改查点击修改按钮获取修改时间

都在操作界面。

1、首先渗租塌要打开s表格。

2、其次找到形式丛圆操作。

3、最后点型返击操作界面即可看到形式的增删改查点击修改按钮获取修改时间操作按键。

“S框架”是什么意思?

S全称是Spring+SpringMVC+MyBatis。

S框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

1、Spring

Spring就像是整个项目中装配bean的大工厂,在

配置文件

中可以指定使用特定的参数去调用实体类的

构造方法

来实例化对象。也可以称之为项目中的粘合剂。

Spring的核心思想是IoC(

控制反转

),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。

2、SpringMVC

SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

3、mybatis

mybatis是对jdbc的封装,它让数据库底层操作变的透明。

mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的

sql语句

映射。在每次与数轿中据库顷消交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

扩展资料

S框架集是

软件架构

的一个部分。以下是软件架构的种类:

1、逻辑架构

软件系统系统当中的各个元件之间所存在的关系,比如外部系统接口、

用户界面

、商业逻辑元件、数据库等。

2、物理架构

究竟是怎样做到在硬件当中放置软件元件。例如处于上海与北京进行分布的

分布式系统

的物理架构,这也就是说全部的元件都是属于物理设备,主要的有主机、整合服务器、应用服务器、

代理服务器

、存储服务器、报表服务器、Web服务器、网络分流器等。

3、系统架构

相应的系统存在着性能、强壮性、可扩展性、灵活性、可靠性等这些非功能性特征。设计系统的架构比要让系统架构设计人员存在着过硬的软件与硬件的性能与功能,往往从事这样的工作这是属于设计系统架构环节最为困难的工作。

除了以上所提到的之外,基于各个不同的角度进行分析,都能够了解到划分元件、决定设计这两个架构的要素。一个软件系统的元件首先就是属于一种逻辑元件。

那么究竟怎样做到在硬件中有效的放置以上所提到的逻辑元件,还有的就是这些元件怎样发挥作用在整个系统的性能、强壮性、可扩展性、灵活性、可靠性等。这也是属于特别重要的信息。

比如在一个中等规模的数据库应用系统往往大致存在一百个左右数据表,那么这也就使得设计雀帆知一个系统往往必须依托一百页规模架构进行文档设计。

参考资料:

百度百科-S

S(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。

其搭老中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis是一个支持普通SQL查询,存拿枝饥储过程和高级映射的优秀持久层框架。

参考资料

知乎

.知乎关于s向数据库添加多个表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » S实现多表添加到数据库 (s向数据库添加多个表)