20160406javaweb JDBC 实例工具类
一、建立静态的数据库配置文件:
config.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/database01
user=root
password=
二、创建工具类 :
JDBCUtils.java
package com.dzq.util; import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; public class JDBCUtils { private static Properties prop=null; private JDBCUtils(){ } /**
* 静态代码块,加载数据库配置文件
*/
static{
try{
prop=new Properties();
prop.load(new FileReader(JDBCUtils.class.getClassLoader().getResource("config.properties").getPath()));
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException();
}
} /**
* 获取连接
*/
public static Connection getConn() throws Exception{ Class.forName(prop.getProperty("driver"));
return DriverManager.getConnection(prop.getProperty("url"), prop.getProperty("user"), prop.getProperty("password"));
} /**
* 关闭连接
*/
public static void close(ResultSet rs,Statement stat,Connection conn){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs=null;
}
}
if(stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
stat=null;
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn=null;
}
}
}
}
三、查询、增删改测试代码:
JDBCDemo2.java
package com.dzq.jdbc; import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement; import org.junit.Test; import com.dzq.util.JDBCUtils; public class JDBCDemo2 { /**
* 该类中方法均以JUnit测试的形式给出
*/ @Test
public void delete(){
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
try{
//2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
stat.executeUpdate("delete from user where name='zhaoliu'");
}catch(Exception e){
e.printStackTrace();
}finally{
JDBCUtils.close(rs, stat, conn);
}
} @Test
public void find(){
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
try{
//2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
rs=stat.executeQuery("select * from user where name='zhaoliu'");
while(rs.next()){
String name=rs.getString("name");
String password=rs.getString("password");
String email=rs.getString("email");
System.out.println("name:"+name+"pwd:"+password+"email:"+email);
}
}catch(Exception e){
e.printStackTrace();
}finally{
JDBCUtils.close(rs, stat, conn);
}
}
@Test
public void update(){
Connection conn=null;
Statement stat=null;
try {
//2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
stat.executeUpdate("update user set password=999 where name='zhangsan'");
} catch (Exception e) {
e.printStackTrace();
}finally{
JDBCUtils.close(null, stat, conn);
}
}
@Test
public void add(){
Connection conn=null;
Statement stat=null;
//1.注册数据库驱动
try{ //2.获取连接
conn=JDBCUtils.getConn();
//3.获取传输器对象
stat=conn.createStatement();
//4.执行sql语句
int count=stat.executeUpdate("insert into user values (null,'zhangsan','123456','zhaoliu@qq.com','1999-09-09')");
//5.处理结果
if(count>0){
System.out.println("添加数据成功,影响行数为"+count);
}else{
System.out.println("执行失败");
}
}catch(Exception e){
e.printStackTrace();
}finally{
//6.关闭资源
JDBCUtils.close(null, stat, conn);
}
}
}
20160406javaweb JDBC 实例工具类的更多相关文章
- JDBC实例--工具类升级,使用Apache DBCP连接池重构DBUtility,让连接数据库更有效,更安全
直接使用JDBC访问数据库时,需要避免以下隐患: 1. 每一次数据操作请求都需要建立数据库连接.打开连接.存取数据和关闭连接等步骤.而建立和打开数据库连接是一件既耗资源又费时的过程,如果频繁发生这种数 ...
- 【JDBC】工具类的抽取
jdbc.properties属性文件 driverClass=com.mysql.jdbc.Driver url=jdbc:mysql:///jdbctest username=root passw ...
- jdbc连接数据库工具类
import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DriverManager; import ja ...
- 创建Jdbc封装工具类
jdbc.propertie url=jdbc:mysql:///empye user=root password=root driver=com.mysql.jdbc.Driver 读取资源文件 ...
- jdbc之工具类DBUtil的使用
首先回顾一下jdbc的使用方法: 1. 注册驱动 2. 建立连接 3. 建立statement 4. 定义sql语句 5. 执行sql语句,如果执行的是查询需遍历结果集 6. 关闭连接 其中建立连接和 ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(2)-2个单实例工具类
从本篇开始,讲解net.micode.fileexplorer.util工具包中的类.这个包下的类,功能也比较单一和独立.很多代码的思想和实现,可以用于JavaWeb和Android等多种环境中. 一 ...
- JDBC——抽取工具类
目的:简化书写 分析: 1.注册驱动 2.获取连接对象 3.释放资源 1.注册驱动 2.获取连接对象 需求:不想传递参数,还能保证工具类的通用性解决方案:配置文件 jdbc.properties ur ...
- JDBC编程工具类 Dbconnection
JDBC基础:https://blog.csdn.net/weixin_44893902/article/details/106746880 Dbconnection工具类(包含了连接,增删改查,关闭 ...
- JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库
利用JDBC连接到数据库一般需要几个步骤: 1.装载驱动程序. 2.建立连接. 3.发送和执行SQL语句. 4.释放资源 首先建立一个数据库: 脚本如下: create database csdn; ...
随机推荐
- 如何判断 Android 应用的 Apk 签名是否一致?
可以比对apk签名的fingerprint. 假定安装了JDK,如果想查HelloWorld.apk所使用的签名的fingerprint,可以这样做: 1. 查找apk里的rsa文件 (Windows ...
- 谈谈分布式事务之二:基于DTC的分布式事务管理模型[下篇]
[续上篇] 当基于LTM或者KTM的事务提升到基于DTC的分布式事务后,DTC成为了本机所有事务型资源管理器的管理者:此外,当一个事务型操作超出了本机的范 围,出现了跨机器的调用后,本机的DTC需要于 ...
- IIS7配置https
To Install an SSL Certificate in Microsoft IIS 7 Click Start, mouse-over Administrative Tools, and t ...
- Asm Shader Reference --- Shader Model 2.x part
ps部分 概览 Instruction Set Name Description Instruction slots S ...
- A better way to learn D3 js - iLearning D3.js
iLearning D3.js Basic is an iPad app to learn and code with D3. In 1.1 version, new tutorial is prov ...
- HDOJ-ACM1097(JAVA) A hard puzzle
这道题就是HDOJ的1061的变形: 1061 :求n的n次方的个位数 http://www.cnblogs.com/xiezie/p/5596779.html 1097 :求n的m次方的个位数 因此 ...
- Call Hierarchy(方法调用层次)
在VS2010中的一项新功能:Call Hierarchy窗口,它可以审查代码,确定方法在哪里调用,以及它们与其他方法的关系. 打开一个类文件,找有方法体实现代码的方法,右键选择View Call H ...
- ActiveMQ内存设置和流控
启动脚本设置jvm的内存 if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xms1G-Xmx1G -Djava.ut ...
- Robot Framework自动化测试(三)--- 封装系统关键字
之前对robotframework-ride了解的不多,后来知道了引入Selenium2Lirary库后可以做web UI自动化测试,但发现和python没啥关系,今天学习了封装系统关键字算是和pyt ...
- mmsql查看最近操作日志
SELECT TOP 2000 query_stats.query_hash AS "Query Hash", Sum(Query_Stats.total_logical_Read ...