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 ...
随机推荐
- storm概念学习及流处理与批处理的区别
在过去10 年中,随着互联网应用的高速发展,企业积累的数据量越来越大,越来越多.随着Google MapReduce.Hadoop 等相关技术的出现,处理大规模数据变得简单起来,但是这些数据处理技术都 ...
- DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)
2014-08-07 Created By BaoXinjian
- 转--Android:TextView属性大全
android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) android ...
- spring注解注入
@Autowired public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } @Test public void tes ...
- easyui tabs内容panel自适应窗体宽度方法
废话不说,直接上代码: $('#Teacherwin_details').window({ title: '查看教职工信息', width: 800, height: 520, top: ($(win ...
- sencha touch 开发准备
这是本人第一次写博客教程,没什么经验,文笔也不是很好,写这教程一方面为了巩固自己这段时间的学习成果,一方面帮助大家解决问题,欢迎大家多提建议,指出问题.接下来我们就开始我们的sencha touch开 ...
- 编码中常用的SQL语法
蓝色标注的都是比较常见的SQL ====================== 开发中常见的SQL: left join , right join 防止丢弃数据 inner join CASE WHNE ...
- Goldengate常用命令
1.Goldengate的起停 启动goldengate a> 启动goldengate时最好先从target节点开始,然后是source节点.否则data pump进程可能会由于没有收到t ...
- linux mint konsole终端模拟器 字符之间空格
最近安装了linux mint 发现里面的终端是:konsole终端模拟器 ,问题是每次输字符随着输入字符越来越多,字符与光标之间的距离也越来越大(看上去像是自动添加了空格一样), 同时在使用vi时, ...
- Functions类,一个Javascript的函数加法类,将两个函数加起来,顺序执行
以下是类的代码: var Functions = { oFunctions: null, add: function (oFunc, oNewFunc) { var oNew = function ( ...