jdbc 连接mysql 代码
来源:互联网 发布:微信造假软件 编辑:程序博客网 时间:2024/06/05 03:21
public class BaseDAO {
private static final Logger log = Logger.getLogger(LoggerMessage.class);
private static String url = null;
private static String username = null;
private static String password = null;
private static String driver=null;
private static Properties props = new Properties();
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
private static final BaseDAO baseDao = new BaseDAO();
private static final int String = 0;
private CallableStatement call;
private BaseDAO() {
}
public static BaseDAO getInstance() {
return baseDao;
}
static {
try {
props.load(BaseDAO.class.getClassLoader().getResourceAsStream("jdbc.properties"));
} catch (IOException e) {
log.info("加载jdbc.properties配置文件异常,请检查!");
}
url =(props.getProperty("url"));
username = (props.getProperty("username"));
password = (props.getProperty("password"));
driver=(props.getProperty("driverClassName"));
// System.out.println(url);
// System.out.println(username);
// System.out.println(password);
// System.out.println(driver);
//注册驱动类
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
log.info("加载数据库驱动异常,请检查!");
}
try {
Class.forName(driver);
conn = (Connection) DriverManager.getConnection(url, username, password);
} catch (Exception e) {
System.out.println("加载驱动出现异常!");
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public void closeConnection(Connection conn) {
if (conn == null) return;
try {
if (!conn.isClosed()) {
//关闭数据库连接
conn.close();
}
} catch (SQLException e) {
log.info("关闭数据库连接发生异常,请检查!");
}
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
setValue(values);
rs = pstmt.executeQuery();
} catch (SQLException e) {
System.out.println("查询数据出现异常!");
e.printStackTrace();
}
return rs;
}
//添加 修改 删除
public boolean extuceUpdate(String sql, Object[] values) {
getConnection();
boolean b = false;
try {
//
pstmt = conn.prepareStatement(sql);
setValue(values);
int i = pstmt.executeUpdate();
if (i >= 1) {
b = true;
}
} catch (SQLException e) {
System.out.println("修改数据出现异常!");
e.printStackTrace();
}finally{
closeAll();
}
return b;
}
//调用存储过程的方法(无返回值)
public String callProcedure(String sql,Object[] values,int index){//index为输出参数的位置
getConnection();
String flag = null;
try {
call= conn.prepareCall(sql);
setValues(values);
call.registerOutParameter(index, String);
call.executeUpdate();
flag=call.getString(index);
System.out.println(call.toString());
} catch (SQLException e) {
e.printStackTrace();
}finally{
close();
}
return flag;
}
//关闭所有
public void close() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (call != null) {
try {
call.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
}
}
//关闭所有
public void closeAll() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
}
}
//关闭所有
public void closeAllNew(ResultSet rs) {
System.out.println("close==2222222===>"+rs);
// if (rs != null) {
// try {
// rs.close();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
}
}
//为占位符赋值
public void setValue(Object[] values) {
if (values != null && values.length != 0)
for (int i = 0; i < values.length; i++) {
try {
pstmt.setObject(i + 1, values[i]);
} catch (SQLException e) {
System.out.println("为占位符赋值出现异常!");
e.printStackTrace();
}
}
}
//为存储过程中的占位符赋值
public void setValues(Object[] values) {
if (values != null && values.length != 0)
for (int i = 0; i < values.length; i++) {
try {
call.setObject(i + 1, values[i]);
} catch (SQLException e) {
System.out.println("为存储过程的占位符赋值出现异常!");
e.printStackTrace();
}
}
}
public static void main(String[] args) {
String sql="call userDepositActive2(?,?,?,?)";
Object values[]={1,3,200};
System.out.println(getInstance().callProcedure(sql, values,4));
// String sql1="call userDepositActive1(?)";
//
// System.out.println(getInstance().callProcedure(sql1, null,1));
}
}
private static final Logger log = Logger.getLogger(LoggerMessage.class);
private static String url = null;
private static String username = null;
private static String password = null;
private static String driver=null;
private static Properties props = new Properties();
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
private static final BaseDAO baseDao = new BaseDAO();
private static final int String = 0;
private CallableStatement call;
private BaseDAO() {
}
public static BaseDAO getInstance() {
return baseDao;
}
static {
try {
props.load(BaseDAO.class.getClassLoader().getResourceAsStream("jdbc.properties"));
} catch (IOException e) {
log.info("加载jdbc.properties配置文件异常,请检查!");
}
url =(props.getProperty("url"));
username = (props.getProperty("username"));
password = (props.getProperty("password"));
driver=(props.getProperty("driverClassName"));
// System.out.println(url);
// System.out.println(username);
// System.out.println(password);
// System.out.println(driver);
//注册驱动类
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
log.info("加载数据库驱动异常,请检查!");
}
}
//开启数据库链接
try {
Class.forName(driver);
conn = (Connection) DriverManager.getConnection(url, username, password);
} catch (Exception e) {
System.out.println("加载驱动出现异常!");
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public void closeConnection(Connection conn) {
if (conn == null) return;
try {
if (!conn.isClosed()) {
//关闭数据库连接
conn.close();
}
} catch (SQLException e) {
log.info("关闭数据库连接发生异常,请检查!");
}
}
//如果不加同步线程安全的情况下 有可能会出现java.sql.SQLException: Operation not allowed after ResultSet closed 导致这个的错误原因就是:一个stmt多个rs进行操作引起的ResultSet已经关闭错误问题
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
setValue(values);
rs = pstmt.executeQuery();
} catch (SQLException e) {
System.out.println("查询数据出现异常!");
e.printStackTrace();
}
return rs;
}
//添加 修改 删除
public boolean extuceUpdate(String sql, Object[] values) {
getConnection();
boolean b = false;
try {
//
pstmt = conn.prepareStatement(sql);
setValue(values);
int i = pstmt.executeUpdate();
if (i >= 1) {
b = true;
}
} catch (SQLException e) {
System.out.println("修改数据出现异常!");
e.printStackTrace();
}finally{
closeAll();
}
return b;
}
//调用存储过程的方法(无返回值)
public String callProcedure(String sql,Object[] values,int index){//index为输出参数的位置
getConnection();
String flag = null;
try {
call= conn.prepareCall(sql);
setValues(values);
call.registerOutParameter(index, String);
call.executeUpdate();
flag=call.getString(index);
System.out.println(call.toString());
} catch (SQLException e) {
e.printStackTrace();
}finally{
close();
}
return flag;
}
//关闭所有
public void close() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (call != null) {
try {
call.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
}
}
//关闭所有
public void closeAll() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
}
}
//关闭所有
public void closeAllNew(ResultSet rs) {
System.out.println("close==2222222===>"+rs);
// if (rs != null) {
// try {
// rs.close();
// } catch (SQLException e) {
// e.printStackTrace();
// }
// }
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && (!conn.isClosed())) {
conn.close();
}
} catch (SQLException e) {
}
}
//为占位符赋值
public void setValue(Object[] values) {
if (values != null && values.length != 0)
for (int i = 0; i < values.length; i++) {
try {
pstmt.setObject(i + 1, values[i]);
} catch (SQLException e) {
System.out.println("为占位符赋值出现异常!");
e.printStackTrace();
}
}
}
//为存储过程中的占位符赋值
public void setValues(Object[] values) {
if (values != null && values.length != 0)
for (int i = 0; i < values.length; i++) {
try {
call.setObject(i + 1, values[i]);
} catch (SQLException e) {
System.out.println("为存储过程的占位符赋值出现异常!");
e.printStackTrace();
}
}
}
public static void main(String[] args) {
String sql="call userDepositActive2(?,?,?,?)";
Object values[]={1,3,200};
System.out.println(getInstance().callProcedure(sql, values,4));
// String sql1="call userDepositActive1(?)";
//
// System.out.println(getInstance().callProcedure(sql1, null,1));
}
}
0 0
- JDBC连接mysql代码
- jdbc 连接mysql 代码
- MySql数据库jdbc连接代码
- JAVA JDBC 连接Mysql 代码。
- JDBC连接Mysql常用代码
- 【JDBC】jdbc 连接数据库Mysql 代码
- MyEclipse通过JDBC连接MySQL数据库代码
- Java jdbc连接MySQL的代码
- JDBC连接MySQL基本步骤代码块
- jdbc连接mysql数据库简单代码
- jdbc使用DataSource连接mysql,postgresql,oracle的代码
- java开发中JDBC连接MySQL数据库代码
- java代码实现JDBC连接MySql以及引用驱动程序包
- JDBC 连接mysql,oracle数据库代码及解析
- jdbc连接mysql数据库小例子(代码)
- jdbc连接数据库代码
- jdbc连接oracle代码
- JDBC 连接池代码
- JavaScript中获取事件源的小例子
- oracle之存储过程,临时表,游标示例
- Eigen笔记——初步体验
- Android取得Activity和Service信息
- 基于Android的VoIP系统实现原理
- jdbc 连接mysql 代码
- spring Quartz基于配置文件和注解的实现
- php获取服务器端mac和客户端mac的地址
- 数据结构-c语言版大纲
- 在dos下给一个apk签名
- MyEclipse配色方案
- Connector类介绍[3-0]
- 有一个二维数组整形数组中,每一行都有一个最大值,编程求出这些最大值以及他们的和
- python资料集锦