JDBC 2 封装
1 封装
新建类 DBConnUtil ,新建database.properties 文件储存链接信息如下所示
jdbcDriver=com.mysql.jdbc.Driver
jdbcUrl=jdbc\:mysql\://localhost\:3306/homework
jdbcUser=root
jdbcPasswd=123

public class DBConnUtil {
    private static String jdbcDriver = "";      //定义连接信息
    private static String jdbcUrl = "";
    private static String jdbcUser = "";
    private static String jdbcPasswd = "";
    static{
        InputStream is = null;
        try {
            is = DBConnUtil.class.getClassLoader().getResourceAsStream("database.properties");   //加载database.properties文件
            Properties p = new Properties();
            p.load(is);
            jdbcDriver = p.getProperty("jdbcDriver");    //赋值
            jdbcUrl = p.getProperty("jdbcUrl");
            jdbcUser = p.getProperty("jdbcUser");
            jdbcPasswd = p.getProperty("jdbcPasswd");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(is != null){
                try {
                    is.close();   //  关闭is
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    public static Connection getConn(){   // 建立连接方法
        Connection conn = null;
        try {
            Class.forName(jdbcDriver);
            conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPasswd);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    public static void closeAll(ResultSet rs ,Statement st,Connection conn){  //关闭连接(用于增删改)
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(st != null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void closeAll(ResultSet rs ,PreparedStatement ps,Connection conn){  // 关闭连接(用于查)
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ps != null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

2 测试增删改差
2.1 插入数据

public boolean ChaRu1(User user){
        boolean flag=true;
        Connection conn=null;
        Statement st=null;
        String sql="insert into user (name,pwd) values('"+user.getName()+"','"+user.getPwd()+"')";
        conn=DBConnUtil.getConn();   // getConn()方法是静态的,直接用类调用建立连接。
        try {
            st=conn.createStatement();
            int i=st.executeUpdate(sql);
            if(i==0){
                flag=false;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(null, st, conn);   //关闭连接,由于插入操作不涉及ResultSet类,故其对象rs无需关闭,用null代替。
        }
        return flag;
    }

2.2 修改数据

    public boolean XiuGai2(User user){
        boolean flag=true;
        Connection conn =null;
        Statement st=null;
        String sql="update user set pwd='"+user.getPwd()+"' where name='"+user.getName()+"'";
        conn=DBConnUtil.getConn();
        try {
            st=conn.createStatement();
            st.executeUpdate(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(null, st, conn);
        }
        return flag;
    }

2.3 删除数据

public boolean ShanChu2(int id){
        boolean flag=true;
        Connection conn=null;
        Statement st=null;
        String sql="delete from user where id="+id;
        conn=DBConnUtil.getConn();
        try {
            st=conn.createStatement();
            int i=st.executeUpdate(sql);
            if(i==0){
                flag=false;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(null, st, conn);
        }
        return flag;
    }

2.4删除数据

    public List<User> ChanKan2(){
        List<User> list= new ArrayList<User>();
        Connection conn=null;
        Statement st= null;
        ResultSet rs=null;
        String sql="select * from user";
        conn=DBConnUtil.getConn();
        try {
            st=conn.createStatement();
            rs=st.executeQuery(sql);
            while(rs.next()){
                User user=new User();
                user.setName(rs.getString("name"));
                list.add(user);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            DBConnUtil.closeAll(rs, st, conn);
        }
        return list;
    }

JDBC 2 封装的更多相关文章
- JDBC操作封装
		
这两天学习了一下jdbc的封装,依据的是下面这篇 http://wenku.baidu.com/link?url=FaFDmQouYkKO24ApATHYmA5QzUcj-UE-7RSSZaBWPqk ...
 - 利用jdbc简单封装一个小框架(类似DBUtils)
		
利用jdbc写的一个类似DBUtils的框架 package com.jdbc.orm.dbutils; import java.io.IOException; import java.io.Inpu ...
 - struts神马的不过是对servlet、filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet、filter,不懂jdbc,使用struts和hibernate出问题了都不知道是怎么回事。
		
struts神马的不过是对servlet.filter的封装而已,hibernate神马的也不过是对jdbc的封装而已,他们只是把一些常见的操作流程化了,如果不懂servlet.filter,不懂jd ...
 - java的jdbc简单封装
		
在学了jdbc一段时间后感觉自己写一个简单的封装来试试,于是參考的一些资料就写了一下不是多好,毕竟刚学也不太久 首先写配置文件:直接在src下建立一个db.properties文件然后写上内容 < ...
 - java:Oracle(Jdbc的封装)和HTML(登录,注册,个人信息界面)
		
1.Oracle Jdbc的封装: public class TestJdbc { // 把jdbc需要的属性,全部私有化 private static final String DRIVER = & ...
 - Spring对Jdbc的封装——JdbcTemplate的使用
		
链接:https://pan.baidu.com/s/15luDElW4oeEaP0nvEQ_40w 提取码:i2r1 JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于 ...
 - 简单通用JDBC辅助类封装
		
哎,最近很好久没在博客园写点东西了,由于工作的原因,接触公司自己研发的底层orm框架,偶然发现该框架在调用jdbc操作的时候参考的是hibernate 里面的SimpleJdbcTemplate,这里 ...
 - Apache DbUtils - JDBC轻量级封装的工具包
		
前段时间使用了Apache Common DbUtils这个工具,在此留个印,以备不时查看.大家都知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤的例如大家常用的 ...
 - java学习之jdbc的封装
		
jdbc是连接数据库必不可少的工具,但每次连接都要重新写一遍太麻烦了,也不利于代码的可读性,这里做一个工具类进行封装. package com.gh; import java.sql.Connecti ...
 - java系列-JDBC的封装
		
参考:http://blog.csdn.net/liuhenghui5201/article/details/16369773 一. 1.加载驱动-->>封装 --->> ...
 
随机推荐
- 【Java】仿真qq尝试:聊天界面 && 响应用户输入
			
需求分析: 逐步完善一个“qq仿真”程序. 参考: 1.文本框与文本区:http://www.weixueyuan.net/view/6062.html 2.java布局:http://www.cnb ...
 - MySQL-5.7 DELETE语句详解
			
1.语法 (1)单表 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [PARTITION (partition_name [, partit ...
 - Git使用的常用命令
			
一.git工作流程 Workspace工作区:是当前工作目录,可以在此目录编辑文件 Index缓存区:add指令,保存文件的改动 Repository仓库:commit指令,将多次的文件改动最后提交 ...
 - JMeter学习(十四)jmeter_断言使用
			
先说一下使用断言的目的:在request的返回层面增加一层判断机制.因为request成功了,并不代表结果一定正确.类似于QTP中的检查点检查点.断言的使用方法: step_1:在你选择的Sample ...
 - orecle 函数
			
--创建函数语法 create [or replace] function [schema.]function_name (函数参数列表) --参数有IN.OUT.IN OUT三种类型:IN代表需要输 ...
 - JavaWeb -- Struts2 构建视图:标签和结果, UI组件标签
			
1. 示例 action 注入数据 和 处理action /** * OgnlAction */ public class UiAction extends ActionSupport { priva ...
 - Windows下搭建Apache+Django+Python Web服务环境
			
最近在学Django,想用Apache搭建一个服务器环境,因此在网上看了好多资料,很多都是用Python2.6和Apache2.2搭建的环境,不过我还是想用Python35和Apache24来搭建,具 ...
 - ActiveMQ_01
			
http://shhyuhan.iteye.com/blog/1278103http://www.cnblogs.com/blsong/archive/2012/09/26/2704337.htmlh ...
 - Spark- 使用第三方依赖解析IP地址
			
使用 github上已有的开源项目1)git clone https://github.com/wzhe06/ipdatabase.git 2)编译下载的项目: mvn clean package- ...
 - MFC--根据串口采集的数据借助GDI绘制曲线
			
根据采集到的数据绘制曲线 在串口编程中会涉及到这样一个问题,就是将采集到的数据以曲线的形式展示出来,大家自然而然会想到采用方便快捷的控件进行编程.编程周期短,完成任务快,但是真实情况来看,控件会实现很 ...