首页 > 数据库开发 > JDBC之运用dbutils组件实现对数据库的增删改查等操作

JDBC之运用dbutils组件实现对数据库的增删改查等操作

实例化查询接口

[java][/java]

view plaincopyprint?

  1. QueryRunner qr = new QueryRunner();//实例化查询接口
 QueryRunner qr = new QueryRunner();//实例化查询接口

添加

[java][/java]

view plaincopyprint?

  1. /** 添加电影 */
  2. public int insert(Movie movie) {
  3.     Object[] params = {movie.getName(), movie.getType(), movie.getCountry(), movie.getYear(),
  4.             movie.getMonth(), movie.getIntro(), movie.getPic()};
  5.     try {
  6.         return qr.update(getConn(), "insert into t_movie(name,type,country,year,month,intro,pic)" +
  7.                 " values(?,?,?,?,?,?,?)", params);
  8.     } catch (SQLException e) {
  9.         e.printStackTrace();
  10.     }
  11.     return 0;
  12. }
	/** 添加电影 */
	public int insert(Movie movie) {
		Object[] params = {movie.getName(), movie.getType(), movie.getCountry(), movie.getYear(),
				movie.getMonth(), movie.getIntro(), movie.getPic()};
		try {
			return qr.update(getConn(), "insert into t_movie(name,type,country,year,month,intro,pic)" +
					" values(?,?,?,?,?,?,?)", params);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return 0;
	}

删除

[java][/java]

view plaincopyprint?

  1. /** 根据PK删除电影 */
  2. public int delete(Integer id) {
  3.     Object[] params = {id};
  4.     try {
  5.         return qr.update(getConn(), "delete from t_movie where id=?", params);
  6.     } catch (SQLException e) {
  7.         e.printStackTrace();
  8.     }
  9.     return 0;
  10. }
 /** 根据PK删除电影 */
public int delete(Integer id) {
Object[] params = {id};
try {
return qr.update(getConn(), "delete from t_movie where id=?", params);
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}

修改

[java][/java]

view plaincopyprint?

  1. /** 根据PK修改电影 */
  2. public int update(Movie movie) {
  3.     Object[] params = {movie.getName(), movie.getType(), movie.getCountry(), movie.getId()};
  4.     try {
  5.         return qr.update(getConn(), "update t_movie set name=?,type=?,country=? where id=?", params);
  6.     } catch (SQLException e) {
  7.         e.printStackTrace();
  8.     }
  9.     return 0;
  10. }
	/** 根据PK修改电影 */
	public int update(Movie movie) {
		Object[] params = {movie.getName(), movie.getType(), movie.getCountry(), movie.getId()};
		try {
			return qr.update(getConn(), "update t_movie set name=?,type=?,country=? where id=?", params);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return 0;
	}

查询

[java][/java]

view plaincopyprint?

  1. /** 根据条件(默认一张表所有数据)返回多条记录 */
  2. public List list(String kw) {
  3.     List list = null;
  4.     Object[] params = {};//代入的参数列表
  5.     String sqlWhere = "";
  6.     String sql = "select * from t_movie where 1=1 ";
  7.     if(kw!=null && !kw.equals("")) {
  8.         sqlWhere = " and name like '%"+kw+"%'";
  9.     }
  10.     sql += sqlWhere;
  11.     ResultSetHandler> rsh = new BeanListHandler(Movie.class);//把结果集转成BeanList
  12.     try {
  13.         list = qr.query(getConn(), sql, rsh, params);   //调用查询接口的查询函数
  14.     } catch (SQLException e) {
  15.         e.printStackTrace();
  16.     }
  17.     return list;
  18. }
 /** 根据条件(默认一张表所有数据)返回多条记录 */
public List list(String kw) {
List list = null;
Object[] params = {};//代入的参数列表
String sqlWhere = "";
String sql = "select * from t_movie where 1=1 ";
if(kw!=null && !kw.equals("")) {
sqlWhere = " and name like '%"+kw+"%'";
}
sql += sqlWhere;
ResultSetHandler> rsh = new BeanListHandler(Movie.class);//把结果集转成BeanList
try {
list = qr.query(getConn(), sql, rsh, params); //调用查询接口的查询函数
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}

匹配

[java][/java]

view plaincopyprint?

  1. /** 根据PK显示单条电影信息 */
  2. public Movie getOne(Integer id) {
  3.     Movie movie = null;
  4.     Object[] params = {id};
  5.     ResultSetHandler<Movie> rsh = new BeanHandler<Movie>(Movie.class);//把单条结果集封装成一个Bean实例
  6.     try {
  7.         movie = qr.query(getConn(), "select * from t_movie where id=?", rsh, params);
  8.     } catch (SQLException e) {
  9.         e.printStackTrace();
  10.     }
  11.     return movie;
  12. }
	/** 根据PK显示单条电影信息 */
	public Movie getOne(Integer id) {
		Movie movie = null;
		Object[] params = {id};
		ResultSetHandler<Movie> rsh = new BeanHandler<Movie>(Movie.class);//把单条结果集封装成一个Bean实例
		try {
			movie = qr.query(getConn(), "select * from t_movie where id=?", rsh, params);	
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return movie;
	}

唯一性验证

[java][/java]

view plaincopyprint?

  1. /** 检测同名电影是否添加过 */
  2. public Long validateMovieName(String name) {
  3.     Map map = null;
  4.     Object[] params = {name};
  5.     ResultSetHandler> rsh = new MapHandler();//把单条结果集封装成一个Map
  6.     try {
  7.         map = qr.query(getConn(), "select count(1) nums from t_movie where name=?", rsh, params);
  8.     } catch (SQLException e) {
  9.         e.printStackTrace();
  10.     }
  11.     return (Long)map.get("nums");
  12. }
 /** 检测同名电影是否添加过 */
public Long validateMovieName(String name) {
Map map = null;
Object[] params = {name};
ResultSetHandler> rsh = new MapHandler();//把单条结果集封装成一个Map
try {
map = qr.query(getConn(), "select count(1) nums from t_movie where name=?", rsh, params);
} catch (SQLException e) {
e.printStackTrace();
}
return (Long)map.get("nums");
}

BaseDAO.java文件中

[java][/java]

view plaincopyprint?

  1. Connection conn;
	Connection conn;
[java][/java]

view plaincopyprint?

  1. /** 返回一个Connection */
  2. public Connection getConn(){
  3.     try {
  4.         Properties pro = new Properties();
  5.         try {
  6.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  7.             pro.load(BaseDAO.class.getResourceAsStream("/db.properties"));
  8.         } catch (Exception e) {
  9.             // TODO Auto-generated catch block
  10.             System.out.println("属性文件未找到");
  11.         }
  12.         String u = pro.getProperty("user");
  13.         String password = pro.getProperty("password");
  14.         String url = pro.getProperty("url");//关于连接Oracle的两种方式:thin和oci
  15.         conn = DriverManager.getConnection(url, u, password);
  16.     } catch (SQLException e) {
  17.         e.printStackTrace();
  18.     }
  19.     return conn;
  20. }
 /** 返回一个Connection */
public Connection getConn(){
try {
Properties pro = new Properties();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
pro.load(BaseDAO.class.getResourceAsStream("/db.properties"));
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("属性文件未找到");
}
String u = pro.getProperty("user");
String password = pro.getProperty("password");
String url = pro.getProperty("url");//关于连接Oracle的两种方式:thin和oci
conn = DriverManager.getConnection(url, u, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

MovieDAO.java

[java][/java]

view plaincopyprint?

  1. package com.app.dao;
  2. import java.sql.SQLException;
  3. import java.util.List;
  4. import java.util.Map;
  5. import org.apache.commons.dbutils.QueryRunner;
  6. import org.apache.commons.dbutils.ResultSetHandler;
  7. import org.apache.commons.dbutils.handlers.BeanHandler;
  8. import org.apache.commons.dbutils.handlers.BeanListHandler;
  9. import org.apache.commons.dbutils.handlers.MapHandler;
  10. import com.app.domain.Movie;
  11. public class MovieDAO extends BaseDAO {
  12.     QueryRunner qr = new QueryRunner();//实例化查询接口
  13.     /** 添加电影 */
  14.     public int insert(Movie movie) {
  15.         Object[] params = {movie.getName(), movie.getType(), movie.getCountry(), movie.getYear(),
  16.                 movie.getMonth(), movie.getIntro(), movie.getPic()};
  17.         try {
  18.             return qr.update(getConn(), "insert into t_movie(name,type,country,year,month,intro,pic)" +
  19.                     " values(?,?,?,?,?,?,?)", params);
  20.         } catch (SQLException e) {
  21.             e.printStackTrace();
  22.         }
  23.         return 0;
  24.     }
  25.     /** 根据PK删除电影 */
  26.     public int delete(Integer id) {
  27.         Object[] params = {id};
  28.         try {
  29.             return qr.update(getConn(), "delete from t_movie where id=?", params);
  30.         } catch (SQLException e) {
  31.             e.printStackTrace();
  32.         }
  33.         return 0;
  34.     }
  35.     /** 根据PK修改电影 */
  36.     public int update(Movie movie) {
  37.         Object[] params = {movie.getName(), movie.getType(), movie.getCountry(), movie.getId()};
  38.         try {
  39.             return qr.update(getConn(), "update t_movie set name=?,type=?,country=? where id=?", params);
  40.         } catch (SQLException e) {
  41.             e.printStackTrace();
  42.         }
  43.         return 0;
  44.     }
  45.     /** 根据条件(默认一张表所有数据)返回多条记录 */
  46.     public List<Movie> list(String kw) {
  47.         List<Movie> list = null;
  48.         Object[] params = {};//代入的参数列表
  49.         String sqlWhere = "";
  50.         String sql = "select * from t_movie where 1=1 ";
  51.         if(kw!=null && !kw.equals("")) {
  52.             sqlWhere = " and name like '%"+kw+"%'";
  53.         }
  54.         sql += sqlWhere;
  55.         ResultSetHandler<List<Movie>> rsh = new BeanListHandler<Movie>(Movie.class);//把结果集转成BeanList
  56.         try {
  57.             list = qr.query(getConn(), sql, rsh, params);   //调用查询接口的查询函数
  58.         } catch (SQLException e) {
  59.             e.printStackTrace();
  60.         }
  61.         return list;
  62.     }
  63.     /** 根据PK显示单条电影信息 */
  64.     public Movie getOne(Integer id) {
  65.         Movie movie = null;
  66.         Object[] params = {id};
  67.         ResultSetHandler<Movie> rsh = new BeanHandler<Movie>(Movie.class);//把单条结果集封装成一个Bean实例
  68.         try {
  69.             movie = qr.query(getConn(), "select * from t_movie where id=?", rsh, params);
  70.         } catch (SQLException e) {
  71.             e.printStackTrace();
  72.         }
  73.         return movie;
  74.     }
  75.     /** 检测同名电影是否添加过 */
  76.     public Long validateMovieName(String name) {
  77.         Map<String, Object> map = null;
  78.         Object[] params = {name};
  79.         ResultSetHandler<Map<String, Object>> rsh = new MapHandler();//把单条结果集封装成一个Map
  80.         try {
  81.             map = qr.query(getConn(), "select count(1) nums from t_movie where name=?", rsh, params);
  82.         } catch (SQLException e) {
  83.             e.printStackTrace();
  84.         }
  85.         return (Long)map.get("nums");
  86.     }
  87.     /*public static void main(String[] args) {
  88.         MovieDAO movieDAO = new MovieDAO();
  89.         System.out.println(movieDAO.validateMovieName("蓝精灵"));
  90.     }*/
  91. }

本文固定链接: http://www.devba.com/index.php/archives/2695.html | 开发吧

报歉!评论已关闭.