package jdbc_demo3;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.junit.Before;
import org.junit.Test; import web09.jdbc_text1;
import web09.jdbc_text3;
import web09.jdbc_text4; /**
* 测试工具类
* @author Administrator
*
*/
public class jdbc_text2 {
/**
*
*/@Test
public void textdeletByid()
{Connection conn=null;
PreparedStatement pstmt=null;
try{
//1获取链接
conn=jdbc_text4.getconnection();
//2编写sql语句
String sql="delete from tbl_user where uid=?";
//3获取sql的语句对象
pstmt = conn.prepareStatement(sql);
//4设置参数
pstmt.setInt(1, 3); //5执行插入炒作
int row =pstmt.executeUpdate();
if(row>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}catch (Exception e){
throw new RuntimeException(e); }finally{
//6释放资源
jdbc_text3.release(conn, pstmt, null);;
} } @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){
throw new RuntimeException(e); }finally{
//6释放资源
jdbc_text3.release(conn, pstmt, null);;
} } @Test
//查询
public void textfinduserbyid(){
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try {
//1.获取链接
conn = jdbc_text1.getconnection();
//2编写sql语句
String sql ="select * from tbl_user where uid=?";
//3获取执行sql语句对象
pstmt = conn.prepareStatement(sql);
//4设置参数
pstmt.setInt(1, 2);
//setint(第一个表示第一个获取位置,第二个表示值)
//5设置查询操作
rs =pstmt.executeQuery();
while(rs.next()){
System.out.println(rs.getString(2)+"------------"+rs.getString("upassword"));
}
} catch (SQLException e) { e.printStackTrace();
}finally {
jdbc_text1.release(conn, pstmt, rs);
}
}
}

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.ResourceBundle;

public class jdbc_text4 {
private static String driver;
private static String url;
private static String username;
private static String password;

/*
* 静态代码块获取配置文件信息
*/

static{

try {
//1.通过当前类获取加载器
ClassLoader calssloader =jdbc_text3.class.getClassLoader();
//2.通过类加载器方法,获取一个输入流
InputStream is = calssloader.getResourceAsStream("db.properties");
//3.创建一个properties对象
Properties props =new Properties();
//4.获取输入流
props.load(is);
//5获取相关操作的值

driver=props.getProperty("driver");
url=props.getProperty("url");
username=props.getProperty("username");
password=props.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

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;
}

通过流建立jdbc

调用jdbc已经写成的方法----jdbc工具类抽取方式三的更多相关文章

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

    先创建db.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/web08?useUnicode=true& ...

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

    package web09; /*获取连接和释放资源的方法 */ import java.sql.Connection; import java.sql.DriverManager; import j ...

  3. 为什么要用Hibernate框架? 把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了?

    既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?把SessionFactory,Session,Transcational封装成包含crud的 ...

  4. 分享两个模拟get和post方法的工具类,让应用能够与服务器进行数据交互

    很久没有码字了,今天跟大家分享一个模拟get和post方法的工具类,在安卓应用中很多都需要跟服务器进行数据交互,这需要两方面的配合,首先服务器端会给应用提供一些数据交互的接口,可是怎样在应用中去调用呢 ...

  5. Java利用JNI调用C/C++写成的DLL

    前言 由于学期作业的要求,笔者需要开发一个语音识别系统.出于对Java的热爱,笔者非常想用Java来写上层程序(前台+数据库的三层),又要用到Microsoft Speech SDK,所以在这些条件下 ...

  6. 【JDBC】学习路径5-提取JDBCUtils工具类

    回顾我们上面几节的内容,我们发现重复代码非常多,比如注册驱动.连接.关闭close()等代码,非常繁杂. 于是我们将这些重复的大段代码进行包装.提取成JDBCUtils工具类. 第一章:提取注册连接模 ...

  7. java 写一个JSON解析的工具类

    上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能 ...

  8. 自己用反射写的一个request.getParameter工具类

    适用范围:当我们在jsp页面需要接收很多值的时候,如果用request.getParameter(属性名)一个一个写的话那就太麻烦了,于是我想是 否能用反射写个工具类来简化这样的代码,经过1个小时的代 ...

  9. 自己写的java excel导出工具类

    最近项目要用到excel导出功能,之前也写过类似的代码.因为这次项目中多次用到excel导出.这次长了记性整理了一下 分享给大伙 欢迎一起讨论 生成excel的主工具类: public class E ...

随机推荐

  1. 2-ubuntu下访问window的磁盘

    双系统Ubuntu无法进入Windows磁盘的解决方法 有些用户在电脑上安装了Ubuntu和Win10的双系统,正常情况下Ubuntu是可以正常访问Windows磁盘的.但是有些用户就是无法再Ubun ...

  2. XAMPP非本地访问被拒绝解决办法

    问题场景: 本机搭建一个apache服务器,正常访问XAMPP目录下的页面. 手机接入同一wifi,以电脑ip方式访问该目录下的页面:提示:Access Denied Access to the re ...

  3. dwz监听日期变化,dwz日期控件onchange不起作用,dwz框架时间控件不支持onchange事件

    转载自:http://blog.csdn.net/sp308036654/article/details/50638348 <input type="text" class= ...

  4. 分布式事务,EventBus 解决方案:CAP【中文文档】(转)

    出处:http://www.cnblogs.com/savorboard/p/cap-document.html 前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这 ...

  5. Haodoop RPC解析

    1. 前言 1 2. Hadoop RPC 1 2.1. 总体结构 1 2.1.1. RPC Interface 1 2.1.2. RPC Server 1 2.1.3. RPC Client 1 2 ...

  6. Swift使用CoreLocation,你必须要看这一篇

    CoreLocation,在我们这里讨论的是一个最常用的东西,就是用Location Manger获取用户当前的位置. 整个的来说非常简单.只要这样: import CoreLocation 需要使用 ...

  7. RSA加密解密总结

    简单的控制台程序 #include"stdafx.h" #include <math.h> #include<string.h> /*/求解密密钥d的函数( ...

  8. 寻找最大的K个数(下)

    接着昨天的写,里面的代码包含昨天的 #include <iostream> using namespace std; #define N 50 //初始化数组 , , , , , , , ...

  9. 个人整理的一些iOS Entitlements

    收集了不少Entitlement,当然也肯定有遗漏.有的就是key的字面意思,就不多做解释.不过有的虽然字面意思好理解,不过具体的用处不太清楚,就写的Unknown use.在替换entitlemen ...

  10. 数据集和JSON相互转换

    使用DELPHI原生类实现数据集和JSON相互转换  JSON二要素:数组和对象.对象可以包含数组,数组可以包含对象.无层数限制.OLEVARIANT也类似,OLEVARIANT的一个元素又可以是OL ...