package chelian.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class JDBCUtil {
private static final String Url = "jdbc:mysql://localhost:3306/db_address?characterEncoding=UTF-8";
private static final String User = "root";
private static final String Password = "12344";
private static final String Driver = "com.mysql.jdbc.Driver";
private static Connection con = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;
public static int IDentity;// 新增操作时的id
static {
try {
Class.forName(Driver);// 注册驱动
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e);
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(Url, User, Password);
}
/**
* 更新或者保存数据
*
* @param sql
* @return
*/
public static boolean updateOrSave(String sqlStr, List<Object> values) {
System.out.println("JDBCUtil SQL: " + sqlStr);
try {
con = getConnection();
ps = con.prepareStatement(sqlStr);
int size = values.size();
for (int i = 0; i < size; i++) {
ps.setObject((i + 1), values.get(i));
}
int result = ps.executeUpdate();
ps = con.prepareStatement("select @@identity");
rs = ps.executeQuery();
if (rs.next()) {
JDBCUtil.IDentity = (Integer) rs.getInt(1);
}
return result > 0 ? true : false;
} catch (Exception e) {
e.printStackTrace();
} finally {
free(rs, ps, con);
}
return false;
}
public static boolean delete(String sqlStr, int id) {
System.out.println("JDBCUtil SQL: " + sqlStr);
try {
con = getConnection();
ps = con.prepareStatement(sqlStr);
ps.setInt(1, id);
int result = ps.executeUpdate();
return result > 0 ? true : false;
} catch (Exception e) {
e.printStackTrace();
} finally {
free(null, ps, con);
}
return false;
}
/**
* 释放数据库的连接等资源
*
* @param rs
* @param ps
* @param conn
*/
public static void free(ResultSet rs, PreparedStatement ps, Connection conn) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
/**
* 这个函数查询出来的将查出来的所有列的值放在list里面 每一条list记录有很多Object,用数组存储
*
* @param sqlStr
* @param values
* 参数值
* @return
*/
public static List<Object[]> queryObjectList(String sqlStr,
List<Object> values) {
System.out.println("JDBCUtil SQL: " + sqlStr);
List<Object[]> objs = new ArrayList<Object[]>();
try {
con = getConnection();
ps = con.prepareStatement(sqlStr);
int size = values.size();
for (int i = 0; i < size; i++) {
ps.setObject((i + 1), values.get(i));
}
rs = ps.executeQuery();
ResultSetMetaData rsd = null;
while (rs.next()) {
rsd = rs.getMetaData();
int cols = rsd.getColumnCount();// 所有列数
Object[] obj = new Object[cols];
for (int i = 0; i < cols; i++) {
obj[i] = rs.getObject(i + 1);
}
objs.add(obj);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
free(rs, ps, con);
}
return objs;
}
/**
* 这个函数查询出来的将查出来的所有列的值放在list里面 每一条list记录有很多Object,用数组存储
*
* @param sqlStr
* @param value 一个参数
* @return
*/
public static List<Object[]> queryObjectList(String sqlStr, Object value) {
List<Object> values = new ArrayList<Object>();
values.add(value);
return queryObjectList(sqlStr, values);
}
/**
* 这个函数查询出来的将查出来的所有列的值放在list里面 每一条list记录有很多Object,用数组存储
*
* @param sqlStr
* @return
*/
public static List<Object[]> queryObjectList(String sqlStr) {
List<Object> values = new ArrayList<Object>();
return queryObjectList(sqlStr, values);
}
/**
* 查询一个对象,而这个对象的所有属性值存放在数组中
*
* @param sqlStr
* @param values 参数值
* @return
*/
public static Object[] queryObject(String sqlStr, List<Object> values) {
System.out.println("JDBCUtil SQL: " + sqlStr);
Object[] objs = null;
try {
con = getConnection();
ps = con.prepareStatement(sqlStr);
int size = values.size();
for (int i = 0; i < size; i++) {
ps.setObject((i + 1), values.get(i));
}
rs = ps.executeQuery();
ResultSetMetaData rsd = null;
if (rs.next()) {
rsd = rs.getMetaData();
int cols = rsd.getColumnCount();// 所有列数
objs = new Object[cols];
for (int i = 0; i < cols; i++) {
objs[i] = rs.getObject(i + 1);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
free(rs, ps, con);
}
return objs;
}
/**
* 查询一个对象,而这个对象的所有属性值存放在数组中
*
* @param sqlStr
* @param value 一个参数值
* @return
*/
public static Object[] queryObject(String sqlStr, Object value) {
List<Object> values = new ArrayList<Object>();
values.add(value);
return queryObject(sqlStr, values);
}
/**
* 查询一个对象,而这个对象的所有属性值存放在数组中
*
* @param sqlStr
* @return
*/
public static Object[] queryObject(String sqlStr) {
List<Object> values = new ArrayList<Object>();
return queryObject(sqlStr, values);
}
/* public static void main(String[] args) {
List<Object[]> list = queryObjectList("select * from user", new ArrayList<Object>());
//List<Object[]> list = queryObjectList("select u.*, q.name from user u, question q where q.userId=u.id", new ArrayList<Object>());
for (Object[] o : list) {
for (Object oo : o) {
System.out.print(oo);
}
System.out.println();
}
}*/
}
没有合适的资源?快使用搜索试试~ 我知道了~
javaee通讯录系统
共115个文件
gif:53个
class:11个
java:11个
5星 · 超过95%的资源 需积分: 9 71 下载量 52 浏览量
2015-06-14
14:27:16
上传
评论 4
收藏 3.62MB ZIP 举报
温馨提示
可以实现登陆以后对自己的通讯录增删查改,连接的是sql2008,用的是eclipse开发的
资源推荐
资源详情
资源评论
收起资源包目录
javaee通讯录系统 (115个子文件)
JDBCUtil.class 7KB
BaseDAO.class 4KB
AddressServlet.class 4KB
AddressDAO.class 4KB
UserServlet.class 2KB
ReflectUtil.class 2KB
Pagination.class 2KB
UserDAO.class 2KB
Address.class 1KB
User.class 908B
Common.class 429B
.classpath 858B
css.css 17KB
style.css 11KB
head.css 6KB
control.css 5KB
common1.css 4KB
style0.css 1KB
welcome.gif 164KB
top03.gif 23KB
ico15.gif 8KB
ico14.gif 8KB
ico16.gif 8KB
ico13.gif 7KB
pic05.gif 5KB
nav03.gif 4KB
nav01.gif 4KB
logo.gif 4KB
shape01.gif 3KB
ico02.gif 2KB
ico24.gif 1KB
nav02.gif 1KB
ico07.gif 1KB
line01.gif 935B
navbutton04.gif 662B
ico01.gif 654B
navbutton02.gif 635B
navbutton03.gif 576B
top02.gif 559B
navbutton01.gif 547B
loadon.gif 538B
dhbutton04.gif 499B
dhbutton02.gif 499B
dhbutton01.gif 499B
dhbutton03.gif 499B
notice.gif 457B
dhbutton05.gif 415B
ico12.gif 361B
ico11.gif 326B
button05.gif 324B
button10.gif 301B
button06.gif 288B
button09.gif 272B
button03.gif 256B
button04.gif 224B
button08.gif 210B
button07.gif 203B
ico05.gif 185B
ico06.gif 180B
nav04.gif 163B
nav06.gif 152B
nav05.gif 98B
top.gif 73B
navend.gif 67B
ico04.gif 64B
left.gif 62B
ico03.gif 60B
newling.gif 60B
nav07.gif 52B
newline.gif 50B
spacer.gif 43B
jsf-impl.jar 1.15MB
javaee.jar 1.01MB
mysql-connector-java-5.0.5-bin.jar 501KB
jstl-1.2.jar 405KB
jsf-api.jar 314KB
sqljdbc.jar 247KB
smartupload.jar 15KB
JDBCUtil.java 6KB
AddressServlet.java 4KB
BaseDAO.java 4KB
AddressDAO.java 2KB
Pagination.java 2KB
UserServlet.java 2KB
UserDAO.java 1KB
ReflectUtil.java 1KB
Address.java 902B
User.java 533B
Common.java 325B
mode.jpg 52KB
mainLogo.jpg 19KB
loginLogo.jpg 18KB
clear.jpg 6KB
calendar.js 15KB
typem.js 3KB
xiangmu.js 1KB
myUtils.js 1KB
tab.js 790B
addrList.jsp 4KB
login.jsp 3KB
共 115 条
- 1
- 2
资源评论
- gegeego2016-09-27可以实现登陆以后对自己的通讯录增删查改。
sinat_20411191
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 蓝桥杯2024年第十五届省赛真题-前缀总分
- com.qihoo.appstore_300101305-1.apk
- tensorflow-gpu-2.7.1-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.2-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-2.7.1-cp39-cp39-manylinux2010-x86-64.whl
- 蓝桥杯2024年第十五届省赛真题-传送阵
- com.qihoo.appstore_300101305.apk
- linux之线程同步一.doc
- keil5配色方案10种
- python烟花代码.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功