利用java中的Properties类链接数据库:
一、首先建立Properties文件:
方法一:利用java语句生成
上面程序建立了一个名为“mysql.ini”的文件,运行以后,如果没有报错,在当前目录文件夹下会生成一个名为mysql.ini的配置文件:
点开mysql.ini文件(用记事本方式打开),会发现里面包含之前导入进去的key-value对:
方法二:直接打开记事本输入key-value对
在当前项目文件路径下建立记事本文档,名字任意,只要符合要求即可,这里我直接命名为mysql,而且这里的后缀名也是任意的,这里直接就是mysql.txt文件,并没有改后缀,甚至不要后缀都可
在记事本中,直接写入driver、url、user、password等
这里可以看到txt文档和之前ini文档中关于url的写法不同,只是默认导致的,不需要改变,但是如果是自己新建的txt文件的话,里面不可以写成ini文件中的url,一定要按照数据库连接的规则写
二、java程序连接数据库并运行操作
利用Properties类导出属性文件,
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;
public class ExecutDDL {
/*
* 建立私有的driver、url、user、pass,为了后面数据库的驱动与连接
* */
private String driver;
private String url;
private String user;
private String pass;
/*
* 这个方法用来导出属性文件中的key-value对,即之前我们写入的driver、url、user、pass的对应值
* 其中paramFile是表示导入的属性文件的文件名
* */
public void initParam(String paramFile) throws Exception{
Properties props=new Properties();
props.load(new FileInputStream(paramFile));
driver=props.getProperty("driver");
url=props.getProperty("url");
user=props.getProperty("user");
pass=props.getProperty("pass");
}
public void createTable(String sql) throws Exception{
Class.forName(driver);//加载驱动
try(
//获取数据库连接
Connection conn=DriverManager.getConnection(url,user,pass);
Statement stmt=conn.createStatement())
{
//执行DDL语句,创建数据表,数据表的名字是:test
stmt.executeUpdate(sql);
}
}
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ExecutDDL ed=new ExecutDDL();
//导入mysql.ini属性文件
ed.initParam("mysql.ini");
//执行DDL语句
ed.createTable("create table test(id int auto_increment primary key,name varchar(255));");
System.out.println("建表成功");
}
}
上面导入的是mysql.ini属性文件,如果要导入其他的属性文件,只需要将mysql.ini改成其他属性文件的名字即可,比如mysql.txt
执行的DML语句可以是很多,前面介绍的update、modify、delete、create、select等数据库操作语言(DML)和数据库定义语言(DDL)都可以使用Statement接口对象的executeUpdate进行操作
打开DOS系统,查看数据库,可以看见在数据库ceshi里面已经创建了一个新的数据表test:
至于为什么是在ceshi的数据库里,而不是其他数据库,很明显,在url语句:url=jdbc:mysql://localhost:3306/ceshi?useSSL=false&serverTimezone=UTC中我们就已经指定了要操作的数据库