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

网友投稿 243 2022-12-02

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

目录创建表创建命令行程序下载并导入jar包创建工具包创建实体类创建持久化层业务层调用总结

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)

)

插入数据:

创建命令行程序

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

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

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

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

下载并导入jar包

下载mysql-connector-java-8.0.13.jar;下载地址,,将jar包存入本地目录。

项目中导入Jar包。点击File—>ProjectStructure 打开对话框,如下图所示

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

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

创建工具包

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

创建数据库连接类:

代码如下:

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 ,打开对话框如下图:

在实体类上加主http://解符“@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 sexhttp://,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();

}

}

执行结果如下:

总结

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:NYOJ 237 游戏高手的烦恼 && POJ3041-Asteroids ( 二分图的最大匹配 )
下一篇:NYOJ 698 A Coin Problem (斐波那契)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~