我不是懒惰,网上搜了几小时了,没找到合适的我想要个很简单的封装类,类似这样:public List getRows(String sql)public boolean saveUpdateDelete(String sql)就是查询的时候,传一个sql语句,返回一个list,新增的时候也是传一条sql以前尝试写过一个resultSet到VO的映射,但因为不知道怎么得到数据类型,写了一半就放弃了,现在也找不到了。因为只是小应用,数据库操作很少,太复杂的就没必要了。安全点就行。
解决方案 »
- 点击一个JMenu时,相当于按下键盘的F1如何编写
- Java list add 功能一問
- 求助:类的问题,计算成绩!
- xml解析,获得某节点的children,但是如果children会很多,能否分批提取?
- 请教有没有那位兄弟搞过JGraph?有没有相关资料?
- 我刚学java可以用它做什么小程序吗?
- help!!
- 发现if(e.getActionCommand()=="XX")与if(e.getActionCommand()equals("XX"))等效,为什么?
- 邮件消息体 content I/O 和 文件 I/O 的一些问题?----已经有方案……(急)
- java多线程问题
- javax.swing.UIManager 干什么用
- swing技术,如何实现图片闪烁,抖动的?
现在没在家,等回去了给你发份。
* 自己写的jdbc 连接数据库的模板。
* @author Administrator
*
*/
public class JdbcTemp { /**
* @param args
*/
public static void main(String[] args) {
JdbcTemp jt = new JdbcTemp();
// String sql = "select * from dept";
// List ls = jt.findObject(jt.getConnection(), sql);
// for (int i = 0; i < ls.size(); i++) {
// System.out.println(ls.get(i));
// }
String sql1 = "delete from dept where deptid=3";
jt.update(jt.getConnection(), sql1);
} /**
* 获取连接
*
* @return
*/
public Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/demo", "root", "root");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
} /**
* 查
*
* @param conn
* @param sql
* @return
*/
public List<Map<String, Object>> findObject(Connection conn, String sql) {
PreparedStatement ps = null;
ResultSet rs = null;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData rmd = rs.getMetaData();
while (rs.next()) {// 获取行数据
Map<String, Object> map = new LinkedHashMap<String, Object>();
for (int i = 1; i <= rmd.getColumnCount(); i++) {
map.put(rmd.getColumnName(i), rs.getObject(i));// getObect(i)作用是获取当前行指定列的数据。
}
list.add(map);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
} /**
* 增、删、改
*
* @param conn
* @param sql
*/
public void update(Connection conn, String sql) {
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
每次通过getConnection函数来获取Connection是不明智的。
因为建立连接,释放连接所产生的资源消耗过大。在小系统中可能无法察觉,一旦系统做大了,尤其是在高频率访问数据库或要求并发性能的时候,此方式更加容易导致系统变慢。所以,一般情况下都是通过连接池的方式,减少Connection对象连接与释放相关操作。而我们常使用的Hibernate等一些持久层框架以及一些web容器,都会采用连接池的方式来维护数据库连接。
这是个练习,实际应用时当然不能直接获得connection对象了。
一般就是配置连接池。
直接用连接池。 不想自己写,可以用JDK 或 第三方的。