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 ...
随机推荐
- Codeforces Round #364 (Div. 2) Cells Not Under Attack
Cells Not Under Attack 题意: 给出n*n的地图,有给你m个坐标,是棋子,一个棋子可以把一行一列都攻击到,在根据下面的图,就可以看出让你求阴影(即没有被攻击)的方块个数 题解: ...
- POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)(转)
永恒的大牛,kuangbin,膜拜一下,Orz 链接:http://www.cnblogs.com/kuangbin/archive/2013/04/23/3039313.html Musical T ...
- Double-checked locking and the Singleton pattern--双重检查加锁失效原因剖析
以下内容摘取自http://stackoverflow.com/questions/11195389/out-of-order-writes-for-double-checked-locking Th ...
- bootstrap-响应式工具和打印样式
响应式工具: <div class="container"> <!-- 针对不同的宽度 展示或隐藏相关内容 visible-lg-block 显示 hidden- ...
- Number of Islands
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...
- 词典对象 NSDictionary与NSMutableDictionary
做过Java语言或者 C语言开发的朋友应该很清楚关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便,是一种非常常用的数据结构.在Objecti ...
- mysql 错误1054
问题,当查询数据时,输入字符串是数字时,可以查询,但当输入字母字符串时却不能查询,总是提示错误1054 解决:将字符串打上单引号 字段对应的值如果为字符或字符串类型的时候,应用英文单引号括起来,你用的 ...
- [ActionScript] AS3解决html与flash鼠标滚轮冲突的问题
JS端: <script type="text/javascript"> <!-- var winWidth = 0; var winHeight = 0; va ...
- InnoSetup打包exe安装应用程序,并添加卸载图标 转
http://blog.csdn.net/guoquanyou/article/details/7445773 InnoSetup真是一个非常棒的工具.给我的印象就是非常的精干.所以,该工具已经一步步 ...
- [SQL]sql语句如何修改字段长度
语法: alter table <表名> alter column <字段名> 新类型名(长度) 示例: 假如有名T1,字段名F1,原来F1为varchar(),现在要改为va ...