• 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" + "	" + "admin" + "	" + "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 + "	" + username + "	" + 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";
    
    }

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

  • 相关阅读:
    spring(2)
    Android之滑动按钮实现Demo
    spring(1)
    spring(4)
    Android之ImageSwitch控件
    使用非阻塞ServerSocketChannel、SocketChannel代替ServerSocket和Socket
    Android之界面刷新(invalidate和postInvalidate使用)
    Android之改变控件的背景及形态
    Android之获得内存剩余大小与总大小
    OpenCV中矩阵的归一化
  • 原文地址:https://www.cnblogs.com/daxiang2008/p/9212124.html
Copyright © 2020-2023  润新知