精华内容
下载资源
问答
  • SSM框架数据库进行操作的流程以及搭建SSM框架的步骤
    千次阅读
    2020-02-21 22:28:31

    SSM框架对数据库进行操作的流程图如下:

    具体运行流程步骤如下:

           1、web服务器启动,会自动加载web.xml配置文件(web.xml配置有:spring.xml的配置文件、spring的监听器)

      2、浏览器发送一个请求,会被spring的拦截器拦截,截取对应的url;

      3、将截取的到url提交给DispatcherServlet(分发请求),DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.

      4、在service里进行一系列的业务判断,例如判断前台传过来的用户名和密码是否正确,通过spring的依赖注入数据访问层的接口;

      5、在dao(数据访问层)层通过方法名找到在mybatis的mapper映射文件里与之对应的id=“login”语句来查询数据库,将查询到的result返回dao层;

      6、Controller进行业务逻辑处理后,会返回一个ModelAndView

      7、Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象

      8、视图对象负责渲染返回给客户端。 

    那么我们如何搭建这个框架呢?

    1. 先写好数据库。
    2. 写实体类entity(User),定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。
    3. 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。
    4. 写Mapper.java(UserDao),将Mapper.xml中的操作按照id映射成Java函数。
    5. 写Service.java,为控制层提供服务,接受控制层的参数,完成相应的功能,并返回给控制层。
    6. 写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层。
    7. 写JSP页面调用,请求哪些参数,需要获取什么数据

    即DataBase ===> Entity ===> Mapper.xml ===> Mapper.Java ===> Service.java ===> Controller.java ===> Jsp.

    更多相关内容
  • 本文实例讲述了laravel框架学习记录之表单操作。分享给大家供大家参考,具体如下: 1、MVC数据流动 拿到一个laravel项目最基本的是弄清楚它的页面请求、数据流动是怎样进行的,比如当通过get请求index页面时,如何...
  • 本文实例讲述了Thinkphp5框架实现获取数据库数据到视图的方法。分享给大家供大家参考,具体如下: 这是学习thinkhp5的基础篇笔记。 这里主要讲怎么配置数据库链接,以及查询数据库数据,并且最后将数据赋给视图。 ...
  • greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库表单中的ORM解决方案,通过使用一个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。
  • ,这个来给表单里的某项赋值的,但是我的前台表单里其实有大约100条数据,如果我每条数据都这么赋值,好笨啊,我要怎样才能一次性将从表里查出的数据都赋值到表单对应的地方? Controller类我是这么写的 ``` /...
  • 亲测好用的ssm框架下文件下载,上传,将数据保存在tomcat服务器。
  • JAVA动态表单设计,自定义表单,自定义数据,在线设计,数据库存储
  • 只能在数据库中存在的手机号看到表单表单可以重复提交。 第一次进入表单需要验证 分享出去的页面,别人进入后也需要验证。 因为每个手机在同一个公众号当中的openid是唯一性的。所以在手机查看这个表单页面的...
  • 今天小编就为大家分享一篇layui 图片上传+表单提交+ Spring MVC的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 1.建一个控制器,做表单操作(包含验证) <?php namespace Biaodan\Controller; use Think\Controller; class BiaodanController extends Controller { public function test() { if(empty($_POST))//如果$_POST...
  • IDEA+MAVEN基于ssm框架数据库增删查改以及用户登录 详情可见博文:https://blog.csdn.net/weixin_42493072/article/details/94403204 开发工具:IntelliJ IDEA 2018、JDK1.8、tomcat 7.0.79、Mysql 5.0、Maven ...
  • 写在前面 博主近期有时间的话,一直在抽空看Django相关的项目,苦于...本博客记录的是《Django web 应用开发实战》这本书第八章表单与模型中的相关内容,主要内容是表单数据库的交互。编译环境如下: Python3.7 py

    写在前面

    博主近期有时间的话,一直在抽空看Django相关的项目,苦于没有web开发基础,对JavaScript也不熟悉,一直在从入门到放弃的边缘徘徊(其实已经放弃过几次了,如下图,一年前的笔记)。总体感受web开发要比其他技术栈难,前后端技术都有涉及。如果没有实体项目支撑的话,很难学下去。但不管怎样,学习都是一件痛苦的事情,坚持下去总会有收获。
    在这里插入图片描述
    本博客记录的是《Django web 应用开发实战》这本书第八章表单与模型中的相关内容,主要内容是表单与数据库的交互。编译环境如下:

    • Python3.7
    • pycharm2020.1专业版(社区版应该是不支持Django项目调试的)

    项目结构及代码

    项目结构

    在pycharm中建立Django项目后,会自动生成一些基础的文件,如settings.py,urls.py等等,这些基础的东西,不再记录,直接上我的项目结构图。
    在这里插入图片描述

    上图中左侧为项目结构,1为项目应用,也叫APP,2是Django的项目设置,3是项目的模板,主要是放网页的。

    路由设置

    路由设置是Django项目必须的,在新建项目是,在index目录、MyDjango目录下面生成了urls.py文件,里面默认有项目的路由地址,可以根据项目情况更改,我这里上一下我的路由设置。

    # MyDjango/urls.py
    """MyDjango URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/3.0/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  path('', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.urls import include, path
        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    """
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include(('index.urls', 'index'), namespace='index'))
    ]
    
    
    # index/urls.py
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    # author:HP
    # datetime:2021/6/15 15:35
    from django.urls import path, re_path
    from .views import *
    urlpatterns = [
        path('', index, name='index'),
    ]
    

    数据库配置

    数据库的配置,以及模板的设置等内容都在settings.py文件中,在项目生成的时候,自动生成。
    数据库设置在DATABASE字典中进行设置,默认的是sqlite3,我也没改。这里可以同时配置多个数据库,具体不再记录。
    看代码:

    """
    Django settings for MyDjango project.
    
    Generated by 'django-admin startproject' using Django 3.0.8.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/3.0/topics/settings/
    
    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/3.0/ref/settings/
    """
    
    import os
    
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    
    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = '6##c(097i%=eyr-uy!&m7yk)+ar+_ayjghl(p#&(xb%$u6*32s'
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    
    ALLOWED_HOSTS = []
    
    
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        # add a new app index
        'index',
        'mydefined'
    ]
    
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    
    ROOT_URLCONF = 'MyDjango.urls'
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')]
            ,
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    
    ]
    '''
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2',
            'DIRS': [
                os.path.join(BASE_DIR, 'templates'),
            ],
            'APP_DIRS': True,
            'OPTIONS': {
                'environment': 'MyDjango.jinja2.environment'
            },
        },
        '''
    
    WSGI_APPLICATION = 'MyDjango.wsgi.application'
    
    
    # Database
    # https://docs.djangoproject.com/en/3.0/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    
    # Password validation
    # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
    
    AUTH_PASSWORD_VALIDATORS = [
        {
            'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
        },
    ]
    
    
    # Internationalization
    # https://docs.djangoproject.com/en/3.0/topics/i18n/
    
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/3.0/howto/static-files/
    
    STATIC_URL = '/static/'
    
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    

    定义模型

    怎么来解释“模型”这个东西,我感觉挺难解释清楚,首先得解释ORM框架,它是一种程序技术,用来实现面向对象编程语言中不同类型系统的数据之间的转换。这篇博客涉及到前端和后端的数据交互,那么首先你得有个数据表,数据表是通过模型来创建的。怎么创建呢,就是在项目应用里面创建models.py这个文件,然后在这个文件中写几个类,用这个类来生成数据表,先看看这个项目的models.py代码。

    from django.db import models
    
    
    class PersonInfo(models.Model):
        id = models.AutoField(primary_key=True)
        name = models.CharField(max_length=20)
        age = models.IntegerField()
        # hireDate = models.DateField()
    
        def __str__(self):
            return self.name
    
        class Meta:
            verbose_name = '人员信息'
    
    
    class Vocation(models.Model):
        id = models.AutoField(primary_key=True)
        job = models.CharField(max_length=20)
        title = models.CharField(max_length=20)
        payment = models.IntegerField(null=True, blank=True)
        person = models.ForeignKey(PersonInfo, on_delete=models.CASCADE)
    
        def __str__(self):
            return str(self.id)
    
        class Meta:
            verbose_name = '职业信息'
    
    
    
    

    简单解释一下,这段代码中定义了两个类,一个是PersonInfo,一个是Vocation,也就是人员和职业,这两个表通过外键连接,也就是说,我的数据库中,主要的数据就是这两个数据表。
    在创建模型后,在终端输入以下两行代码:

    python manage.py makemigrations
    python manage.py migrate
    

    这样就可以完成数据表的创建,数据迁移也是这两行代码。同时,还会在项目应用下生成一个migrations文件夹,记录你的各种数据迁移指令。
    看看生成的数据库表:
    在这里插入图片描述
    上面图中,生成了personinfo和vocation两张表,可以自行在表中添加数据。

    定义表单

    表单是个啥玩意儿,我不想解释,因为我自己也是一知半解。这个就是你的前端界面要显示的东西,通过这个表单,可以在浏览器上生成网页表单。怎么创建呢,同样是在index目录(项目应用)下新建一个form.py文件,在该文件中添加以下代码:

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    # author:HP
    # datetime:2021/6/24 14:55
    
    from django import forms
    from .models import *
    from django.core.exceptions import ValidationError
    
    
    def payment_validate(value):
        if value > 30000:
            raise ValidationError('请输入合理的薪资')
    
    
    class VocationForm(forms.Form):
        job = forms.CharField(max_length=20, label='职位')
        title = forms.CharField(max_length=20, label='职称',
                                widget=forms.widgets.TextInput(attrs={'class': 'cl'}),
                                error_messages={'required': '职称不能为空'})
        payment = forms.IntegerField(label='薪资',
                                     validators=[payment_validate])
    
        value = PersonInfo.objects.values('name')
        choices = [(i+1, v['name']) for i, v in enumerate(value)]
        person = forms.ChoiceField(choices=choices, label='姓名')
    
        def clean_title(self):
            data = self.cleaned_data['title']
            return '初级' + data
    
    

    简单解释一下,就是说我待会儿生成的网页上,要显示job、title、payment还有一个人名下拉框,这些字段以表单形式呈现在网页上。

    修改模板

    模板实际上就是网页上要显示的信息,为啥叫模板呢,因为你可以自定义修改,在index.html中修改,如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {% if v.errors %}
        <p>
            数据出错了,错误信息:{{ v.errors }}
        </p>
    {% else %}
        <form action="" method="post">
            {% csrf_token %}
            <table>
                {{ v.as_table }}
            </table>
            <input type="submit" value="submit">
        </form>
    {% endif %}
    </body>
    </html>
    

    视图函数

    视图函数其实就是views.py文件中的函数,这个函数非常重要,在项目创建的时候自动生成,它是你的前后端连接的枢纽,不管是FBV视图还是CBV视图,都需要它。
    先来看看这个项目中视图函数的代码:

    from django.shortcuts import render
    from django.http import HttpResponse
    from index.form import VocationForm
    from .models import *
    
    
    def index(request):
        # GET请求
        if request.method == 'GET':
            id = request.GET.get('id', '')
            if id:
                d = Vocation.objects.filter(id=id).values()
                d = list(d)[0]
                d['person'] = d['person_id']
                i = dict(initial=d, label_suffix='*', prefix='vv')
                # 将参数i传入表单VocationForm执行实例化
                v = VocationForm(**i)
            else:
                v = VocationForm(prefix='vv')
            return render(request, 'index.html', locals())
        # POST请求
        else:
            # 由于在GET请求设置了参数prefix
            # 实例化时必须设置参数prefix,否则无法获取POST的数据
            v = VocationForm(data=request.POST, prefix='vv')
            if v.is_valid():
                # 获取网页控件name的数据
                # 方法一
                title = v['title']
                # 方法二
                # cleaned_data将控件name的数据进行清洗
                ctitle = v.cleaned_data['title']
                print(ctitle)
                # 将数据更新到模型Vocation
                id = request.GET.get('id', '')
                d = v.cleaned_data
                d['person_id'] = int(d['person'])
                Vocation.objects.filter(id=id).update(**d)
                return HttpResponse('提交成功')
            else:
                # 获取错误信息,并以json格式输出
                error_msg = v.errors.as_json()
                print(error_msg)
                return render(request, 'index.html', locals())
    

    其实就一个index函数,不同请求方式的时候,显示不同的内容。这里要区分get和post请求,get是向特定资源发出请求,也就是输入网址访问网页,post是向指定资源提交数据处理请求,比如提交表单,上传文件这些。
    好吧,这样就已经完成了项目所有的配置。
    启动项目,并在浏览器中输入以下地址:

    http://127.0.0.1:8000/?id=1
    

    这是个get请求,显示内容如下:
    在这里插入图片描述
    这个网页显示了form中设置的表单,并填入了id为1的数据信息。
    我想修改这条数据信息,直接在相应的地方进行修改,修改如下:
    在这里插入图片描述
    然后点击submit按钮,也就是post请求,跳转网页,显示如下:
    在这里插入图片描述
    刷新俺们的数据库,看看数据变化了没:
    在这里插入图片描述
    id为1的数据已经修改成了我们设置的内容。
    至此,表单和数据交互这个小节的内容已经结束。

    记录感受

    Django项目,创建之初要设置路由,如果要用到数据库,需要配置数据库,然后通过模型来创建数据表,并通过终端指令完成数据表创建和迁移,随后定义表单格式,最后在视图函数中设置各种请求方式。
    感受就是两个字,繁杂、
    路漫漫其修远兮,继续学习吧~~

    展开全文
  • 使用mySQL和Play框架创建了一个简单的乐团数据库。 演示链接 网站连结 网站由托管,数据库由托管。 注意:由于MySQL与ClearDB免费层的限制,某些触发器/功能在网站上不起作用。 项目清单 用户视图 正常化 表DDL...
  • 主要介绍了thinkphp框架表单数组实现图片批量上传功能,结合实例形式分析了js前端图片上传与后台thinkPHP文件处理相关操作技巧,需要的朋友可以参考下
  • MVC_CRUD_Company 带有.Net框架和C#的MVC应用程序,用于在客户端数据库上进行CRUD操作,包括(创建,更新,删除,导出到文本文件,导入表单文本文件)
  • (六)struts2- 2.3.15.3 spring3.2.4 mybatis-3.2.3 jquery.validationEngine ajax表单验证 数据库重复
  • 表单页面中编写JS脚本,获取到表单中每个输入框的值,最终通过服务框架传递到student表中做存储 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>学员...

    创建一个html表单页面

     在表单页面中编写JS脚本,获取到表单中每个输入框的值,最终通过服务框架传递到student表中做存储

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title>学员信息登记</title>
    	</head>
    	<body bgcolor="pink">
    
    		<h2 align="center">学员信息登记</h2>
    
    		<form align="center" name="f">
    			学号:<input type="text" name="sno" size="25" maxlength="20" /> <br><br> 姓名:
    			<input type="text" name="sname" size="25" maxlength="20" /> <br><br> 性别:
    			<input type="text" name="ssex" size="25" maxlength="20" /> <br><br> 年龄:
    			<input type="text" name="sage" size="25" maxlength="20" /> <br><br> 专业:
    			<input type="text" name="sdept" size="25" maxlength="20" /> <br><br>
    			<input type="button" value="提  交" name="btn" onclick="tijiao()" />
    			<input type="reset" value="重  置" name="res" />
    		</form>
    
    		<!--
            	编写脚本获取到每一个输入框中的值,并传递到teststudent库中student表中做存储
            -->
    
    		<script language="JavaScript">
    			//声明一个提交方法
    			function tijiao() {
    				//获取每个输入框的值
    				//学号
    				var snovalue = f.sno.value;
    
    				//姓名
    				var snamevalue = f.sname.value;
    
    				//年龄
    				var sagevalue = f.sage.value;
    
    				//性别
    				var ssexvalue = f.ssex.value;
    
    				//专业
    				var sdeptvalue = f.sdept.value;
    
    				//获取到每个值之后,借助于框架来传递
    				//借助于框架进行传递XMLHttpRequest 对象用于在后台与服务器交换数据
    				url = 'http://127.0.0.1:5000/add'
    				var request = new XMLHttpRequest()
    				request.open('post', url, true)
    				request.onload = function() {
    					resp_text = request.responseText
    					print(resp_text)
    				}
    				var formdata = new FormData()
    				formdata.append('sno', snovalue)
    				formdata.append('sname', snamevalue)
    				formdata.append('ssex', ssexvalue)
    				formdata.append('sage', sagevalue)
    				formdata.append('sdept', sdeptvalue)
    
    				request.send(formdata)
    
    			}
    
    		</script>
    
    	</body>
    
    </html>

     2.利用MySQL技术,创建数据库teststudent,并生成一张student表,包含学号,姓名,性别,年龄,专业,五个字段

     Python后台接口

    1.安装python

    2.安装python相关的数据库组件    (win+r  cmd    )

    pip install flask pymysql

    pip install flask-cors

    用记事本整理python框架文件

    from flask import Flask,  jsonify, request
    from flask_cors import CORS
    
    from pymysql import Connect
    
    conn  = Connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='teststudent')
    
    app = Flask(__name__)
    
    CORS(app)
    
    def add_name_db(sno,sname,ssex,sage,sdept):
         with conn.cursor() as c:
                 sql = "insert into student(sno,sname,ssex,sage,sdept) values (%s,%s,%s,%s,%s)"
                 ret = c.execute(sql, args=(sno,sname,ssex,sage,sdept))
                 conn.commit()
                 
    
    @app.route('/')
    def hi():
        return jsonify({'msg':  'OK', 'data':  request.args })
    
    @app.route('/add', methods=['POST'])
    def addData():
       data = request.form
       print('--->upload form data: ',   data)
       sno = data.get('sno', 'no data')
       sname = data.get('sname', '0')
       ssex = data.get('ssex', 'no data')
       sage = data.get('sage', 'no data')
       sdept = data.get('sdept', 'no data')
       add_name_db(sno,sname,ssex,sage,sdept)
    
       return jsonify({'msg': 'OK'})
    
    if __name__ == '__main__':
        app.run(debug=True)

    在命令提示符运行python文件

    表单页面验证是否连接成功

    去数据库中刷新 查看数据是否 进入。

    展开全文
  • 数据库课程设计基本框架(PHP+MySQL)

    千次阅读 2020-10-14 13:58:27
    前期准备 1.下载phpstudy2018 ...将其安装到D盘,然后启动...3.打开MySQL数据库并创建数据库和表 创建一个名为student的数据库数据库中创建两张数据表(分别为stu和stu_score) 如果你想直接使用文末的代码,那就跟我

    首先,PHP是世界上最好的语言,不接受反驳

    在这里插入图片描述

    前期准备

    1.下载phpstudy2018

    https://www.xp.cn/download.html

    将其安装到D盘,然后启动MySQL和Apache服务

    在这里插入图片描述
    在这里插入图片描述

    2.MySQL或者Apache无法启动

    这些问题相信你能在网上找到解决办法,我当时也碰到过,但是通过搜索引擎都得到了解决

    3.打开MySQL数据库并创建数据库和表

    创建一个名为student的数据库
    在数据库中创建两张数据表(分别为stu和stu_score)
    
    如果你想直接使用文末的代码,那就跟我创建名字一样的数据库和数据表
    
    如果你觉得我的命名不符合你的习惯,可以把数据库和数据表的名称改一下
    (不过后面的代码,你就要把涉及到数据库和数据表名称的地方,都改过来)
    

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    登陆时报错,也请上百度/谷歌

    4.把文末五个.php文件放入phpstudy的根目录

    在这里插入图片描述

    5.最终效果

    在浏览器中输入127.0.0.1或者localhost就可以访问你的页面,实现web页面和MySQL的交互
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    反正我是一点报错都没有,不过就是页面写的太简单了,技术不错的同学可以找一些CSS样式加上去

    在这里插入图片描述

    代码部分

    index.php

    <!DOCTYPE html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<title>学生信息管理</title>
    	<script>
    		function doDel(id) {
    			if (confirm("确定要删除么?")) {
    				window.location = 'action.php?action=del&id='+id;
    			}
    		}
    	</script>
    </head>
    <body>
    <center>
    	<?php
    		include_once "menu.php";
    	?>
    	<h3>浏览学生信息</h3>
    	<table width="600" border="1">
    		<tr align="center">
    			<th>学号</th>
    			<th>姓名</th>
    			<th>性别</th>
    			<th>年龄</th>
    			<th>班级</th>
    			<th>操作</th>
    		</tr>
    	<?php
    		//1.连接数据库
    		$mysql_conf1 = array(
    			'host'    => '127.0.0.1', 
    			'db'      => 'student', 
    			'db_user' => 'root', 
    			'db_pwd'  => 'root'
    		);
    		try {
    			$pdo1 = new PDO("mysql:host=" . $mysql_conf1['host'] . ";dbname=" . $mysql_conf1['db'], $mysql_conf1['db_user'], $mysql_conf1['db_pwd']);
    		} catch (PDOException $e) {
    			die("数据库连接失败" . $e->getMessage());
    		}
    		//2.解决中文乱码问题
    		$pdo1->query("SET NAMES 'UTF8'");
    		//3.执行sql语句,并实现解析和遍历
    		$sql1 = "SELECT * FROM stu ";
    		foreach ($pdo1->query($sql1) as $row) {
    			echo "<tr align='center'>";
    			echo "<td>{$row['id']}</td>";
    			echo "<td>{$row['name']}</td>";
    			echo "<td>{$row['sex']}</td>";
    			echo "<td>{$row['age']}</td>";
    			echo "<td>{$row['classid']}</td>";
    			echo "<td>
    					<a href='javascript:doDel({$row['id']})'>删除</a>
    					<a href='edit.php?id=({$row['id']})'>修改</a>
    				</td>";
    			echo "</tr>";
    		}
    	?>
    	</table>
    	
    	<br>
    	<br>
    	<br>
    	
    	<h3>浏览成绩信息</h3>
    	<table width="600" border="1">
    		<tr  align="center">
    			<th>学号</th>
    			<th>姓名</th>
    			<th>专业课成绩</th>
    			<th>操作</th>
    		</tr>
    	<?php
    		//1.连接数据库
    		$mysql_conf2 = array(
    			'host'    => '127.0.0.1', 
    			'db'      => 'student', 
    			'db_user' => 'root', 
    			'db_pwd'  => 'root'
    		);
    		try {
    			$pdo2 = new PDO("mysql:host=" . $mysql_conf2['host'] . ";dbname=" . $mysql_conf2['db'], $mysql_conf2['db_user'], $mysql_conf2['db_pwd']);
    		} catch (PDOException $e) {
    			die("数据库连接失败" . $e->getMessage());
    		}
    		//2.解决中文乱码问题
    		$pdo2->query("SET NAMES 'UTF8'");
    		//3.执行sql语句,并实现解析和遍历
    		$sql2 = "SELECT * FROM stu_score ";
    		foreach ($pdo2->query($sql2) as $row) {
    			echo "<tr align='center'>";
    			echo "<td>{$row['id']}</td>";
    			echo "<td>{$row['name']}</td>";
    			echo "<td>{$row['score']}</td>";
    			echo "<td>
    					<a href='javascript:doDel({$row['id']})'>删除</a>
    					<a href='edit.php?id=({$row['id']})'>修改</a>
    				</td>";
    			echo "</tr>";
    		}
    	?>
    	</table>
    	
    </center>
    </body>
    </html>
    

    menu.php

    <h2>学生信息管理</h2>
    <a href="index.php">浏览学生</a>
    <a href="add.php">增加学生</a>
    <hr>
    

    add.php

    <html>
    <head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<title>学生信息管理</title>
    </head>
    <body>
    <center>
        <?php include_once "menu.php"; ?>
        <h3>增加学生信息</h3>
    
        <form id="addstu" name="addstu" method="post" action="action.php?action=add">
            <table>
    				 <tr>
                    <td>学号</td>
                    <td><input id="id" name="id" type="text"/></td>
    
                </tr>
                <tr>
                    <td>姓名</td>
                    <td><input id="name" name="name" type="text"/></td>
    
                </tr>
                <tr>
                    <td>性别</td>
                    <td><input type="radio" name="sex" value="男"/>&nbsp;<input type="radio" name="sex" value="女"/>&nbsp;</td>
                </tr>
                <tr>
                    <td>年龄</td>
                    <td><input type="text" name="age" id="age"/></td>
                </tr>
                <tr>
                    <td>班级</td>
                    <td><input id="classid" name="classid" type="text"/></td>
                </tr>
    				 <tr>
                    <td>成绩</td>
                    <td><input id="score" name="score" type="text"/></td>
    
                </tr>
    				 <tr>
                    <td>&nbsp;</td>
                    <td><input type="submit" value="增加"/>&nbsp;&nbsp;
                        <input type="reset" value="重置"/>
                    </td>
                </tr>
            </table>
    
        </form>
    </center>
    </body>
    </html>
    

    edit.php

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>学生信息管理</title>
    
    </head>
    <body>
    <center>
       <?php
    		include_once"menu.php";
    		//连接数据库
    		$mysql_conf = array(
    			'host'    => '127.0.0.1', 
    			'db'      => 'student', 
    			'db_user' => 'root', 
    			'db_pwd'  => 'root'
    		);
    		try {
    			$pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
    		} catch (PDOException $e) {
    			die("数据库连接失败" . $e->getMessage());
    		}
    		$pdo->query("SET NAMES 'UTF8'");	//防止中文乱码
    		
    		//拼接sql语句,取出信息
    		$sql1 = "SELECT * FROM stu WHERE id =".$_GET['id'];
    		$sql2 = "SELECT * FROM stu_score WHERE id =".$_GET['id'];
    		$stmt1 = $pdo->query($sql1);	//返回预处理对象
    		$stmt2 = $pdo->query($sql2);	//返回预处理对象
    		if($stmt1->rowCount()>0 && $stmt2->rowCount()>0){
    			$stu = $stmt1->fetch(PDO::FETCH_ASSOC);	//按照关联数组进行解析
    			$stu_score = $stmt2->fetch(PDO::FETCH_ASSOC);	//按照关联数组进行解析
    		}else{
    			die("没有要修改的数据!");
    		}
        ?>
        <form id="addstu" name="editstu" method="post" action="action.php?action=edit">
            <input type="hidden" name="id" id="id" value="<?php echo $stu['id'];?>"/>
            <table>
    				 <tr>
                    <td>学号</td>
                    <td><input id="id" name="id" type="text" value="<?php echo $stu['id']?>"/></td>
    
                </tr>
                <tr>
                    <td>姓名</td>
                    <td><input id="name" name="name" type="text" value="<?php echo $stu['name']?>"/></td>
    
                </tr>
                <tr>
                    <td>性别</td>
                    <td><input type="radio" name="sex" value="男" <?php echo ($stu['sex']=="男")? "checked" : ""?>/><input type="radio" name="sex" value="女"  <?php echo ($stu['sex']=="女")? "checked" : ""?>/></td>
                </tr>
                <tr>
                    <td>年龄</td>
                    <td><input type="text" name="age" id="age" value="<?php echo $stu['age']?>"/></td>
                </tr>
                <tr>
                    <td>班级</td>
                    <td><input id="classid" name="classid" type="text" value="<?php echo $stu['classid']?>"/></td>
                </tr>
    				 <tr>
                    <td>成绩</td>
                    <td><input id="score" name="score" type="text" value="<?php echo $stu_score['score']?>"/></td>
    
                </tr>
                <tr>
                    <td> </td>
                    <td><input type="submit" value="修改"/>  
                        <input type="reset" value="重置"/>
                    </td>
                </tr>
            </table>
    
        </form>
    
    
    
    </center>
    </body>
    </html>
    

    action.php

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>学生信息管理</title>
    </head>
    <body>
    <center>
    	<?php
    	//连接数据库
    	$mysql_conf = array(
    				'host'    => '127.0.0.1', 
    				'db'      => 'student', 
    				'db_user' => 'root', 
    				'db_pwd'  => 'root'
    	);
    	try {
    		$pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
    	} catch (PDOException $e) {
    		die("数据库连接失败" . $e->getMessage());
    	}
    	$pdo->query("SET NAMES 'UTF8'");	//防止中文乱码
    	
    	$id = $_POST['id'];
    	$name = $_POST['name'];
    	$sex = $_POST['sex'];
    	$age = $_POST['age'];
    	$classid = $_POST['classid'];
    	$score = $_POST['score'];
    	
    	
    	//通过action的值进行对应操作
    	switch ($_GET['action']) {
    		case 'add':{   //增加操作
    			$sql1 = "INSERT INTO stu VALUES ('{$id}', '{$name}', '{$sex}', '{$age}', '{$classid}')";
    			$sql2 = "INSERT INTO stu_score VALUES ('{$id}', '{$name}', '{$score}')";
    			$rw1 = $pdo->exec($sql1);
    			$rw2 = $pdo->exec($sql2);
    			if ($rw1>0 && $rw2>0) {
    				echo "<script> alert('增加成功');
    								window.location='index.php'; //跳转到首页
    					 </script>";
    			} else {
    				echo "<script> alert('增加失败');
    								window.history.back(); //返回上一页
    					 </script>";
    			}
    			break;
    		}
    		case "del": {    //获取表单信息
    			$id = $_GET['id'];
    			$sql3 = "DELETE FROM stu WHERE id={$id}";
    			$sql4 = "DELETE FROM stu_score WHERE id={$id}";
    			$pdo->exec($sql3);
    			$pdo->exec($sql4);
    			header("Location:index.php");	//跳转到首页
    			break;
    		}
    		case "edit" :{   //获取表单信息
    			$name = $_POST['name'];
    			$sex = $_POST['sex'];
    			$age = $_POST['age'];
    			$classid = $_POST['classid'];
    			$score = $_POST['score'];
    			
    			$sql5 = "UPDATE stu SET name='{$name}',sex='{$sex}',age='{$age}',classid='{$classid}' WHERE id='{$id}'";
    			$sql6 = "UPDATE stu_score SET score='{$score}' WHERE id='{$id}'";
    			$rw3 = $pdo->exec($sql5);
    			$rw4 = $pdo->exec($sql6);
    			if($rw3>0 || $rw4>0){
    				echo "<script>alert('修改成功');window.location='index.php'</script>";
    			}else{
    				echo "<script>alert('修改失败');window.history.back()</script>";
    			}
    			break;
    		}
    	}
    	?>
    </center>
    </body>
    </html>
    
    展开全文
  • 本资源主要是用于ssm框架用于实时验证,给予jquery和1ajax来查询数据库数据来判断是否用户名可用
  • Django连接数据库以及其他的基本操作如何在Django中连接数据库连接自带的数据库在Django中连接其他的数据库在db中创建表单 如何在Django中连接数据库 在Django连接数据库有两种方式,第一种就是连接Django自带的...
  • JavaWeb数据库应用JavaWeb数据库应用开发的几种方式一、JSP+...此外,在有一定基础后可以学习使用主流开发框架,如Spring等,开发企业级应用。 一、JSP+JDBC 1.新建前端JSP页面,通过表单或超链接方式提交请求及参数
  • 组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized ...
  • Android数据库框架——ORMLite轻量级的对象关系映射(ORM)Java包 事实上,我想写数据库的念头已经很久了,在之前写了一个答题系统的小项目那只是初步的带了一下数据库,数据库是比较强大的,不是我们三言两语就能...
  • (本次操作使用的是Navicat数据库管理工具) 最最最重要的是,你有强烈的兴趣去学会它!!! 先放代码,之后我们详细讲解~ from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__...
  • SSM框架,test测试插入数据,操作成功,但数据库没有数据 1.SSM中插入数据没有报错,但是数据库没有值 原因:mybatis默认开启事务不会自动提交,只有调用了commit才会提交事务 解决方案:去掉继承:...
  • 主要介绍了详解如何解决SSM框架前台传参数到后台乱码的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • web开发面试很常见的一道题目就是做一个表单提交,将表单数据保存到数据库,这是一个对于涉足javaWeb开发朋友很有帮助的资源····
  • 系统管理后台基本框架SPPanAdmin,包括用户管理,角色管理,资源链接管理模块,可以动态分配权限和角色。 使用springboot、springdata jpa、shiro等服务端技术,使用freemarker模版渲染页面。 系统中对springdata的...
  • 基于springmvc,spring,mybatis框架整合的SSM,简单的表单正则验证 实现基本的增删改查功能。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,241
精华内容 39,696
关键字:

表单操作数据库框架

友情链接: ann(zhuan).rar