当前位置: 首页 > news >正文

搜狐一开始把网站当做什么来做sem是什么意思

搜狐一开始把网站当做什么来做,sem是什么意思,政府门户网站建设新应用,购物网站排名前100SSM 介绍 SSM(SpringSpringMVCMyBatis)框架集由 Spring、MyBatis 两个开源框架整合而成(SpringMVC 是 Spring 中的部分内容),常作为数据源较简单的 web 项目的框架。 Spring Spring 就像是整个项目中装配 bean 的大…

SSM 介绍

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

Spring

Spring 就像是整个项目中装配 bean 的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
Spring 的核心思想是 IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让 Spring 框架帮你来完成这一切。

SpringMVC

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

mybatis

mybatis 是对 jdbc 的封装,它让数据库底层操作变的透明。mybatis 的操作都是围绕一个 sqlSessionFactory 实例展开的。mybatis 通过配置文件关联到各实体类的 Mapper 文件,Mapper 文件中配置了每个类对数据库所需进行的 sql 语句映射。在每次与数据库交互时,通过 sqlSessionFactory 拿到一个 sqlSession,再执行 sql 命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

SSM 搭配的数据库

无庸置疑,SSM 经常搭配的数据库是 MySQL 或者是 Postgresql,而国内使用 MySQL 的人比 Postgresql 的人多, 所以本文主要内容关于 SSM DEMO 已经搭配用上 MySQL,系统本身可以注册写入数据入库,可以从库中读取数据进行登录。

SSM demo 代码

经过测试对比,SSM DEMO 代码基于三个不同的数据库,除了 JDBC 连接串不同,如下。

另外最大的不同就是数据库的 ID 自增机制不同,ID 自增机制是数据库的一项基本功能,我们非常重视这一点,这个不同会不会导致 DEMO 代码要做相关的适配,好听叫做适配,不好听叫做业务侵入。

我们现在开发的 SSM DEMO 代码是在 MySQL 的基础上开发,优先满足了 MySQL。

Postgresql

如果把 MySQL 改换成 Postgresql ,运行程序的会报错,如下

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database.  Cause: org.postgresql.util.PSQLException: Returning autogenerated keys is
only supported for 8.2 and later servers.
### SQL: insert into user1 (username, password, age)     values (?, ?, ?)
### Cause: org.postgresql.util.PSQLException: Returning autogenerated keysis only supported for 8.2 and later servers.

笔者用的是 postgresql12,经过网上查阅 ,mybatis 的定义配置必须要更改。

  <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.cn.uuu.pojo.User1" >

==useGeneratedKeys=”true” keyProperty=”id”摘掉==改换成

  <insert id="insert"  parameterType="com.cn.uuu.pojo.User1" >

重新在 idea 运行 tomcat9

如下,发现数据能够写入了,但是写入的数据没有 id 列为空值。

mytest=# select * from user1;id | username  | password  | age
----+-----------+-----------+-----1 | user1     | password1 |  18| hexin.xue | cxc       |  25

这是由于 postgresql 没有自动增加 id 机制的功能,所以数值一直为空。 如果要实现自增 ID,它是通过 sequence 去实现增加 ID 的。

两个方法是给相关表增加 sequence,一种是已建表的基础上增加 sequence 实现增加 ID

create sequence public.userid_seq start with 1 increment by 1 no minvalue no maxvalue cache 1;
alter sequence public.userid_seq owner to henley;
alter table user1 alter column id set default nextval('public.userid_seq');
insert into user1 (username, password, age)     values ('username1', 'password1', 100);

另外一种重建表,建表就实现

CREATE SEQUENCE sq_user_id  START 1   INCREMENT 1  CACHE 20;
create table  user1(id int NOT NULL DEFAULT nextval('sq_user_id') ,
username  varchar(50),password  varchar(50),age  int);

建表后如果还有问题 ,下面再补刀

alter sequence public.sq_user_id owner to henley;
alter table user1 alter column id set default nextval('public.sq_user_id');

增加 sequence 后,写入数据后 ID 例有值了。

openGauss

依然是同样代码,把 jdbc 的连接串改成 OpenGauss, 我们启动 tomcat,加载服务,我们惊喜的发现没有报错。

  <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.cn.uuu.pojo.User1" >

此处在 postgresql12 需要更改,在 opengauss3 不需要任何更改,spring 指向的应用层没有报错。

但是数据库底层 ID 列的数据仍然空值,OpenGauss 也和 Postgresql 一样,都是用 sequence 去实现 ID 的自增长。

create sequence public.userid_seq start with 1 increment by 1no minvalue no maxvalue cache 1;
alter sequence public.userid_seq owner to henley;
alter table user1 alter column id set default nextval('public.userid_seq');

最后总结

这是 SSM 开发中比较低端的 DEMO 代码,但是从中可见 openGauss 用心的包容,在接口层适配了 mybatis,遇到自增 ID 提高了容错性,相对于 postgresql 多了一道方便。

http://www.bjxfkj.com.cn/article/102781.html

相关文章:

  • 西部数码网站管理助手 数据库app拉新推广平台有哪些
  • 创建一个网站 优帮云普通话手抄报简单又漂亮
  • 物流公司在哪做网站seo怎么学在哪里学
  • 制造网站2023免费网站推广大全
  • 做网站的一般多钱营销软文模板
  • 湖北鄂州疫情最新情况搜索引擎优化的定义
  • 如何创建网站推广产品大连做优化网站哪家好
  • 软件商店oppo下载360seo排名点击软件
  • 网站公安部如何备案外贸推广方式都有哪些
  • 当地人做导游的旅游网站微信搜一搜怎么做推广
  • 沈阳快速网站建设网站开发google搜索网址
  • 阿里巴巴国际站做2个网站有用吗seo观察网
  • 有什么网站做厂家批发鞋子的网易游戏推广代理加盟
  • 潜江网站建设公司网站推广技巧
  • 电商网站建设合同seo服务 收费
  • 网站做数据监测建设网站前的市场分析
  • 制作app软件的公司百度seo关键词排名推荐
  • 电信备案新增网站计算机培训机构
  • 网站后台登陆网址是多少郑州企业网站seo
  • 广州荔湾网站建设站长工具使用
  • 做教师知识网站有哪些唐山seo推广公司
  • 北京最新防控疫情公告seo学院
  • 做h5哪些网站好 知乎软文推广案例
  • 什么网站可以做章海城seo网站排名优化推广
  • 湖北潜江疫情最新消息seo1域名查询
  • 陕西网站建设公司哪有广东深圳疫情最新
  • 网站建设 目的旺道优化软件
  • 贺兰网站建设北京软件开发公司
  • 计算机网站建设开题报告满足seo需求的网站
  • 网站个人备案 企业备案吗十种营销方式