服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java连接MySQL数据库命令行程序过程

Java连接MySQL数据库命令行程序过程

2022-02-16 15:03guoyp2126 Java教程

SQL编程包括两种形式,一种是过程化编程,主要通过数据库交互式工具,通过存储过程、触发器、函数等形式的编程;另一种是嵌入式SQL编程,将SQL语句嵌入到高级开发语言,完成数据的各种操作

SQL编程包括两种形式,一种是过程化编程,主要通过数据库交互式工具,通过存储过程、触发器、函数等形式的编程;另一种是嵌入式SQL编程,将SQL语句嵌入到高级开发语言,完成数据的各种操作。

命令行程序由于对外依赖的jar包少易上手,通常作为教学示例程序。我们通过命令行 程序介绍嵌入式SQL开发过程,示例开发工具选择idea。

 

创建表

通过SQLyol建立表student;

CREATE TABLE student(
Sno VARCHAR(10) PRIMARY KEY,
Sname VARCHAR(50),
Ssex   VARCHAR(2), 
Sage   INT,
Sdept VARCHAR(50)
)

插入数据:

Java连接MySQL数据库命令行程序过程

 

创建命令行程序

新建一个命令行程序,打开idea工具,选择:File―>New―>Project,弹出对话框,如下图所示

Java连接MySQL数据库命令行程序过程

直接点击Next按钮,进入到下一个Tab页,勾选Create project from template,选择Command line App

Java连接MySQL数据库命令行程序过程

点击Next进入下一个Tab页,如图所示

Java连接MySQL数据库命令行程序过程

输入项目名称,选择项目路径,书写基本包包名,基本包名一般由com+域名组成,确保其唯一性。填写完成后,点击finish按钮,完成命令行程序的创建,创建完成的页面如下图所示

Java连接MySQL数据库命令行程序过程

 

下载并导入jar包

下载mysql-connector-java-8.0.13.jar;下载地址,,将jar包存入本地目录。
项目中导入Jar包。点击File―>ProjectStructure 打开对话框,如下图所示

Java连接MySQL数据库命令行程序过程

点击右侧“+”,选择“JARs or directories”,弹出对话框,选择刚才下载的jar包,如下图所示:

Java连接MySQL数据库命令行程序过程

点击OK,完成jar包的导入,导入后就可以在工程中看到导入的jar包,如下图

Java连接MySQL数据库命令行程序过程

 

创建工具包

在开始练习时,就应该形成一个良好的习惯,将不同类型的类放置在不同包中,创建工具包util,用存放公共使用的工具类,这里的类一般使用静态方法。
创建数据库连接类:

Java连接MySQL数据库命令行程序过程

代码如下:

public class MySqlConnection {
    private static Connection con=null;
    private static String driveName ="com.mysql.cj.jdbc.Driver";
    private static String url = "jdbc:mysql://127.0.0.1:3306/sl?serverTimezone=GMT%2b8";
    private static String user="root";
    private static String pws="root";
    
    private  MySqlConnection(){}
    public static Connection getCon(){
       if(con==null){
           con = getConnection();
       }
       return con;
    }
    private static Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName(driveName);
            connection = DriverManager.getConnection(url,user,pws);

        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }finally {
            return connection;
        }
    }
}

这里的方法使用static 修饰代表是静态方法,该方法属于类,而不是对象;
创建SQL执行包装类,完成数据库各种方法的执行,这里仅写了一个返回ResultSet方法,代码如下:

public class MysqlHelp {
    public  static ResultSet query(String sql)  {
        Connection con = MySqlConnection.getCon();
        ResultSet result =null;

        try {
            Statement stmt = con.createStatement();
            result= stmt.executeQuery(sql);

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            return result;
        }
    }
}

 

创建实体类

创建pojo包,在该包下创建实体类Student,实体类只包含私有属性和get、set方法,为了简单期间,增加了一个lombok包,就不需要写get、set方法。lombok jar的安装,File―>Settings ,打开对话框如下图:

Java连接MySQL数据库命令行程序过程

在实体类上加主解符“@Data”即可。

当然也可以不用Lombok,老老实实的写get、set方法也可以,使用lombok代码如下

@Data
public class Student {
    private String sno;
    private String sName;
    private String sSex;
    private int sAge;
    private String sDept;

    public Student(String sno,String name, String sex,int age,String dept){
        this.setSno(sno);
        this.setSAge(age);
        this.setSName(name);
        this.setSDept(dept);
        this.setSSex(sex);
    }

    public String getInfo(){
        return "学号:"+sno +"姓名:"+sName+"性别:"+sSex+"年龄:"+"院系:"+sDept;
    }
}

为了演示方便,在实体类中增加了一个构造函数和字符串的输出,实体类当然完全没有这两个方法。

 

创建持久化层

创建一个dao包,包中创建类StudentDao,完成数据的存取操作,代码如下

public class StudentDao {
    public void getStudentInfo(){
        String sql="SELECT Sno AS sno,Sname AS NAME,Ssex AS sex,Sage AS age,Sdept AS dept FROM student";

        ResultSet result = MysqlHelp.query(sql);
        if(result!=null) {
            while (true) {
                try {
                    if (!result.next()) break;
                    String sno = result.getString("sno");
                    String name = result.getString("name");
                    int age = result.getInt("age");
                    String dept = result.getString("dept");
                    String sex = result.getString("sex");
                    Student student = new Student(sno, name, sex, age, dept);
                    System.out.println(student.getInfo());
                } catch (SQLException e) {
                    e.printStackTrace();
                }

            }
        }
    }

这里调用了上面定义的 MysqlHelp的query方法,完成数据的存取及结构化数据向面向对象实体类的转换。

 

业务层调用

打开main函数,写入下代码,完成dao层方法调用

public class Main {

    public static void main(String[] args) {
        StudentDao student = new StudentDao();
        student.getStudentInfo();
    }
}

执行结果如下:

Java连接MySQL数据库命令行程序过程

 

总结

在这里尽量使用面向对象的封装技术,将每个类的职责单一化,而不是把所有代码写到一起的做法,尽管写到一起,代码更好读,而且简单。另外思考一个问题,我们能不能把结构化的数据自动转换为实体对象,以及数据库的连接、SQL的执行交给第三方的程序去做,简化我们的代码?答案是肯定的,Mybaits、hibernet就是完成这些工作的框架

以上就是Java连接MySQL数据库创建命令行程序过程的详细内容,更多关于Java连接MySQL数据库的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/guoyp2126/article/details/115659574

延伸 · 阅读

精彩推荐
  • Java教程Java System.getProperty()-获取系统参数案例详解

    Java System.getProperty()-获取系统参数案例详解

    这篇文章主要介绍了Java System.getProperty()-获取系统参数案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以...

    ArvinWoo9972021-11-18
  • Java教程浅析SpringBoot及环境搭建过程

    浅析SpringBoot及环境搭建过程

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.这篇文章主要介绍了SpringBoot介绍及环境搭建,需要的朋...

    创作我的创作6772021-03-26
  • Java教程java获取网络类型的方法

    java获取网络类型的方法

    这篇文章主要介绍了java获取网络类型的方法,涉及java针对网络类型的参数获取及判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    小贾4872020-01-08
  • Java教程Java中基于Shiro,JWT实现微信小程序登录完整例子及实现过程

    Java中基于Shiro,JWT实现微信小程序登录完整例子及实现过程

    这篇文章主要介绍了Java中基于Shiro,JWT实现微信小程序登录完整例子 ,实现了小程序的自定义登陆,将自定义登陆态token返回给小程序作为登陆凭证。需要的...

    EalenXie9652021-06-18
  • Java教程Java动态添加view的方法

    Java动态添加view的方法

    这篇文章主要介绍了Java动态添加view的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    bzlj29120095962752020-07-31
  • Java教程java实现Floyd算法

    java实现Floyd算法

    这篇文章主要为大家详细介绍了java实现Floyd算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    竖支7252021-03-14
  • Java教程Java数字签名算法DSA实例详解

    Java数字签名算法DSA实例详解

    这篇文章主要介绍了Java数字签名算法DSA,结合实例形式分析了Java数字签名算法DSA具体定义与使用技巧,需要的朋友可以参考下...

    chengqiuming10352021-04-29
  • Java教程springboot整合kaptcha验证码的示例代码

    springboot整合kaptcha验证码的示例代码

    kaptcha是一个很有用的验证码生成工具,本篇文章主要介绍了springboot整合kaptcha验证码的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考...

    贪挽懒月9182021-05-11