1、引言

在系统的学习了 Java SE 之后,我们知道要想保存或读取数据,需要使用二进制IO对文本进行序列化,反序列化。重复的创建文件使得文件不易于管理且数据重复,相对繁琐且效率低下。因此需要Java需要连接到数据库来实现对数据的访问和存储。

这里我们需要先了解Java与MySQL的基本连接、什么是jdbc,到后面我们还需要了解数据库连接池以及jdbctemplate的使用。

所谓jdbc,即Java DataBase Connectivity,使用Java语言操作数据库。本质其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

2、下载

(1)直接点击进入下载页面

MySQL :: Download Connector/J

如何给mysql返回固定值的数据 mysql 返回一行怎么写_jdbc

https://dev.mysql.com/downloads/connector/j/

(2)选择Platform Independent,如果是Windows操作系统就选择下面那个ZIP Archive结尾的。

如何给mysql返回固定值的数据 mysql 返回一行怎么写_jdbc_02

 (3)选择下方No thanks,just start my download.

如何给mysql返回固定值的数据 mysql 返回一行怎么写_如何给mysql返回固定值的数据_03

3、环境配置 

 (1)解压好以后,复制my-sql-connector-java-8.0.26.jar(不同版本可能位置不一样,找到类似的jar包即可)到项目底下。

如何给mysql返回固定值的数据 mysql 返回一行怎么写_mysql_04

(2)右键点击Add As Library... , 当然你可以创建lib文件夹直接将以后所有的包都放进来,然后把lib添加到Library中。

如何给mysql返回固定值的数据 mysql 返回一行怎么写_如何给mysql返回固定值的数据_05

 (3)在idea的右边栏选择database,“+”,选择MySQL

(4)添加数据库信息并测试

输入“Name”(随便取一个名字),“User”,“Password”,然后点击下方的“Test Connection”测试能否可以成功连接数据库,若出现“Success”则说明可以连接。

4、编写代码测试

(1)先查看数据库已有的表

如何给mysql返回固定值的数据 mysql 返回一行怎么写_数据库_06

 (2)复制代码查询

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) throws Exception{
        //注册驱动
//        Class.forName("com.mysql.jdbc.Driver");               //JDBC5之后可以不用注册驱动
        //获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root","root");
        //定义sql语句
        String sql = "select * from db1.emp";
        //获取执行sql的对象Statement
        Statement stmt = conn.createStatement();
        //执行sql
        ResultSet resultSet = stmt.executeQuery(sql);
        //处理结果
        while(resultSet.next()) {                                     //让游标移动到下一行,true 表示有数据行,可以到下一行
            int id = resultSet.getInt(1);                    //获取id
            String name = resultSet.getString("ename");             //获取姓名
            System.out.println("id:" + id + " name:" + name);
        }
        //释放资源
        stmt.close();
        conn.close();
    }
}

这里用到的几个对象做一下简单的介绍: 

1、DriverManager:驱动管理器(注册驱动,获取数据库连接)
            获取数据库连接对象:DriverManager.getConnection(String url,String user,String password);
            url语法:jdbc:mysql://ip地址(域名):端口号/数据库名称(若为主机,ip地址和端口号可以不写)
2、Connection:数据库连接对象
       功能:(1)获取sql对象:Statement createStatement();
                       PreparedStatement preparedStatement(String sql);
            (2)管理事务:开启事务:setAutoCommit(boolean autoCommit):调用方法设置参数为false,即开启事务
                       提交事务;commit();
                       回滚事务:rollback();
3、Statement:执行sql数据库
        获取sql的对象:
            boolean execute(String sql);   可以执行任意的sql (了解)
            int executeUpdate(String sql);   执行DML(insert,update,delete)、DDL(create,alter,drop)语句返回值影响行数,通过行数判断是否执行成功
            ResultSet executeQuery(String sql);   执行DDL(select)语句
4、ResultSet:结果集对象
        next();         游标向下一定一行
        getXxx();      获取数据,如:getInt(),getDouble();    代表列的数据类型
                            参数:int 如getString(1);   代表列的编号
                                 String 如 getDouble("balance");     代表列的名称

 点击运行就能正常输出数据库的信息了。

如何给mysql返回固定值的数据 mysql 返回一行怎么写_java_07

 (3)注意事项

1.JDBC5之后可以不用注册驱动,不写也行

2.如果不能正常显示中文,在 jdbc:mysql://localhost:3306/××× 的l后面添加“?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8”即可

3.如果出现“No suitable driver found for jdbc:mysql://localhost:3306/×××”的报错信息,注意看是否成功导入了mysql的jar包,即3(2)这一步。如果反复导入都不行,打开“Project Structure...”

如何给mysql返回固定值的数据 mysql 返回一行怎么写_jdbc_08

选择 Modules --> 你的项目(mysql) --> Dependencies --> + ,选择已下载的mysql的jar包,导入即可。

如何给mysql返回固定值的数据 mysql 返回一行怎么写_jdbc_09