jdbc工具类封装

封装

package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; 

/**
 * @author sawyer 2014下午1:20:16
 *
 */ 

public class JdbcUtil {
    private Connection conn = null;
    private PreparedStatement stmt = null;
    private ResultSet rs = null;
    private static String driver = "com.mysql.jdbc.Driver";
    private String url = "jdbc:mysql://localhost:3306/Student";
    private String user = "root";
    private String password = "root"; 

    /**
     * Get the driver
     */
    static { 

    }
    /**
     * Connect the database
     */
    public Connection getCon() {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            conn = (Connection) DriverManager
                    .getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    } 

    /**
     * @param sql
     * @param obj
     *Update
     */
    public int update(String sql, Object... obj) {
        int count = 0;
        conn = getCon();
        try {
            stmt = conn.prepareStatement(sql);
            if (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    stmt.setObject(i + 1, obj[i]);
                }
            }
            count = stmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close();
        }
        return count;
    }

    /**
     * @param sql
     * @param obj
     * Query
     */
    public ResultSet Query(String sql, Object... obj) {
        conn = getCon();
        try {
            stmt = conn.prepareStatement(sql);
            while (obj != null) {
                for (int i = 0; i < obj.length; i++) {
                    stmt.setObject(i + 1, obj[i]);
                }
            }
            rs = stmt.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close();
        }
        return rs;
    }

    /**
     * CLose the resource
     */
    public void close() {
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

model

package model;

import java.io.Serializable;

public class Student implements Serializable{
    private int id;
    private int age;
    private String name;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

测试

package model;

import java.sql.ResultSet;
import java.sql.SQLException;

import util.JdbcUtil;

public class Test {
    public static void main(String[] args) {
        testInsert();
        testQuery();
    }
    public static void testInsert(){
        Student s=new Student();
        s.setId(12);
        s.setAge(23);
        s.setName("xxt");
        JdbcUtil u=new JdbcUtil();
        String sql="insert into T_Student(id,age,name) values( ?,?,?)";
        int result=u.update(sql, s.getId(),s.getAge(),s.getName());
        System.out.println(result);
    }
    public static void testQuery(){
        String sql="select * from T_Student where age=?";
        Student s=new Student();
        s.setAge(23);
        JdbcUtil u=new JdbcUtil();
        ResultSet rs=u.Query(sql, s.getAge());
        try {
            if(rs.next()){
                //s.setName(rs.getString("name"));
                System.out.println(rs.getString("name"));//s.getName(rs.getString("name"))
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
时间: 2024-11-12 01:59:02

jdbc工具类封装的相关文章

DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据访问者)模式和 Active Domain Object(领域对象)模式.Data Accessor 模式实现了数据访问和业务逻辑的分离:Active Domain Object 模式实现了业务数据的对象化封装. 需要注意的是,DAO设计模式是Java EE中的设计模式,而非Ja

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4059514.html 联系方式:[email protected] [正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据

开源JDBC工具类DbUtils

本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUtils,而在这过程中很多都是借鉴和参考了DbUtils的代码,因此通过上一篇的学习,会让我们在对DbUtils进行更快速简单的认识. 俗话说学习一个开源的工具最好的方法就是看其官方文档,是的,在Apache官网中对DbUtils进行了详细的介绍:http://commons.apache.org/pr

JDBC【事务、元数据、改造JDBC工具类】

1.事务 一个SESSION所进行的所有更新操作要么一起成功,要么一起失败 举个例子:A向B转账,转账这个流程中如果出现问题,事务可以让数据恢复成原来一样[A账户的钱没变,B账户的钱也没变]. 事例说明: /* * 我们来模拟A向B账号转账的场景 * A和B账户都有1000块,现在我让A账户向B账号转500块钱 * * */ //JDBC默认的情况下是关闭事务的,下面我们看看关闭事务去操作转账操作有什么问题 //A账户减去500块 String sql = "UPDATE a SET money

jdbc工具类1.0

package cn.zhouzhou; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /* * 一.jdbc工具类 * 1.是啥? * 在增删改查的时候 ,发现很多代码都是重复的.为了简化代码,将其封装成一个类

JDBC工具类连接数据库,模仿登录

## 使用JDBC工具类的原因在使用JDBC连接数据库的时候,加载驱动.获取连接.释放资源等代码是重复的,所有为了提高代码的复用性,我们可以写一个工具类,将数据库驱动加载.获取连接.资源释放的代码封装起来.同时,为了使工具类的灵活性,可以将数据库的驱动.url.用户名.密码等信息以键值对的形式存放在properties文件中,工具类初始化时从配置文件中读取所要连接数据库的信息.当需要更改连接的数据库时,只需要更改配置文件即可,而不必改写工具类的代码. ## 工具类实现```import java

JDBC-select练习&amp;jdbc工具类

一.select练习 1.说明 练习: * 定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回. 1. 定义Emp类 2. 定义方法 public List<Emp> findAll(){} 3. 实现方法 select * from emp; 2.建表 create table emp( id int primary key not null, ename varchar(50), job_id int, mgr int, joindate date, salary deci

JDBC工具类

在java中经常会用到JDBC工具类去连接数据库,今天说一下JDBC工具类 package com.test.util; //该工具类所在包的包名 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement