java jdbc 封装。。
JDBC工具类。。。
package it.cast.jdbcutils; 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.sql.Statement;
import java.util.Properties; public class JdbcUtils {
private static String JDriver=null;
private static String connectDB=null;
private static String username=null;
private static String password=null; static {
try { InputStream in =null; in= JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties"); Properties prop=new Properties(); prop.load(in); JDriver=prop.getProperty("JDriver"); connectDB=prop.getProperty("connectDB");
username=prop.getProperty("username");
password=prop.getProperty("password"); Class.forName(JDriver);
System.out.println("数据库连接成功");
}
catch (Exception e)
{
throw new ExceptionInInitializerError("连接失败");
}
} public static Connection getConnection() throws SQLException
{
return DriverManager.getConnection(connectDB,username,password);
}
public static void release (Connection conn,Statement st,ResultSet rs)
{
if(rs!=null)
{
try
{
rs.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(st!=null)
{
try
{
st.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(conn!=null)
{
try
{
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
System.out.println("数据库已经断开连接");
}
//增删改方法。
public static void query(String sql,Object params []) throws SQLException
{
Connection conn =null;
PreparedStatement st=null;
ResultSet rs = null;
conn = JdbcUtils.getConnection();
try
{
//获取数据连接
conn = JdbcUtils.getConnection();
//获取数据库对象并对SQL进行预编译
st =conn.prepareStatement(sql);
//获取传进来的SQL,和传进来的参数。并进行赋值。
for(int i=;i<params.length;i++)
{
st.setObject(i+,params[i]);
System.out.println(params[i]);
}
//执行
st.executeUpdate(); }
finally
{
//释放
JdbcUtils.release(conn, st, rs);
} } }
//实体类。
package in.cast.dao; public class data {
private String date;
private Integer num;
public data (String date,Integer num)
{
this.date=date;
this.num=num;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
public String toString()
{
return date+" : "+num ;
}
}
测试:
package in.cast.dao;
import it.cast.jdbcutils.JdbcUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class JDBC_TEST {
public static void main (String [] args) throws Exception
{ JDBC_TEST T=new JDBC_TEST(); HashMap<Integer,data> m=T.insert(); DataSearch(m); }
public static void DataSearch(HashMap<Integer, data> m) {
Set<Map.Entry<Integer,data>> entryset=m.entrySet(); Iterator <Map.Entry<Integer,data>>it=entryset.iterator(); while(it.hasNext())
{
Map.Entry<Integer,data> mp=it.next();
System.out.println(mp.getKey()+" : "+mp.getValue()); }
}
public HashMap<Integer,data> insert() throws Exception
{
HashMap<Integer,data> mp = new HashMap<Integer,data>();
String s1;
Integer s2;
Connection conn=null;
Statement st=null;
ResultSet rs=null;
Integer iCount=0;
try
{
//获取数据库连接
conn=JdbcUtils.getConnection(); //返回一个statement,作用于发送SQL语句 。
st = conn.createStatement();
//SQL 语句
String sql=" select * from tt ; " ;
//返回一个数据集
rs = st.executeQuery(sql) ; //update
//循环
while(rs.next())
{
iCount++;
s1=rs.getString("日期");//等同getObject(column_name)
s2=Integer.parseInt(rs.getString("存入"));
mp.put(iCount,new data(s1,s2)); }
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
JdbcUtils.release(conn,st, rs);
} return mp;
}
配置文件:
JDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
connectDB=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test
username=sa
password=123
JDBC。
package in.cast.dao;
import java.sql.*;
public class test1{
public static void main(String[] args) {
//com.microsoft.sqlserver.jdbc.SQLServerDriver 2008
String JDriver="com.microsoft.sqlserver.jdbc"; 2005
String connectDB="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test"; try{
Class.forName(JDriver);//通过反射加载驱动。
}catch(ClassNotFoundException e)
{ System.out.println("数据库连接异常"); //这里可以抛出一个自定义异常
}
System.out.println("锟斤拷菘锟斤拷锟缴癸拷"); try{
String user="sa";
String password="123";
Connection con=DriverManager.getConnection(connectDB,user,password); Statement stmt=con.createStatement(); //建表
String query="create table TABLE1(ID NCHAR(2),NAME NCHAR(10))";
//提交语句
stmt.executeUpdate(query); String a1="INSERT INTO TABLE1 VALUES('1','a')";
String a2="INSERT INTO TABLE1 VALUES('2','b')";
String a3="INSERT INTO TABLE1 VALUES('3','c')";
stmt.executeUpdate(a1);
stmt.executeUpdate(a2);
stmt.executeUpdate(a3); ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1"); while(rs.next()){ System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME"));
} //从建表到插入数据到查询 。仅为熟悉语句。 stmt.close();
con.close();
}catch(SQLException e){
e.printStackTrace(); System.exit(0);
}
}
}
java jdbc 封装。。的更多相关文章
- Java JDBC封装模式
模仿DBUtils里面的一些用法,下面是一些简单的实现数据集的操作的方法 下面使用到的两个bean.首先是userbean package bean; public class user { Stri ...
- Java JDBC的基础知识(二)
在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...
- 优化JDBC封装
可重用性较强的JDBC封装 以下为代码,注释中写了主要思想 主类 com.util.JDBCUtil.java package com.util; import java.lang.reflect.F ...
- JAVA JDBC(存储过程和事务管理)
1.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程 ...
- jdbc封装代码
jdbc封装代码 package jdbcUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...
- Java之封装与访问权限控制(二)
目录 Java之封装与访问权限控制(二) 包:库单元 import import static Java常用包 Java之封装与访问权限控制(二) 访问权限控制是具体实现的隐藏,是封装性的一部分体现. ...
- Java JDBC 数据库链接小结随笔
Java JDBC 数据库链接小结随笔 一.链接数据库的步骤 二.关于Statement 和 PrepareStatement 两者区别 用法 三.关于 ResultSet 的一些小结 四.自定义 ...
- JAVA JDBC Template的使用
JAVA JDBC Template的使用 什么是Template? Spring框架对JDBC的简单封装.提供了一个JDBCTemplate对象简化JDBC的开发 Template使用步骤 导入ja ...
- Java面向对象㈠ -- 封装
Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...
随机推荐
- Synchronizing with Remote Repositories
Synchronizing the states of local and remote repositories consists of pulling from and pushing to th ...
- PLSQL_性能优化工具系列10_Automatic Database Diagnostic Monitor - ADDM
2014-09-06 Created By BaoXinjian
- linux命令(12)uniq去重
转载地址:http://blog.51yip.com/shell/1022.html 实例详细说明linux下去除重复行命令uniq 一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以 ...
- DDoS-Deflate安装及配置
(D)DoS-Deflate是一款免费的用来防御和减轻DDoS攻击.它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或iptables禁止或 ...
- js鼠标事件、键盘事件实例代码
讲述了:鼠标的哪个按键被点击.当前鼠标的光标坐标是多少.被按下键的unicode码是多少.当前鼠标的光标相对于屏幕的坐标是多少.当前鼠标的光标坐标是多少.shift键是否按下.当前被点击的是哪一个元素 ...
- ruby 字符串学习笔记1
1 从一种数据结构中构件字符串 hash = { key1: "val1", key2: "val2" } string = "" hash ...
- C++学习24 虚析构函数
在C++中,构造函数用于在创建对象时进行初始化工作,不能声明为虚函数.因为在执行构造函数前对象尚未创建完成,虚函数表尚不存在,也没有指向虚函数表的指针,所以此时无法查询虚函数表,也就不知道要调用哪一个 ...
- [ActionScript 3.0] Away3D 官网实例
/* Dynamic tree generation and placement in a night-time scene Demonstrates: How to create a height ...
- Delphi的内存管理及内存泄露问题 FastMM4
这几天因为一个程序长时间运行出现比较严重的内存泄露问题,开始关注了一下内存管理方面的东西,以前也注意内存管理,创建了对象及时释放,但总有忘了处理的情况. 在Delphi中没有自动回收机制,所以一定要及 ...
- 【转】Bash脚本实现批量作业并行化
首先附上自己常用的代码 ---------------------------------------------------------------------------------------- ...