DBCONN
package Ulike_servlet; //将该类保存到com.tools包中
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConn {
protected PreparedStatement pstm;// 预编译sql
public Connection conn; // 声明Connection对象的实例
public Statement stmt; // 声明Statement对象的实例
public ResultSet rs; // 声明ResultSet对象的实例
private static String dbClassName;// 定义保存数据库驱动的变量
private static String dbUrl;
private static String dbUser;
private static String dbPwd;
public DbConn() { // 定义构造方法
try { // 捕捉异常
dbClassName = "com.mysql.jdbc.Driver"; // 获取数据库驱动
dbUrl = "jdbc:mysql://localhost:3306/btmdb?useUnicode=true&characterEncoding=utf-8"; // 获取URL
dbUser = "root"; // 获取登录用户
dbPwd = "0118"; // 获取密码
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
}
//获取数据库连接
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
} catch (Exception ee) {
ee.printStackTrace();
}
if (conn == null) {
System.err
.println("警告: DBConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"
+ dbClassName
+ "\r\n链接位置:"
+ dbUrl
+ "\r\n用户/密码"
+ dbUser + "/" + dbPwd);
}
return conn;
}
/*
* 功能:关闭数据库的连接
*/
protected void closeAll() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (pstm != null) {
try {
pstm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if (conn != null && conn.isClosed() == false) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 执行sql语句
* */
public int executeSQL(String sql, Object[] param) throws Exception {
int rows = 0;
try {
conn=getConnection();
if (param != null && param.length > 0) {
pstm = conn.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
pstm.setString(i + 1, param[i].toString());
}
rows = pstm.executeUpdate();
} else {
stmt = conn.createStatement();
rows = stmt.executeUpdate(sql);
}
} finally {
this.closeAll();
}
System.out.println("处理成功!!");
return rows;
}
/**
* 查询sql语句
* */
protected ResultSet executeQuery(String sql, Object[] param) throws Exception {
try {
conn=getConnection();
if (param != null && param.length > 0) {
pstm = conn.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
pstm.setString(i + 1, param[i].toString());
}
rs = pstm.executeQuery();
} else {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
} finally {
}
System.out.println("处理成功!!");
return rs;
}
}
DBCONN的更多相关文章
- (待解决)IDEA配置JDBC查询数据库PreparedStatement pstmt = dbconn.prepareStatement(sql)出现空指针错误
package com.demo; import java.io.*; import java.sql.*; import java.util.*; import javax.servlet.*; i ...
- DataAccess通用数据库访问类,简单易用,功能强悍
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...
- mysql代码执行漏洞
mysql (5.7, 5.6, 和 5.5版本)的所有默认安装配置,包括最新的版本,攻击者可以远程和本地利用该漏洞.该漏洞需要认证访问MYSQL数据库(通过网络连接或者像phpMyAdmin的we ...
- Bookshop(一)数据库连接
连接池配置文件db.properties配置 1.新建一个普通文件->改名为db.properties(后缀)手动添加属性 一般为数据库驱动类.数据库连接地址.用户名.用户密码 driver=c ...
- JDBC增删改查简单测试
首先编写一个entity以便与数据库表文件相对应 lyTable.java public class LyTable implements java.io.Serializable { private ...
- JDBC连接SQL Server代码模板
* JDBC连接SQL Server数据库 代码模板* Connection: 连接数据库并担任传送数据的任务:* Statement : 执行SQL语句:* Re ...
- php中的登陆login
Login <?php require "../include/DBClass.php"; $username=$_POST['UserName']; $password=$ ...
- EF6 Create Different DataContext on runtime(运行时改变连接字符串)
引言 在使用EF时,有时我们需要在程序运行过程中动态更改EF的连接字符串,但不幸的时EF是否对 ConfigurationManager.RefreshSection("xxx" ...
- 【转】一些 SQLite技巧
部分来源于网络 SQLite 删除重复行 需求:现存在一张表tender_to_detailedlist,然后里面的列tender_id和detailedlist_id具有相同的数据且不确定相同数据的 ...
随机推荐
- 【索引】UML学习笔记
行为图 交互图 交互概览图 时间图 顺序图 通信图 活动图 状态及图 用例图 结构图 包图 类图 对象图 组件图 部署图 组合结构图
- poj 2975 Nim(博弈)
Nim Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5232 Accepted: 2444 Description N ...
- 简单登陆UI设计
简单UI设计 作品效果图: 关键技术: 用到了本地化控件:SharedPreferences,简单的说就是本地配置. 四大组件:Intent 基本思路请看代码: Java代码: import ...
- EasyWebServer编写CGI程序的环境变量
示例: SERVER_SOFTWARE=EasyWebServer/1.9 SERVER_PROTOCOL=HTTP/1.1 SERVER_PORT= SERVER_NAME=aozima-noteb ...
- Add external tool in the Android Studio
Add external tool in the Android Studio */--> pre { background-color: #2f4f4f;line-height: 1.6; F ...
- .Net互操作2
1.C++创建Dll,Win32控制台,空项目,添加头文件NativeLib.h,NativeLib.cpp extern "C" __declspec(dllexport) vo ...
- C#类型 分类: C# 2015-03-09 08:44 202人阅读 评论(0) 收藏
C# 类型 引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制.复制又 ...
- HDU2699+Easy
简单题. /* */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<alg ...
- HP P2055d激光打印机PCL XL error的解决
近日,于客户处安装HP P2055d激光打印机(2009年11月份生产的机器),介绍下硬件环境:PC:Dell OptiPlex 360,另有一台富士通DPK 8600E票据打印机,P2055d通过U ...
- struts2 json 定义全局Date格式
使用struts2的json插件时,自己定义日期格式经常使用的方式是在get属性上加入@JSON注解,这个对于少量Date属性还能够,可是假设date字段多了,总不可能去给每一个date get方法加 ...