java编写连接数据库代码

1、把数据库连接信息(用户名,密码等等)保存早配置文件jdbc.properties中。如下jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=BBS
jdbc.username=sa
jdbc.password=ddme123
java编写连接数据库代码


2、之后创建DBConfig.java提取在jdbc.properties中保存的属性值。如下:
package com.dedo.BBS.Jdbc;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class DBConfig {
String driver;
String url;
String username;
String password;//在jdbc.properties中保存的值
public String getDriver() {//添加get方法
return driver;
}
public String getUrl() {
return url;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public DBConfig() {//在构造函数中赋值
super();
InputStream is = null;
try {
is = new FileInputStream("D:\\jdbc.properties");
Properties p = new   Properties();
p.load(is);
this.driver = p.getProperty("jdbc.driver");//对当前类对应的值赋值
this.url = p.getProperty("jdbc.url");
this.username = p.getProperty("jdbc.username");
this.password = p.getProperty("jdbc.password");
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally{
if(is != null)
{
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}


3、 把SQL语句封装成一个常量类,便于开发和维护。
package com.dedo.BBS.Jdbc;

public class SQLConstant {
public static final String addmessage = "INSERT INTO BBSMessage(auther,info,published) VALUES(?,?,?)";//添加公告信息
public static final String getmessage = "SELECT * FROM BBSMessage";//获取公告信息
}

4、由于数据库很多操作是重复的,所以可以把重复的操作建立一个通用操作类JDBCOption.java,并且添加jar包。可以减少重复操作,标准化数据操作。操作分两大类,其中update()用于增删改,query()用于查。如下:
package com.dedo.BBS.Jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.dedo.BBS.Tool.Common;

public class JDBCOption {
private static DBConfig dbconfig = null;

static {
dbconfig = new DBConfig();
try {
Class.forName(dbconfig.getDriver());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static int update(String sql, Object... paramters) {
int returnValue = 0;
Connection conn = null;
PreparedStatement ps = null;

try {
conn = DriverManager.getConnection(dbconfig.getUrl(), dbconfig.getUsername(), dbconfig.getPassword());
ps = conn.prepareStatement(sql);
for (int i = 0; i < paramters.length; i++) {
ps.setObject(i + 1, paramters[i]);
}
returnValue = ps.executeUpdate();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
Common.free(conn, ps, null);
}

return returnValue;
}

public static List query(String sql, Object... paramters) {
List returnValue = new ArrayList();
ResultSet rs = null;
Connection conn = null;
PreparedStatement ps = null;

try {
conn = DriverManager.getConnection(dbconfig.getUrl(), dbconfig.getUsername(), dbconfig.getPassword());
ps = conn.prepareStatement(sql);
for (int i = 0; i < paramters.length; i++) {
ps.setObject(i + 1, paramters[i]);
}
rs = ps.executeQuery();
while (rs.next()) {
ResultSetMetaData md = rs.getMetaData();
Map map = new HashMap();
for (int i = 0; i < md.getColumnCount(); i++) {
map.put(md.getColumnLabel(i + 1), rs.getObject(i + 1));
}
returnValue.add(map);
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
Common.free(conn, ps, rs);
}

return returnValue;
}
}
 
 
5、为tool中创建common.java,其中一些通用操作,比如关闭数据库


package com.dedo.BBS.Tool;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Common {
 
 public static void free(Connection conn, Statement sm, ResultSet rs) {
  if (rs != null) {
   try {
    rs.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   if (sm != null) {
    try {
     sm.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }

   }
   if (conn != null) {
    try {
     conn.close();
    } catch (SQLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }

   }

  }
 }
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 以下是一个使用Java连接数据库并读取内容的示例代码: ```java import java.sql.*; public class ReadFromDatabase { public static void main(String[] args) { // 设置数据库连接信息 String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "mypassword"; // 连接数据库 try { Connection conn = DriverManager.getConnection(url, username, password); System.out.println("数据库连接成功"); // 从数据库中读取内容 String query = "SELECT * FROM mytable"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(query); // 输出查询结果 while (rs.next()) { String id = rs.getString("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { System.out.println("数据库连接失败:" + e.getMessage()); } } } ``` 在此示例代码中,我们使用了Java的JDBC API来连接MySQL数据库并从表中读取内容。首先,我们设置了连接URL、用户名和密码,然后使用`DriverManager`类获取数据库连接。接下来,我们创建了一个`Statement`对象,并使用`executeQuery`方法执行了一个SELECT语句,将结果存储在一个`ResultSet`对象中。最后,我们使用`next`方法逐行读取结果集中的数据,并将其输出到控制台。最后,我们关闭了`ResultSet`、`Statement`和`Connection`对象,以释放资源并关闭连接。 ### 回答2: 在Java连接数据库并读取内容可以使用Java的JDBC(Java Database Connectivity)API。以下是一个示例代码: ```java import java.sql.*; public class DatabaseConnectionExample { public static void main(String[] args) { try { // 驱动程序名 String driver = "com.mysql.cj.jdbc.Driver"; // 连接数据库的URL String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC"; // 数据库用户名 String username = "root"; // 数据库密码 String password = "password"; // 加载驱动程序 Class.forName(driver); // 建立连接 Connection connection = DriverManager.getConnection(url, username, password); // 创建Statement对象 Statement statement = connection.createStatement(); // 执行查询语句 String sql = "SELECT * FROM example_table"; ResultSet resultSet = statement.executeQuery(sql); // 遍历结果集并输出内容 while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); System.out.println("id: " + id + ", name: " + name); } // 关闭结果集、Statement对象和数据库连接 resultSet.close(); statement.close(); connection.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 注意,这只是一个简单的示例代码,并且假设使用MySQL数据库作为示例。实际应用中,您需要使用合适的驱动程序、正确的连接URL、用户名和密码,并根据数据库的结构和需要编写相应的SQL查询语句来读取内容。 ### 回答3: 你好,以下是一个简单的Java代码示例,演示如何连接数据库并读取内容: 1. 首先,你需要引入Java的JDBC库,如下所示: ``` import java.sql.*; ``` 2. 在连接数据库之前,你需要先加载数据库的驱动程序,例如MySQL的驱动程序: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 3. 设置数据库连接的URL、用户名和密码,在这里以MySQL数据库为例: ``` String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password"; ``` 4. 建立与数据库的连接: ``` Connection connection = DriverManager.getConnection(url, username, password); ``` 5. 创建一个Statement对象,用于执行数据库查询语句: ``` Statement statement = connection.createStatement(); ``` 6. 编写SQL查询语句,并执行查询: ``` String sql = "SELECT * FROM mytable"; ResultSet resultSet = statement.executeQuery(sql); ``` 7. 遍历查询结果,读取数据库中的内容: ``` while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); // 在这里可以对读取到的数据进行处理 System.out.println("ID: " + id + ", Name: " + name); } ``` 8. 关闭数据库连接和相关资源: ``` resultSet.close(); statement.close(); connection.close(); ``` 请注意,上述代码中的数据库连接URL、用户名和密码需要根据实际情况进行修改。此外,还需要根据你所使用的数据库的语法,编写相应的查询语句。 希望对你有所帮助!如有任何问题,请随时追问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值