Java连接MySQL数据库命令行程序过程
目录
- 创建表
- 创建命令行程序
- 下载并导入jar包
- 创建工具包
- 创建实体类
- 创建持久化层
- 业务层调用
- 总结
命令行程序由于对外依赖的jar包少易上手,通常作为教学示例程序。我们通过命令行 程序介绍嵌入式SQL开发过程,示例开发工具选择idea。
创建表 通过SQLyol建立表student;
CREATE TABLE student(Sno VARCHAR(10) PRIMARY KEY,Sname VARCHAR(50),SsexVARCHAR(2), SageINT,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包,如下图所示:
文章图片
【Java连接MySQL数据库命令行程序过程】点击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"; privateMySqlConnection(){}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 {publicstatic 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 ,打开对话框如下图:
文章图片
在实体类上加主解符“@Data”即可。
当然也可以不用Lombok,老老实实的写get、set方法也可以,使用lombok代码如下
@Datapublic 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(); }}
执行结果如下:
文章图片
总结 在这里尽量使用面向对象的封装技术,将每个类的职责单一化,而不是把所有代码写到一起的做法,尽管写到一起,代码更好读,而且简单。另外思考一个问题,我们能不能把结构化的数据自动转换为实体对象,以及数据库的连接、SQL的执行交给第三方的程序去做,简化我们的代码?答案是肯定的,Mybaits、hibernet就是完成这些工作的框架
以上就是Java连接MySQL数据库创建命令行程序过程的详细内容,更多关于Java连接MySQL数据库的资料请关注脚本之家其它相关文章!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- Java基础-高级特性-枚举实现状态机