JDBC 工具类封装、封装DAO方法与数据库表实体类封装的使用案列详情

JDBC工具类封装、封装DAO方法与数据库表实体类封装

准备:

MySQL数据表:

CREATE TABLE `数据库名称`.`emp`  (
  `id` int NOT NULL COMMENT 'id',
  `name` varchar(255) NULL COMMENT '姓名',
  `department` varchar(255) NULL COMMENT '任务组',
  PRIMARY KEY (`id`)
);
--添加几条数据

  insert into emp (id,name,department) values (10,"note","159");
  insert into emp (id,name,department) values (20,"lik","152");
  insert into emp (id,name,department) values (30,"bybe","132");
  insert into emp (id,name,department) values (40,"mrcheng","322"

JDBC 工具封装类:

package JDBCTest;

import java.sql.*;

/**
 * 方法描述
 *
 * @since: 1.0.0
 * @param: jdbc工具类 对一些操作进行封装
 * @JDBCUtils: JDBCUtils
 * @author: Mr.cheng
 * @date: 2021/1/14 8:57
 */
public class JDBCUtils {

    Connection coon = null;
    PreparedStatement ps = null;

    //使静态代码块对需要低用该工具类就能执行,平切只执行一次
    static {
        try {
            //加载驱动
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println("注册驱动已执行!");
    }

    /**
     * @return 注册连接
     */
    public Connection coonManger() {
        try {
            coon = DriverManager.getConnection("jdbc:mysql://localhost:3306/center", "root", "123456");
        } catch (SQLException ex) {
            ex.printStackTrace();
            System.out.println("程序注册链接失败!");
        }
        System.out.println("加载驱动已执行!");
        return coon;
    }


    /**
     * 方法描述 表示预编译SQL语句的对象。
     *
     * @since: 1.0.0
     * @param: [sql]
     * @return: java.sql.PreparedStatement
     * @author: Mr
     * @date: 2021/1/14 9:18
     */
    public PreparedStatement prepare(String sql) throws Exception {
        try {
            ps = coon.prepareStatement(sql);
        } catch (SQLException eps) {
            eps.printStackTrace();
            System.out.println("获取数据库解析失败!");
        }
        return ps;
    }

    //关闭资源
    public void close() {
        if (coon != null) {
            try {
                coon.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    //包含结果集ResultSet 查询结构及进行关闭
    public void resultSet(ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        //调用关闭资源的
        close();
    }
}

  使用案列:

package JDBCTest;

import JDBCTest.dao.EmpDao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
import java.util.Scanner;

public class UtilTest {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Connection coon = null;
        PreparedStatement ps = null;
        String id, name, department;
        int faly = 0;
        JDBCUtils utils = new JDBCUtils();
        Emp emp = new Emp();
        EmpDao dao = new EmpDao();

        System.out.println("****欢迎来到猪猪世界****");
        System.out.println("请输入你要办理的业务");
        System.out.println("1.添加朋友");
        System.out.println("2.清除朋友");
        System.out.println("3.更新朋友");
        System.out.println("4.我的好友");
        System.out.println("请选择功能!");
        faly = scanner.nextInt();

        if (faly == 1) {
            System.out.println("请输入添加ID,必须为数字");
            id = scanner.next();
            System.out.println("请输入添加姓名,必须为字符型");
            name = scanner.next();
            System.out.println("请输入添加分组,必须为字符型");
            department = scanner.next();
            dao.empAdd(id, name, department);
        } else if (faly == 2) {
            System.out.println("请输入删除ID,必须为数字");
            id = scanner.next();
            dao.Depdetele(id);
        } else if (faly == 3) {
            System.out.println("请输入添加ID,必须为数字");
            id = scanner.next();
            System.out.println("请输入新的姓名");
            name = scanner.next();
            System.out.println("请输入新的分组名称");
            department = scanner.next();
            dao.DepUpdate(name, department, id);
        } else if (faly == 4){
            System.out.println("*********正在查新中*******");
            List<Emp> list = dao.reSet();
            for (Emp emplist :list
                 ) {
                System.out.println("ID编号"+emplist.getId()+"姓名:"+emplist.getName()+"任务组:"+emplist.getDepartment());
            }
        }
    }
}

  封装DAO:

package JDBCTest.dao;

import JDBCTest.JDBCUtils;
import JDBCTest.Emp;

import javax.swing.*;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class EmpDao {
    JDBCUtils util = new JDBCUtils();

    Connection coon = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

    public int empAdd(String id, String name, String department) {
        String sql_1 = "insert into emp (id,NAME,department) values (?,?,?) ";
        //返回执行的条数
        int i = 0;
        try {
            coon = util.coonManger();
            ps = util.prepare(sql_1);
            ps.setInt(1, Integer.parseInt(id));
            ps.setString(2, name);
            ps.setString(3, department);
            i = ps.executeUpdate();
            System.out.println("更新数据成功一条!");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            util.close();
        }
        if (i == 1) {
            System.out.println("插入成功!");
        } else {
            System.out.println("插入失败!");
        }
        return i;
    }


    public int Depdetele(String id) {

        String sql_2 = "delete from emp where id =? ";
        //记录执行的条数并返回
        int i = 0;
        try {
            coon = util.coonManger();
            ps = util.prepare(sql_2);
            ps.setInt(1, Integer.valueOf(id));
            i = ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            util.close();
        }

        if (i == 1) {
            System.out.println("删除成功!");
        } else {
            System.out.println("删除失败!");
        }
        return i;
    }

    public int DepUpdate(String name, String deparment, String id) {
        String sql_3 = "update emp SET name = ? ,department = ? WHERE id= ? ";
        int i = 0;
        try {
            coon = util.coonManger();
            ps = util.prepare(sql_3);
            ps.setString(1, name);
            ps.setString(2, deparment);
            ps.setString(3, id);
            i = ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            util.close();
        }
        if (i == 1) {
            System.out.println("更新成功!");
        } else {
            System.out.println("更新失败!");
        }
        return i;
    }

    public List reSet() {
        String sql = "select * from emp";
        coon = util.coonManger();
        List list = new ArrayList();

        try {
            ps = coon.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String department = rs.getString("department");
                Emp emp =new  Emp(id,name,department);
                list.add(emp);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            util.resultSet(rs);
        }
        return list;
    }

}

  

 

posted @ 2021-01-14 15:51  Centerless  阅读(213)  评论(0)    收藏  举报