j2ee和mysql怎么连接_J2EE数据库连接不再烦恼

刚开始接触j2ee的时候总是为数据库的开关连接问题而烦恼,虽然问题很简单却很是琐碎,于是干脆写成一个类将所有必要的基本操作全部总结进去,以后只要轻松的import一下就可以了啊:)菜鸟们enjoying!

import java.sql.Connection;

import java.sql.Statement;

import java.sql.ResultSet;

import java.util.Vector;

public class DBConnection {

//数据库属性

public static String dbDriverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

//其他驱动自己填写

public static String dbURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName="DBNAME";

public static String dbUserID = "userid";

public static String dbUserPass = "userpassword";

public DBConnection() {

}

public void open() throws Exception{

open( dbDriverName, dbURL, dbUserID, dbUserPass);

}

/**

* 创建一个数据库连接

* @param driver

* JDBC驱动类

* @param url

* 数据库位置

* @param userID

* 数据库登录名

* @param password

* 数据库登录密码

* @throws Exception

* 创建数据库失败

*/

public void open(String driver, String url,

String userID, String password)throws Exception{

close();

Class.forName(driver);

connection = java.sql.DriverManager.getConnection(url, userID, password);

connected = true;

}

/**

* 关闭当前数据库连接

*/

public void close(){

if (connection == null )

return;

try{

if ( !connection.isClosed() )

connection.close();

}catch(Exception e){

}

connected = false;

}

/**

* 判断连接状态

* @return

* 连接返回true,否则返回false;

*/

public boolean isConnected(){

return connected;

}

public void executeInsert (String sql) throws Exception

{

check();

createStatement();

statement.execute(sql);

}

public void executeBatch(Vector sqls)throws Exception{

check();

createStatement();

for( int i = 0; i < sqls.size(); i++ ){

String sql = (String)sqls.get(i);

if ( sql.toLowerCase().trim().startsWith("select")){

throw new Exception("Batch 操作不支持Select操作");

}

statement.addBatch(sql);

}

statement.executeBatch();

}

public ResultSet executeSelect (String sql) throws Exception

{

check();

createStatement();

statement.execute(sql);

return statement.getResultSet();

}

public int executeUpdate (String sql) throws Exception

{

check();

createStatement();

statement.execute(sql);

return statement.getUpdateCount();

}

public int executeDelete (String sql) throws Exception

{

check();

createStatement();

statement.execute(sql);

return statement.getUpdateCount();

}

public void execute (String sql) throws Exception

{

check();

createStatement();

statement.execute(sql);

}

public void beginTrans ()throws Exception

{

check();

connection.setAutoCommit(false);

}

public void commit () throws Exception

{

check();

connection.commit();

}

public void rollback ()

{

try{

connection.rollback();

}catch(Exception e){

}

}

public boolean isConnectioned () throws Exception

{

return connected;

}

protected void check () throws Exception

{

if (!connected)

throw new Exception("没有创建数据库连接");

}

public void createStatement() throws Exception

{

if ( statement == null || connection.getAutoCommit() )

statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

}

protected Connection connection = null;

protected boolean connected;

protected Statement statement;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL SERVER PIVOT 行转列、列传行

在数据库操作中&#xff0c;有些时候我们遇到需要实现“行转列”的需求&#xff0c;例如一下的表为某店铺的一周收入情况表&#xff1a; WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据&#xff1a; INSERT INTO WEEK_INCOME SELECT 星期一,1000 UNION…

python安装scipy出现红字_windows下安装numpy,scipy遇到的问题总结

1.安装numpy下载numpy编译包&#xff0c;进入该目录下&#xff0c; 调用命令 python setup.py install进行安装&#xff0c;返回错误&#xff1a;error: Unable to find vcvarsall.bat出现这个原因的问题貌似跟vc编译器有关&#xff0c;具体原因没有细究&#xff0c;但是经Goog…

mysql cluster 查看数据库表名称_MySQL Cluster如何创建磁盘表方法解读

MySQL Cluster采用一系列的Disk Data objects来实现磁盘表;接下来为您详细介绍一、概念MySQL Cluster采用一系列的Disk Data objects来实现磁盘表。Tablespaces&#xff1a;作用是作为其他Disk Data objects的容器。Undo log files&#xff1a;存储事务进行回滚需要的信息&…

(运算符) 运算符

& 运算符既可作为一元运算符也可作为二元运算符。 备注 一元 & 运算符返回操作数的地址&#xff08;要求 unsafe 上下文&#xff09;。 为整型和 bool 类型预定义了二进制 & 运算符。 对于整型&#xff0c;& 计算操作数的逻辑按位“与”。 对于 bool 操作数&am…

LeetCode 1903. 字符串中的最大奇数

文章目录1. 题目2. 解题1. 题目 给你一个字符串 num &#xff0c;表示一个大整数。 请你在字符串 num 的所有 非空子字符串 中找出 值最大的奇数 &#xff0c;并以字符串形式返回。如果不存在奇数&#xff0c;则返回一个空字符串 “” 。 子字符串 是字符串中的一个连续的字符…

python模拟qq空间登录_python selenium模拟登录163邮箱和QQ空间

最近在看python网络爬虫&#xff0c;于是我想自己写一个邮箱和QQ空间的自动登录的小程序&#xff0c;下面以登录163邮箱和QQ空间和为例&#xff1a;了解到在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用&#xff0c;WebDriver 只能在一个页面上对元素识别与定位&#x…

mysql分页插件springboot_SpringBoot--使用Mybatis分页插件

1、导入分页插件包和jpa包org.springframework.bootspring-boot-starter-data-jpacom.github.pagehelperpagehelper-spring-boot-starter1.2.52、增加分页配置# 主键自增回写方法,默认值MYSQL,详细说明请看文档mapper:identity: MYSQL# 设置 insert 和 update 中&#xff0c;是…

top 命令详解

作用&#xff1a; 实时动态查看系统的整体运行情况&#xff0c; 是一个综合了多方信息监测系统性能和运行信息的实用工具。 选项&#xff1a;-b 以批处理模式操作-c 显示完整的命令-d 屏幕刷新间隔时间-I 忽略失效过程-s 保密模式-S 累积模式-i 设置时间间隔-u 指定用户…

LeetCode 1904. 你完成的完整对局数

文章目录1. 题目2. 解题1. 题目 一款新的在线电子游戏在近期发布&#xff0c;在该电子游戏中&#xff0c;以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。 这意味着&#xff0c;在 HH:00、HH:15、HH:30 和 HH:45 &#xff0c;将会开始一个新的对局&#xff0c;其中 HH 用一…

python scipy库函数solve用法_如何在中使用事件scipy.integrate.solve_ivp

我不确定事件处理是否scipy.integrate.solve_ivp工作正常。在下面的例子中&#xff0c;我对一个导数进行积分&#xff0c;得到一个三次多项式&#xff0c;它的根在x-6&#xff0c;x-2和x2。我设置了一个事件函数&#xff0c;返回y&#xff0c;在x值处为零。我希望在解决方案的t…

将MYSQL查询导出到文件

sql文件&#xff1a; set names utf8; select * from xxxxx mysql命令&#xff1a; mysql -h xxxx -uxxxx -p < 4.sql > 4.txt 转载于:https://www.cnblogs.com/aguncn/p/4449969.html

mysql维护计划任务_浅谈MySQL event 计划任务

一、查看event是否开启show variables like %sche%;set global event_scheduler 1;二、-- 设置时区并设置计划事件调度器开启&#xff0c;也可以 event_scheduler onset time_zone 8:00;set global event_scheduler 1;-- 设置该事件使用或所属的数据库base数据库use test;--…

LeetCode 1905. 统计子岛屿(BFS)

文章目录1. 题目2. 解题1. 题目 给你两个 m x n 的二进制矩阵 grid1 和 grid2 &#xff0c;它们只包含 0 &#xff08;表示水域&#xff09;和 1 &#xff08;表示陆地&#xff09;。 一个 岛屿 是由 四个方向 &#xff08;水平或者竖直&#xff09;上相邻的 1 组成的区域。 任…

vue是什么软件_Angular vs React vs Vue:2020年的最佳选择是什么?

在2020年&#xff0c;想象没有HTML&#xff0c;CSS和Javascript的Web开发是不切实际的。 Javascript是Web应用程序前端开发的灵魂。 如果您登陆此页面&#xff0c;那么我认为您在Java语言和Java编程语言的不同框架和库之间感到困惑。企业和软件开发人员最常见的一些查询是&…

Ajax的实现

一、JavaScript的ajax //Ajaxvar xhr;if(window.XMLHttpRequest){ //除IE外的浏览器xhr new XMLHttpRequest()}else{xhr new ActiveXObject("Microsoft.XMLHTTP"); //IE}xhr.open(get,http://demo_get.asp,true); //三个参数&#xff0c;method&#xff0c;…

LeetCode 1910. 删除一个字符串中所有出现的给定子字符串

文章目录1. 题目2. 解题1. 题目 给你两个字符串 s 和 part &#xff0c;请你对 s 反复执行以下操作直到 所有 子字符串 part 都被删除&#xff1a; 找到 s 中 最左边 的子字符串 part &#xff0c;并将它从 s 中删除。 请你返回从 s 中删除所有 part 子字符串以后得到的剩余…

mysql获取网站绝对路径_Symfony2获取web目录绝对路径、相对路径、网址的方法

本文实例讲述了Symfony2获取web目录绝对路径、相对路径、网址的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;对于你的需求&#xff0c;Symfony2通过DIC提供了kernel服务&#xff0c;以及request(请求)的封装。在controller里(在其他地方你可以自行注入kernel&a…

tcp长连接和短连接的区别_TCP --- 连接

一个TCP连接由4个元组组成&#xff1a;2个ip地址和2个端口号tcp三次握手为什么是三次握手解决历史连接问题通过三次握手才能阻止重复历史连接的初始化通过三次握手&#xff0c;才能对通讯双方的初始序号初始化如果只有2次握手&#xff0c;发送方一旦发送创建连接的请求就无法撤…

python substr函数_Sql SUBSTR函数

SQL常用函数总结SQL常用函数总结 这是我在项目开发中使用db2数据库写存储过程的时候经常用到的sql函数.希望对大家有所帮助: sql cast函数 (1).CAST()函数的参数是一个表达式,它包括用AS关键字分 ...SQL中CHARINDEX&lpar;&rpar;&sol;INSTR&lpar;&rpar;函数…

LeetCode 1911. 最大子序列交替和(动态规划)

文章目录1. 题目2. 解题1. 题目 一个下标从 0 开始的数组的 交替和 定义为 偶数 下标处元素之 和 减去 奇数 下标处元素之 和 。 比方说&#xff0c;数组 [4,2,5,3] 的交替和为 (4 5) - (2 3) 4 。 给你一个数组 nums &#xff0c;请你返回 nums 中任意子序列的 最大交替和…