Java课程设计---数据库工具类

接下来看看传统的查询方式(一个完整的查询)

package com.java.mysql;

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

/**
 * <p>
 * Title: db.java
 * </p>
 * 
 * @author daxiang
 * @version 1.0 创建时间:2018年5月22日 上午8:00:22
 */
public class DB {
	public static void main(String[] args) {
		Connection con;// 声明Connection对象
		String driver = "com.mysql.jdbc.Driver";// 驱动程序名
		String url = "jdbc:mysql://localhost:3306/db_student";// URL指向要访问的数据库名db_student
		String user = "root";// MySQL配置时的用户名
		String password = "123";// MySQL配置时的密码
		try {
			Class.forName(driver);// 加载驱动程序
			con = DriverManager.getConnection(url, user, password);// 使用getConnection()方法,连接MySQL数据库!!
			if (!con.isClosed())
				System.out.println("成功连接mysql数据库");
			// 2.创建statement类对象,用来执行SQL语句!!
			Statement statement = con.createStatement();
			// 要执行的SQL语句
			String sql = "select * from admin";
			// 3.ResultSet类,用来存放获取的结果集!!
			ResultSet rs = statement.executeQuery(sql);
			System.out.println("-----------------");
			System.out.println("执行结果如下所示:");
			System.out.println("-----------------");
			System.out.println("id" + "\t" + "admin" + "\t" + "password");
			System.out.println("-----------------");
			
			// 遍历查询结果集
			while (rs.next()) {
				String id = rs.getString(1);// 获取第一列数据
				String username = rs.getString(2); // 获取第二列数据
				String pwd= rs.getString(3); // 获取第三列数据
				System.out.println(id + "\t" + username + "\t" + pwd);// 输出结果
			}
			rs.close();
			con.close();
		} catch (ClassNotFoundException e) {
			System.out.println("无法加载驱动");
			e.printStackTrace();// 数据库驱动类异常处理
		} catch (SQLException e) {
			e.printStackTrace();// 数据库连接失败异常处理
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  上面完成了对db_student数据库中admin表的查询,而且得到了结果

  但是这样的并没有实现代码复用,当别的实体需要查询或者其他操作时,还需要重复的连接等过程,所以我们对常用操作进行封装,将数据库的基本“增、删、查、改”封装到一个类里面

  DbUtil.java(数据库操作工具类)

package com.student.util;

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

/*
 * 项目名称: 
 * 
 * 文件名称为:DbUtil.java
 * 文件创建人:daxiang
 * 
 * 修改记录:
 * 修改人  修改日期  备注
 * 
 * 
 * 
 * @author daxiang
 * @version 
 * @time  2018年6月14日 上午9:16:44
 * @copyright daxiang
 */
public class DbUtil {

	private Connection con;// 声明Connection对象

	public DbUtil() {
		String driver = "com.mysql.jdbc.Driver";// 驱动程序名
		String url = "jdbc:mysql://localhost:3306/db_student?characterEncoding=utf8";// URL指向要访问的数据库名mysql
		String user = "root";// MySQL配置时的用户名
		String password = "123";// MySQL配置时的密码
		try {
			// 加载驱动
			Class.forName(driver);
			// 获取连接
			con = DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 增、删、改
	 * 
	 * @return
	 * @throws SQLException
	 */
	public boolean execute(String sql) throws SQLException {
		// 获取操作对象
		Statement statement = con.createStatement();
		// 执行
		if (statement.executeUpdate(sql) > 0) {
			return true;
		}
		return false;
	}

	/**
	 * 查询
	 * 
	 * @param sql
	 * @return
	 * @throws SQLException
	 */
	public ResultSet executeQuery(String sql) throws SQLException {
		// 获取操作对象
		Statement statement = con.createStatement();
		// 执行
		return statement.executeQuery(sql);
	}

}

  

  AppConstants .java(常量参数类)

package com.demo.util;

/*
 * 项目名称: 
 * 
 * 文件名称为:AppConstants.java
 * 文件创建人:daxiang
 *
 * @author daxiang
 * @version 
 * @time  2018年6月13日 下午7:57:10
 * @copyright daxiang
 */
public class AppConstants {
	// jdbc
	public static final String JDBC_URL = "jdbc:mysql://127.0.0.1:3306/db_student?characterEncoding=utf8";
	public static final String JDBC_USERNAME = "root";
	public static final String JDBC_PASSWORD = "123";
	public static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";

}

这样封装后我们就可以简化服务类中的代码,请看

posted @ 2018-06-22 10:13  大象老师  阅读(1195)  评论(0编辑  收藏  举报