美文网首页程序员
Spring Boot + MySQL+JDBC+JPA网页制作

Spring Boot + MySQL+JDBC+JPA网页制作

作者: 不是蒜苗 | 来源:发表于2018-12-26 14:41 被阅读2次

tips:数据库用的是MySQL,编辑器是Intellij,具体两个东西怎么安装请左转Google。

需要JAVA基础知识,SQL数据库基础知识

很多地方具体原理我也不是很清楚,记录下来只是防止自己忘了。本文属于入门入门入门级别笔记,仅仅是自学笔记,轻弹勿喷,仅仅完成了最基础的前后端通信。

养成一个好习惯:三层架构

image
  • 界面层 controller

    文件命名规则example: MainController.java

  • 业务逻辑层 service

    文件命名规则example: StudentService.java

  • 数据层 dao

    文件命名规则example: StudentDao.java

model层用于存放数据库对应的mapped

`文件命名规则example: Student.java`

Intellij新建项目实践

新建Spring Boot + Jpa项目

  1. Spring项目


    image
  2. 修改项目名称


    image
  3. 添加web依赖


    image
  4. 添加SQL依赖:MySQL,JPA,JDBC


    image
  5. 选择项目存放地址


    image

配置

  • 当前目录状态

我们只需要关注框框内的就好了。
com.example.test存放的是java代码,resource.static下存放静态文件

image
  • 在.com.example.text下构建三层架构目录
image
  • resourece目录下的application.properties重命名为application.yml
image
  • 编辑application.yml,添加如下代码。
    spring:
      datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/javaweb
        username: root
        password: root
      jpa:
        properties:
          hibernate:
            hbm2ddl:
              auto: update
        show-sql: true

datasource下的driver-class-name属性标注使用了jdbc驱动。
url属性为数据库地址,我这里是本地数据库,最后的/javaweb为数据库名称。

jpa下的auto表示有表的话修改表

model下建立student表的实体类

在model目录下新建一个Student类,里面的get和set方法可以用快捷键Alt+Ins调出Generate选择Getter and Setter

类上面一定要加@Entity,才能声明为实体

package com.example.classcommunity3.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

//实体
@Entity
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long sid;

    private String saccount;

    private String spassword;

    private String sname;

    public Long getSid() {
        return sid;
    }

    public void setSid(Long sid) {
        this.sid = sid;
    }

    public String getSaccount() {
        return scount;
    }

    public void setSaccount(String scount) {
        this.scount = scount;
    }

    public String getSpassword() {
        return spassword;
    }

    public void setSpassword(String spassword) {
        this.spassword = spassword;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }
}

dao下建立Student表对应的数据层

dao目录下新建一个类StudentDao

package com.example.classcommunity3.dao;

import com.example.classcommunity3.model.Student;
import org.springframework.data.jpa.repository.JpaRepository;

public interface StudentDao extends JpaRepository<Student, Long> {
}

添加第一个数据库操作:获取Student表中的account

public interface StudentDao extends JpaRepository<Student, Long> {

    Student findByScount(String count);
}

在Intellij中输入findBy就会自动弹出许多函数,这些都是JPA根据刚才的Student表实体自动生成的。

service目录下建立业务层类

service目录下新建StudentService类,我们现在要实现的是判断页面输入的密码和数据库中的是否一致。需要建立StudentDao的对象,查找到的数据会以List<Student>的格式输出。我们这里只查询1组数据,所以直接用Student对象接受赋值。

package com.example.classcommunity3.service;

import com.example.classcommunity3.dao.StudentDao;
import com.example.classcommunity3.model.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

//业务逻辑
@Service
@RequestMapping
public class StudentService {

    @Autowired
    StudentDao studentDao;      //数据操作

    public boolean login(String name, String psw) {

        Student student = studentDao.findByScount(name);
        if (student != null) {
            System.out.print(student.getSpassword());
            if (psw.equals(student.getSpassword()))
                return true;
        }

        return false;
    }
}

controller目录下新建界面层类

controller目录下新建MainController类,有如下代码,从页面中获取name和psw,并传值到service。

package com.example.classcommunity3.controller;

import com.example.classcommunity3.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MainController {

    @Autowired
    StudentService studentService;

    @RequestMapping("/login")
    public boolean login(String name,String psw){

        return studentService.login(name,psw);
    }
}

再贴一个HTML与Java通信的代码

Login.html

<script>
  $("#login").click(function () {
      var name=$('#count').val();
      var psw = $('#psw').val();
      alert(name);
      $.ajax({
          url:'/login',
          type:'post',
          data:{name:name,psw:psw},
          dataType:'json',
          success:function (result) {
              if(result)
                  alert('成功');
              else
                  alert('失败');
          }
      });
  })
</script>

学习总结:Web刚开始最头疼的就是入门的问题,很多东西不知道,前后端如何通信不知道。仅此文用来记录一下学习过程。

相关文章

网友评论

    本文标题:Spring Boot + MySQL+JDBC+JPA网页制作

    本文链接:https://www.haomeiwen.com/subject/qsyhlqtx.html