1.JDBC介绍

JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,本文中的代码都是针对MySQL数据库实现的。

Java中提倡面向接口开发,而最经典的接口设计莫过于JDBC数据库接口

java游戏开发怎么用数据库保存数据 java开发的数据库_Java


JDBC(Java Database Connectivity)称为Java数据库连接。它的存在使得JAVA程序与数据库系统之间建立了一条通信的渠道。

JDBC 本质是一种规范或者一组接口

JDBC 驱动程序是对JDBC规范完整的实现。不同的数据库产商可以根据JDBC

接口规范,开发用于不同的数据库的驱动。

JDBC是Java连接数据库的基础技术,JDO(Java Data Object),Hibernate,MyBatis等技术框架都是使用了JDBC技术。

所以,只要学会了JDBC,就能够用Java连接不同的数据库,换一下驱动就行,也更容易理解各种使用数据库的Java框架技术。

2.新建一个Spring项目、

文件 -> 新建项目

java游戏开发怎么用数据库保存数据 java开发的数据库_数据库_02

根据个人需求修改项目名称

java游戏开发怎么用数据库保存数据 java开发的数据库_数据库_03

开发工具勾选一下,同时为了连接Oracle数据库,需要安装Oracle驱动

java游戏开发怎么用数据库保存数据 java开发的数据库_Java_04

之后进行项目生成

3.Java连接数据库 Mybatis

自动生成try-catch语句

选定代码块,快捷键: Ctrl+Alt+T -> 选择try-catch语句

1.首先添加Mybatis依赖:

<!--  mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <!--  mysql驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.22</version>
        </dependency>
        <!--  日志包  -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--  测试包 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.2</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <!--版本1.2.0否则无效-->
            <version>1.2.0</version>
        </dependency>

2.resources包中新建mybatis包 -> 包中新建mybatis-config.xml:

java游戏开发怎么用数据库保存数据 java开发的数据库_xml_05


mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	
    <!-- 由于Spring Boot自动配置缘故,此处不必配置,只用来做做样。-->
</configuration>
resources包中新建application.yaml,配置mybatis:

java游戏开发怎么用数据库保存数据 java开发的数据库_jdbc_06

application.yaml

spring:
  datasource:
    username: root
    password: 1234
    url: jdbc:mysql://localhost:3306/my
    driver-class-name: com.mysql.jdbc.Driver

# 配置mybatis规则
mybatis:
  config-location: classpath:mybatis/mybatis-config.xml  #全局配置文件位置
  mapper-locations: classpath:mybatis/*.xml  #sql映射文件位置

3.新建一个mapper包 -> 包中新建接口AccountMapper:

AccountMapper.java

package com.atgg.boot.mapper;

import com.atgg.boot.bean.Account;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface  AccountMapper {

    public Account getAcct(String id);
}
同时在bean包中新建一个account类:

Account.java:

package com.atgg.boot.bean;

import lombok.Data;

@Data
public class  Account {
    private String userId;
    private String userName;
}

4.resources中新建一个mapper包 -> 包中新建一个AccountMapper.xml与第三步中名称对应:

注意,是Copy Reference!!!

java游戏开发怎么用数据库保存数据 java开发的数据库_jdbc_07


java游戏开发怎么用数据库保存数据 java开发的数据库_java游戏开发怎么用数据库保存数据_08

AccountMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lun.boot.mapper.UserMapper">

    <select id="getUser" resultType="com.lun.boot.bean.User">
        select * from user where id=#{id}
    </select>
</mapper>

5.新建一个service包 -> 包中新建 AccountService.java:

java游戏开发怎么用数据库保存数据 java开发的数据库_java游戏开发怎么用数据库保存数据_09

AccountService.java

package com.atgg.boot.service;
import com.atgg.boot.bean.Account;
import com.atgg.boot.mapper.AccountMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class AccountService {

    @Autowired
    AccountMapper accountMapper; //红线不用管

    public Account getUser(String id){
        return accountMapper.getAcct(id);
    }
}