• 使用JPA方式访问mysql数据库


    首先pom文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.4.3</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.alibaba</groupId>
        <artifactId>springboot2xdemo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>springboot2xdemo</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>com.ibeetl</groupId>
                <artifactId>beetl-framework-starter</artifactId>
                <version>1.1.15.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    其次是当前文件夹所有相关文件

    首先是HomeController的代码

    package com.alibaba.springboot2xdemo.controller;
    
    import com.alibaba.springboot2xdemo.models.Users;
    import com.alibaba.springboot2xdemo.repository.UsersRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @SpringBootApplication
    @RestController
    @RequestMapping("/home")
    public class HomeController {
    
        @Autowired
        private UsersRepository usersRepository ;
    
        @RequestMapping("/getAll")
        public List<Users> getAll(){
            List<Users> listUsers = (List<Users>) usersRepository.findAll();
            return listUsers;
        }
    }

    其次是Users的代码

    package com.alibaba.springboot2xdemo.models;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name="users")
    public class Users {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        @Column(name="name")
        private String name;
        @Column(name="password")
        private String password;
        @Column(name="age")
        private int age;
        @Column(name="city")
        private String city;
        @Column(name="address")
        private String address;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }

    接着是UsersRepository的代码

    package com.alibaba.springboot2xdemo.repository;
    
    import com.alibaba.springboot2xdemo.models.Users;
    import org.beetl.sql.core.annotatoin.Param;
    import org.springframework.context.annotation.Bean;
    import org.springframework.data.jpa.repository.Query;
    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Component;
    
    import java.util.List;
    
    
    public interface UsersRepository extends CrudRepository<Users,Integer> {
    
        @Query("select u from Users u where u.name=?1")
        public List<Users> getUsersByName(@Param("name") String name);
    
        @Query("select u from Users u where u.name=?1 and u.password=?2")
        public List<Users> getUsersByNameAndPassword(@Param("name") String name,@Param("password") String password);
    
        @Query("select u from Users u where u.id=?1")
        public Users getUsersById(int id);
    
    
    
    }

    然后是Springboot2xdemoApplication.java的代码

    package com.alibaba.springboot2xdemo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Springboot2xdemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(Springboot2xdemoApplication.class, args);
        }
    
    }

    最后是配置文件

    spring.application.name=springBoot2xDemo
    server.port=8088
    spring.datasource.url=jdbc:mysql://lukairui.rwlb.rds.aliyuncs.com/test_db1?useSSL=false
    spring.datasource.username=flink_admin
    spring.datasource.password=xxxxx
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

    -----------附件是数据库的建表语句-------------------

    /*
     Navicat Premium Data Transfer
    
     Source Server         : lukairui.rwlb.rds.aliyuncs.com
     Source Server Type    : MySQL
     Source Server Version : 80013
     Source Host           : lukairui.rwlb.rds.aliyuncs.com:3306
     Source Schema         : test_db1
    
     Target Server Type    : MySQL
     Target Server Version : 80013
     File Encoding         : 65001
    
     Date: 16/03/2021 18:35:24
    */
    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for users
    -- ----------------------------
    DROP TABLE IF EXISTS `users`;
    CREATE TABLE `users` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) DEFAULT NULL,
      `password` varchar(255) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      `city` varchar(255) DEFAULT NULL,
      `address` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
    
    -- ----------------------------
    -- Records of users
    -- ----------------------------
    BEGIN;
    INSERT INTO `users` VALUES (1, 'lukairui', 'ksdf', 11, 'hangzhou', 'adhfu');
    INSERT INTO `users` VALUES (2, 'tianlu', 'difur', 23, 'beijing', 'adir');
    INSERT INTO `users` VALUES (3, 'lsdfk', 'iru', 11, 'peking', 'difur');
    COMMIT;
    
    SET FOREIGN_KEY_CHECKS = 1;
  • 相关阅读:
    强人教你吃自助火锅(转载)
    求职贴士:面试之十大不可说
    通过LoadRunner监控Linux的资源状况
    最美好的中秋祝福献给您
    一台电脑中招,整网均被感染9166.biz / 5y5.us Arp木马病毒专杀360独家发布
    白领把握交际的最佳时间〔转载〕
    40道题预测你能活多久
    老色狼给小色狼的32句忠告[转载]
    WINRAR 命令行语法[转载]
    <<软件性能测试与LoadRunner实战>>可以在网上和书店买到了
  • 原文地址:https://www.cnblogs.com/lukairui/p/14545180.html
Copyright © 2020-2023  润新知