调用jdbc已经写成的方法----jdbc工具类抽取方式二

先创建db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf8
username=root
password=root
注意不能有空格
package web09;
/*获取连接和释放资源的方法
*/ import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle; public class jdbc_text3 {
private static String driver;
private static String url;
private static String username;
private static String password; /*
* 静态代码块获取配置文件信息
*/ static{
ResourceBundle bundle = ResourceBundle.getBundle("db");
driver=bundle.getString("driver");
url=bundle.getString("url");
username=bundle.getString("username");
password=bundle.getString("password");
} public static Connection getconnection(){
Connection conn=null;
//賦值是爲了防止空指針
try {
Class.forName(driver);
//注册驱动
conn = DriverManager.getConnection(url,username,password);
//获取连接
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
} public static void release(Connection conn,PreparedStatement pstmt ,ResultSet rs){
//获取连接,创建预处理对象,执行查询操作
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }
创建配置的工具类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.junit.Before;
import org.junit.Test; /**
* 测试工具类
*
* @author Administrator
*
*/
public class jdbc_text2 {
@Test
public void testAdd() {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 1获取链接
conn = jdbc_text3.getconnection();
// 2编写sql语句
String sql = "insert into tbl_user values(null,?,?)";
// 3获取sql的语句对象
pstmt = conn.prepareStatement(sql);
// 4设置参数
pstmt.setString(1, "lisi");
pstmt.setString(2, "hehe");
// 5执行插入炒作
int row = pstmt.executeUpdate();
if (row>0) {
System.out.println("插入成功");
} else {
System.out.println("插入失败");
}
} catch (Exception e) { } finally {
// 6释放资源
jdbc_text3.release(conn, pstmt, null);
;
}
}
}
执行代码....但是,,,,,,不知道为啥...抛出runtimection 报错....我有时间问下别老大..
@test 报错...
抛extion 不跑错但是也运行不出来...
测试出来了...表里面有4个数据,,,我只是插入了3个
调用jdbc已经写成的方法----jdbc工具类抽取方式二的更多相关文章
- 调用jdbc已经写成的方法----jdbc工具类抽取方式三
package jdbc_demo3; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.R ...
- 调用jdbc已经写成的方法----jdbc工具类抽取方式一
package web09; /*获取连接和释放资源的方法 */ import java.sql.Connection; import java.sql.DriverManager; import j ...
- 为什么要用Hibernate框架? 把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了?
既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?把SessionFactory,Session,Transcational封装成包含crud的 ...
- 分享两个模拟get和post方法的工具类,让应用能够与服务器进行数据交互
很久没有码字了,今天跟大家分享一个模拟get和post方法的工具类,在安卓应用中很多都需要跟服务器进行数据交互,这需要两方面的配合,首先服务器端会给应用提供一些数据交互的接口,可是怎样在应用中去调用呢 ...
- Java利用JNI调用C/C++写成的DLL
前言 由于学期作业的要求,笔者需要开发一个语音识别系统.出于对Java的热爱,笔者非常想用Java来写上层程序(前台+数据库的三层),又要用到Microsoft Speech SDK,所以在这些条件下 ...
- 【JDBC】学习路径5-提取JDBCUtils工具类
回顾我们上面几节的内容,我们发现重复代码非常多,比如注册驱动.连接.关闭close()等代码,非常繁杂. 于是我们将这些重复的大段代码进行包装.提取成JDBCUtils工具类. 第一章:提取注册连接模 ...
- java 写一个JSON解析的工具类
上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...
- 自己用反射写的一个request.getParameter工具类
适用范围:当我们在jsp页面需要接收很多值的时候,如果用request.getParameter(属性名)一个一个写的话那就太麻烦了,于是我想是 否能用反射写个工具类来简化这样的代码,经过1个小时的代 ...
- java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象
1. java.util.Arrays 数组工具类 Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...
随机推荐
- Luogu 4433 [COCI2009-2010#1] ALADIN
LOJ 2958 线段树 + 类欧 主要矛盾就是$\sum\limits_{i = l}^{r}Ai \mod B$怎么做. 拆成前缀和相减的形式,有 $$\sum_{i = 0}^{r}(Ai \m ...
- Undo Architecture
[Undo Architecture] NSUndoManager is a general-purpose recorder of operations for undo and redo. NSU ...
- Jdom简单的修改xml文件实现
上一篇博客写到在打开outputStream 时总是报错,而且出现jdom有问题,后来注意到junit提示的一个错误:文件过早关闭. 顾名思义:用getResorceAsStream打开了文件作为输入 ...
- context:propertyPlaceholder
Activates replacement of ${...} placeholders by registering a PropertySourcesPlaceholderConfigurer w ...
- jmeter 各种配置修修改(后续增加)
1.修改物理内存 使用jmeter进行压力测试时遇到一段时间后报内存溢出outfmenmory错误,导致jmeter卡死了,先尝试在jmeter.bat中增加了JVM_ARGS="-Xmx ...
- java并发编程实战:第十四章----构建自定义的同步工具
一.状态依赖性管理 对于单线程程序,某个条件为假,那么这个条件将永远无法成真 在并发程序中,基于状态的条件可能会由于其他线程的操作而改变 可阻塞的状态依赖操作的结构 acquire lock on o ...
- DATASNAP远程方法返回TSTREAM正解
DATASNAP远程方法返回TSTREAM正解 DATASNAP远程方法返回TSTREAM,如果数据大小超过32K是会报错的.许多DELPHIER栽在这个上头,甚至开始怀疑TSTREAM返回数据的可行 ...
- Gluster 常用命令
Gluster 常用命令1 服务器节点# gluster peer status //查看所有节点信息,显示时不包括本节点 # gluster peer probe NODE-NAME //添加节点 ...
- Linux 连接数过多排查思路
## 在连接数报警的机器上,查看某个端口tcp连接来源,并排序 netstat -natl |grep ^tcp |grep ":2181" |awk '{print $5}'|a ...
- JAVA 字符串编码转换
/** * 字符串编码转换的实现方法 * @param str 待转换编码的字符串 * @param newCharset 目标编码 * @return * @throws UnsupportedEn ...