jdbc读取mysql数据库_Java JDBC连接数据库(数据库信息读取property文件) - 穿梭于偶然...

大部分的应用程序程序都离不开

1.首先看看db-conn-param.properties的写法:

#######################Oracle###########################

oracle.driver: oracle.

注意:

* “oracle.jdbc.driver.OracleDriver” 等字符串前后面不可以有空格,否则会出现找不到驱动或用户名、密码错误等异常。

* properties 中字符串写入形式如同键值对,所以可以同上使用“=”或“:”把key与value隔开。

* properties 中value字符串不能使用引号包裹。

2.创建ConnectionFactory:

package com.orcl.util;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Properties;

import java.util.UUID;

public class ConnectionFactory {

/**

* 驱动

*/

private String driver;

/**

* 连接字符串

*/

private String url;

/**

* 数据库登录用户名称

*/

private String username;

/**

* 数据库登录密码

*/

private String password;

private String db;

/**

* 常量代表"ORACLE"

*/

public final static String ORACLE_DB = "oracle";

/**

* 常量代表"MYSQL"

*/

public final static String MYSQL_DB = "mysql";

/**

* 单例模式 获取一个数据库连接工厂

*/

private static ConnectionFactory connFactory = null;

public static synchronized ConnectionFactory getConnFactoryInstance(String db){

if(connFactory == null){

connFactory = new ConnectionFactory(db);

}

return connFactory;

}

private ConnectionFactory(String db){

try {

initOrclParams(db);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 通过配置文件获取数据库连接参数

* @param db 数据库名称

* @throws IOException

*/

private void initOrclParams(String db) throws IOException{

Properties properties = new Properties();

InputStream in = new FileInputStream(new File("db-conn-config.properties"));

properties.load(in);

if(db.equals(ORACLE_DB))

{

getParams(properties,db);

}

else if(db.equals(MYSQL_DB))

{

getParams(properties,db);

}

}

/**

* 根据数据库名获取相应的参数

* @param p Properties

* @param db

*/

private void getParams(Properties p,String db){

//注意:如果不用trim(),这样properties文件中的字符串后面不能有空格,否则会出错

driver = p.getProperty(db + ".driver").trim();

url = p.getProperty(db + ".url").trim();

username = p.getProperty(db + ".username").trim();

password = p.getProperty(db + ".password").trim();

}

/**

* 获取连接对象

* @param db 连接的数据库名 取值于ConnectionFactory中的常量:ORCL_DB/MYSQL_DB

* @return

*/

public Connection getConn()

{

Connection conn = null;

try

{

Class.forName(driver);

conn = DriverManager.getConnection(url, username, password);

// 设置不自动提交

conn.setAutoCommit(false);

}

catch (ClassNotFoundException e)

{

e.printStackTrace();

}

catch (SQLException e)

{

e.printStackTrace();

}

return conn;

}

/**

* 关闭操作

* @param conn

* @param pst

* @param rs

*/

public static void close(Connection conn, PreparedStatement pst, ResultSet rs) {

try {

if (rs != null) {

rs.close();

}

if (pst != null) {

pst.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 获取UUID

* @return

*/

public String getUUID() {

return UUID.randomUUID().toString();

}

public void setPassword(String password) {

this.password = password;

}

public String getDriver() {

return driver;

}

public void setDriver(String driver) {

this.driver = driver;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public String getDb() {

return db;

}

public void setDb(String db) {

this.db = db;

}

}

3.测试:

@Test

public void test() {

ConnectionFactory factory = ConnectionFactory.getConnFactoryInstance(ConnectionFactory.ORACLE_DB);

Connection conn = factory.getConn();

try {

PreparedStatement pst = conn.prepareStatement("select * from emp");

java.sql.ResultSet rs = pst.executeQuery();

while (rs.next()) {

System.out.println(rs.getString(2));

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

如果使用其他的数据库,可以在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Java中的JDBCJava Database Connectivity) API来连接MySQL数据库,并使用JSON库将查询结果封装成JSON格式的文件。以下是一个简单的示例: 首先,您需要导入MySQL和JSON库的依赖项。使用Maven项目可以在pom.xml文件中添加以下依赖项: ```xml <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> </dependencies> ``` 接下来,编写Java代码来连接MySQL数据库和生成JSON文件: ```java import java.io.FileWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class Main { public static void main(String[] args) throws Exception { // 连接到MySQL数据库 String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); // 执行查询语句 Statement stmt = conn.createStatement(); String sql = "SELECT id, name, age FROM mytable"; ResultSet rs = stmt.executeQuery(sql); // 将查询结果封装成JSON对象 JsonArray jsonArray = new JsonArray(); while (rs.next()) { JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("id", rs.getInt("id")); jsonObject.addProperty("name", rs.getString("name")); jsonObject.addProperty("age", rs.getInt("age")); jsonArray.add(jsonObject); } // 将JSON对象写入文件 FileWriter fileWriter = new FileWriter("output.json"); fileWriter.write(jsonArray.toString()); fileWriter.close(); // 关闭连接 rs.close(); stmt.close(); conn.close(); } } ``` 以上代码将查询结果封装成一个包含多个JSON对象的JSON数组,并将其写入名为"output.json"的文件中。您可以根据自己的需要更改查询语句和输出文件的名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值