码迷,mamicode.com
首页 > 数据库 > 详细

命令行编译带外部包依赖的java源文件 [以JDBC MySQL8为例]

时间:2019-05-26 09:26:56      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:coding   host   connect   tab   load   加载   hide   form   下载   

环境: MySQL8 JDK11(SE)

首先下载MySQL8的JDBC驱动

https://dev.mysql.com/downloads/connector/j/
选 PlatForm Independent

技术图片

下载完文件名差不多是 “mysql-connector-java-8.<小版本号>.jar”

 技术图片

 

然后写一个JDBC小的程序(需要数据库提前建好表)

 

技术图片
 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.ResultSet;
 4 import java.sql.Statement;
 5 import java.lang.ClassNotFoundException;
 6 
 7 
 8 public class jdbcer {
 9     public static final String DRIVER = "com.mysql.cj.jdbc.Driver";
10     public static final String URL = "jdbc:mysql://localhost:3306/zk_stu?useSSL=false&serverTimezone=UTC";
11     public static final String USER = "root";
12     public static final String PASSWD = "yourpasswd";
13 
14     public static void main(String[] args) throws Exception{
15         Class.forName("com.mysql.cj.jdbc.Driver");
16         Connection conn = DriverManager.getConnection(URL, USER, PASSWD);
17         Statement stmt = conn.createStatement();
18         ResultSet rs = stmt.executeQuery("SELECT * FROM 路人194班");
19 
20         while (rs.next()){
21             System.out.println(rs.getString("学号") + "   姓名:" + rs.getString("姓名"));
22         }
23     }
24 
25 
26 }
View Code

 

把MySQL8的JDBC驱动和jdbcer.java放在同一目录

例子如下(tab键可以智能补全路径)

编译

javac -encoding UTF-8 -cp mysql-connector-java-8.0.16.jar; jdbcer.java

运行

java -cp mysql-connector-java-8.0.16.jar;  jdbcer

  

如果不加cp参数,就会出现类的加载抛出异常(运行错误:java.lang.ClassNotFoundException)

-encoding用于指定编码格式,用UTF-8来避免中文乱码
-cp 即classpath是依赖路径,多个包可以用逗号分割,最后用分号表示classpath结束(分号绝不能少)
分为两种:目录和jar包
  • 目录型:

      fie.java依赖于目录dirA和dirB下的一些class文件,这种就是目录型的

      编译:      javac -cp dirA,dirB; fie.java

  

  • Jar包型:

      fig.java依赖于1.jar和2.jar(尽管这两个包在同一个目录dirC下)

      编译:       javac -cp 1.jar, 2.jar; fig.java

 

 

注意:直接 javac -cp dirC; fig.java 是没用的,因为jar包其实也是一种“目录”,javac编译器要打开jar包才能看到里面的内容



记得不要漏掉逗号分号
两者运行都要加classpath,即-cp参数


当然可以编译后直接运行,把两个命令写成一句
javac -encoding UTF-8 -cp mysql-connector-java-8.0.16.jar; jdbcer.java && java -cp mysql-connector-java-8.0.16.jar; jdbcer



MySQL8和MySQL5的密码策略和JDBC驱动名等都不一样
最后附上:javac中使用-d,以及javac / java中使用-cp介绍

命令行编译带外部包依赖的java源文件 [以JDBC MySQL8为例]

标签:coding   host   connect   tab   load   加载   hide   form   下载   

原文地址:https://www.cnblogs.com/yucloud/p/10924899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!