手记

EasyUI+JavaWeb奖助学金管理系统[5]-使用ApacheCommonDbUtils进行数据访问类开发

1. 本章任务

数据库表构建完成后,开始开发数据模型类和数据访问类。

2. 数据模型类开发

数据模型类一般跟表一一对应,这个非常简单,直接贴代码就OK。此处为了节省篇幅,省略get/set方法。


/**
 * 机构
 */
public class Depart {
	private String id;
	private String name;
	private String type;
	private String parentId;
}

/**
 * 流程
 */
public class Flow {
	private String id;
	private String studentId;
	private String studentName;
	private String projectId;
	private String projectName;
	private String content;
	private String classUserId;
	private String classAdvice;
	private String collegeUserId;
	private String collegeAdvice;
	private String schoolUserId;
	private String schoolAdvice;
	private String currentUserId;
	private String currentNode;
}
/**
 * 菜单
 */
public class Menu {
	private String id;
	private String name;
	private String path;
}
/**
 * 项目
 */
public class Project {
	private String id;
	private String type;
	private String name;
	private String about;
}
/**
 * 问题
 */
public class Question {
	private String id;
	private String userId;
	private String userName;
	private String departId;
	private String departName;
	private String content;
	private String reply;
}
/**
 * 角色菜单表
 */
public class RoleMenu {
	private String id;
	private String roleId;
	private String menuId;
}
/**
 * 用户
 */
public class User {
	private String id;
	private String userName;
	private String loginName;
	private String password;
	private String role;
	private String departId;
}

3. 数据访问类选型

之前一个系列的教程[熊猫大哥大教程–JSP+Servlet培训班作业管理系统开发教程]采用了原生的JDBC,其中重复的代码相当多,写起来挺累。

然鹅此时我们也还不想使用Spring/MyBatis等框架,这些属于后续教程的内容。

所以我们选择使用Apache组织提供的一个非常轻量级且简单的框架Apache Common DbUtils

打开[下载链接] commons.apache.org/proper/commons-dbutils/download_dbutils.cgi,点击标注链接下载类库,下载完成后将commons-dbutils-1.7.jar拷贝到WebContent/WEB-INF/lib下使用即可。

4. 数据访问类开发

Apache Common DbUtils是用来对数据库增删改查进行访问的类库,提供了一种简洁的模板代码,非常好理解。

但是在使用之前还需要先封装一个数据库连接工具类,用来向Apache Common DbUtils提供数据库连接。


/**
 * 数据库连接工具类
 */
public class ConnectionUtils {

	// 连接所需的固定参数
	private static String driver = "com.mysql.jdbc.Driver";
	private static String url = "jdbc:mysql://127.0.0.1:3306/scholar-system?useUnicode=true&characterEncoding=utf-8&useSSL=false";
	private static String user = "root";
	private static String password = "Easy@0122";

	// 初始化的时候加载去的弄
	static {
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	/**
	 * 获取连接
	 */
	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url, user, password);
	}

	/**
	 * 释放连接
	 */
	public static void releaseConnection(Connection conn) {
		if (conn != null)
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
	}
}

接下来,就可以利用DbUtils开发数据访问类了,此处我们以MenuDao的开发为例说明下,其他类几乎一模一样。


/**
 * 菜单数据访问类
 */
public class MenuDao {
	/**
	 * 新增
	 */
	public void insert(Menu menu) throws Exception {
		Connection conn = ConnectionUtils.getConnection();
		String sql = "insert into menu(name,path)values(?,?)";
		Object[] params = { menu.getName(), menu.getPath() };
		QueryRunner runner = new QueryRunner();
		runner.update(conn, sql, params);
		ConnectionUtils.releaseConnection(conn);
	}

	/**
	 * 移除
	 */
	public void deleteById(String id) throws Exception {
		Connection conn = ConnectionUtils.getConnection();
		String sql = "delete from menu where id =?";
		Object[] params = { id };
		QueryRunner runner = new QueryRunner();
		runner.update(conn, sql, params);
		ConnectionUtils.releaseConnection(conn);
	}

	/**
	 * 更新
	 */
	public void update(Menu menu) throws Exception {
		Connection conn = ConnectionUtils.getConnection();
		String sql = "update menu set name=?,path=? where id =?";
		Object[] params = { menu.getName(), menu.getPath(), menu.getId() };
		QueryRunner runner = new QueryRunner();
		runner.update(conn, sql, params);
		ConnectionUtils.releaseConnection(conn);
	}

	/**
	 * 获取一个
	 */
	public Menu getById(String id) throws Exception {
		Connection conn = ConnectionUtils.getConnection();
		String sql = "select * from menu where id =?";
		Object[] params = { id };
		QueryRunner runner = new QueryRunner();
		Menu menu = (Menu) runner.query(conn, sql, new BeanHandler
0人推荐
随时随地看视频
慕课网APP