0
点赞
收藏
分享

微信扫一扫

七步让Java程序通过JDBC连接数据库

星巢文化 2022-02-27 阅读 122

七步让Java程序通过JDBC连接数据库!

1. 加载数据库驱动

String DRIVER = "com.mysql.jdbc.Driver";
Class.forName(DRIVER);

2.负责与要操作的数据库建立连接

String URL = "jdbc:mysql://localhost:3306/dbs_jxc?characterEncoding=UTF8&useUnicode=true&useSSL=false";
String USERNAME = "数据库账号";
String PASSWORD = "数据库密码";
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);

3.创建要执行的SQL命令。例如:

String sql_1 = "select * from user";
String sql_2 = "insert into user values(id,name,pwd)";

4.创建一个执行增删改查操作的人员(statement)

PreparedStatement pst_1 = connection.prepareStatement(sql_1);
PreparedStatement pst_2 = connection.prepareStatement(sql_2);

5.调用statement执行SQL命令的方法,并保存结果。

executeQuery() // 返回结果集,适合对数据库查询时使用

return pst_1.executeQuery();

executeUpdate() // 返回被影响行数,适合对数据库增删改时使用

return pst_2.executeUpdate();

6.处理返回的结果

根据程序需要来自定义

7.释放资源

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

除此之外

贴一下我和东软老师学习的时候创建的一个对数据库操作的工具包,有需要的同学可以自行查看或复制。

package systemERP.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 将操作数据库的一些共有代码进行提取
 * @author Administrator
 *
 */
public class database {
	private static final String DRIVER = "com.mysql.jdbc.Driver";
	private static final String URL = "jdbc:mysql://localhost:3306/dbs_jxc?characterEncoding=UTF8&useUnicode=true&useSSL=false";
	private static final String USERNAME = "root";
	private static final String PASSWORD = "200153";
	
	// 定义一个获得数据库连接的方法
	public static Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName(DRIVER);
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			
			// 获得配置文件中的数据
			/*Properties pro = new Properties();// 反射
			InputStream inStream = DataBase.class.getClassLoader().getResourceAsStream("db.properties");
			System.out.println(inStream);
			// 加载配置文件
			// 获得配置文件中的数据
			String driver = pro.getProperty("driver");
			String url = pro.getProperty("url");
			String username = pro.getProperty("username");
			String pwd = pro.getProperty("pwd");
			
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, pwd);*/
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	// 
	/**
	 * 定义一个通用的增删改方法
	 * @param sql  要执行的增删改的失去了命令
	 * @param params 调用方法时给的参数列表
	 * @return 执行SQL命令后的受影响行数
	 * ... 表示它是一个可变长度的数组
	 */
	public static int executeUpdateAll(String sql,Object ... params) {
		// 获得连接对象
		Connection conn = getConnection();
		PreparedStatement pst = null;
		// 创建执行对象
		try {
			pst = conn.prepareStatement(sql);
			// 为sql命令中的占位符赋值
			if(params != null) {
				for (int i = 0; i < params.length; i++) {
					pst.setObject((i+1), params[i]);
				}
			}
			// 调用方法并返回结果
			return pst.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			closeAll(conn, pst, null);
		}
		return 0;
	}
	
	// 查询方法
	public static ResultSet myQuery(String sql,Object ... params) {
		// 获得连接对象
		Connection conn = getConnection();
		PreparedStatement pst = null;
		// 创建执行对象
		try {
			pst = conn.prepareStatement(sql);
			// 为sql命令中的占位符赋值
			if(params != null) {
				for (int i = 0; i < params.length; i++) {
					pst.setObject((i+1), params[i]);
				}
			}
			// 调用方法并返回结果
			return pst.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	// 释放资源的方法
	public static void closeAll(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) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}
举报

相关推荐

JDBC连接数据库

JDBC—连接数据库

JDBC--Java连接数据库

java连接数据库(一)JDBC

Java中使用JDBC连接数据库

sql之jdbc连接数据库

0 条评论