Java基礎入門-JDBC操作MySQL數據庫DBUtil工具類

創建Maven項目

步驟如下

按照上圖操作後,一直下一步下一步操作最後項目結構如下

修改pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.xiangty</groupId>
	<artifactId>jdbc-demo</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>jdbc-demo Maven Webapp</name>
	<url>http://maven.apache.org</url>
	
	<dependencies>
		<!-- 單元測試 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        
        
        <!-- 數據庫鏈接包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>      
	</dependencies>
	
	<build>
		<finalName>jdbc-demo</finalName>
	</build>	
</project>

配置好pom.xml文件後,選中項目,右鍵Maven->Update Project... ,刷新項目maven配置

數據庫連接工具類

DBUtil.java

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

/**
 * 數據庫連接工具類
 * 
 * @author xiangty
 *
 *         1.配置驅動 2.獲取數據庫連接 3.查詢方法、更新刪除方法 4.關閉流
 */
public class DBUtil {

	private static final String DIRVER_CLASS = "com.mysql.jdbc.Driver";
	private static final String DIRVER_URL = "jdbc:mysql://localhost:3306/test";
	private static final String DIRVER_USERNAME = "root";
	private static final String DIRVER_PASSWORD = "123456";

	protected static Connection connection;
	protected static PreparedStatement prearedStatement;
	protected static ResultSet resultSet;

	/**
	 * 1.配置驅動
	 */
	static {
		try {
			Class.forName(DIRVER_CLASS);
			System.out.println("--------------     配置驅動");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 2.獲取數據庫連接
	 * 
	 * @return
	 */
	public static Connection getConnection() {
		try {
			connection = DriverManager.getConnection(DIRVER_URL, DIRVER_USERNAME, DIRVER_PASSWORD);
			System.out.println("-------------   獲取數據庫連接");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return connection;
	}

	/**
	 * 查詢方法
	 *
	 * @param sql    查詢的sql語句, sql中可以帶問號,例如:"select * from table_name where id=?;"
	 * @param params 傳入的參數內容數組
	 * @return
	 */
	public static ResultSet commQuery(String sql, Object... params) {
		connection = getConnection();

		try {
			prearedStatement = connection.prepareStatement(sql);
			if (params != null && params.length > 0) {
				setValues(prearedStatement, params);
			}
			resultSet = prearedStatement.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return resultSet;
	}

	/**
	 * 給sql中的參數賦值
	 *
	 * @param pst
	 * @param params 參數數組
	 */
	private static void setValues(PreparedStatement pst, Object... params) {
		for (int i = 0; i < params.length; i++) {
			try {
				pst.setObject(i + 1, params[i]);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 增刪改 方法
	 *
	 * @param sql    增刪改的sql
	 * @param params 傳入的參數
	 * @return 返回被操作的條數
	 */
	public static int commUpdate(String sql, Object... params) {
		int result = 0;
		connection = getConnection();
		try {
			prearedStatement = connection.prepareStatement(sql);
			if (params != null && params.length > 0) {
				setValues(prearedStatement, params);
			}
			result = prearedStatement.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			closeAll(connection, prearedStatement, resultSet);
		}
		return result;
	}

	/**
	 * 關閉Connection, PreparedStatement, ResultSet
	 */
	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) {
			e.printStackTrace();
		}
	}

}

User.java

/**
 * 	用戶類
 * @author xiangty
 *
 */
public class User {
	/**
	 * id編號
	 */
	private Integer id;
	
	/**
	 * 用戶名稱
	 */
	private String username;
	
	/**
	 * 密碼
	 */
	private String password;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}

}

測試數據庫驅動和連接是否成功

測試查詢方法

測試新增

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章