欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

控制台项目 对数据库进行增删改查,控制台增删,欢迎光临:1:查询2:更

来源: javaer 分享于  点击 3453 次 点评:73

控制台项目 对数据库进行增删改查,控制台增删,欢迎光临:1:查询2:更


欢迎光临:

1:查询

2:更新

3:插入

4:删除

5:退出

你想干什么? 请选择:

通过选择进行对应的数据库操作

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class TestConnection {    /**     * 定义链接需要的字符串     */    private static final String str1 = "com.microsoft.sqlserver.jdbc.SQLServerDriver";    private static final String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test3";    private static final String user = "sa";    private static final String password = "910627";    Connection conn;    PreparedStatement st;    ResultSet rs;    /**     * 加载驱动类     */    static {        try {            Class.forName(str1);        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    /**     * 建立链接的方法     *      * @return     */    private Connection getConnection() {        try {            conn = DriverManager.getConnection(url, user, password);        } catch (Exception e) {            // TODO: handle exception        }        return conn;    }    /**     * 使用prepareStatement来预编译查询语句 然后传参数的值来作为条件查询数据库 返回list     *      * @param id     * @return     */    public List getData(String sql, Object[] array) {        // SQL语句        List list = new ArrayList();        conn = this.getConnection();        try {            // 预编译            st = conn.prepareStatement(sql);            // 利用方法传入参数            for (int i = 0; i < array.length; i++) {                st.setObject(i + 1, array[i]);            }            // 执行查询            rs = st.executeQuery();            while (rs.next()) {                Map map = new HashMap();                ResultSetMetaData rsmd = rs.getMetaData();                // 以列名为键 存储每一行数据进map                for (int i = 1; i <= rsmd.getColumnCount(); i++) {                    map.put(rsmd.getColumnName(i), rs.getObject(i));                }                // 将每一个map加入list 这样list的到就是每一行                list.add(map);            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } finally {            // 关闭连接            this.close();        }        return list;    }    /**     * 更新数据的方法     *      * @param sql     * @param array     * @return     */    public int update(String sql, Object array[]) {        conn = this.getConnection();        int line = 0;        try {            st = conn.prepareStatement(sql);            // 传参数            for (int i = 0; i < array.length; i++) {                st.setObject(i + 1, array[i]);            }            line = st.executeUpdate();            // 判断是否修改成功            if (line > 0) {                return line;            } else {                System.out.println("更新失败");            }        } catch (SQLException e) {            e.printStackTrace();        } finally {            // 关闭连接            this.close();        }        return 0;    }    /**     * 关闭连接     */    private void close() {        try {            if (rs != null) {                rs.close();            }        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } finally {            try {                if (st != null) {                    st.close();                }            } catch (SQLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } finally {                try {                    if (conn != null) {                        conn.close();                    }                } catch (SQLException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            }        }    }}----------------------------------------------------------------------------import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Scanner;import java.util.Set;/** * 数据库操作类 * @author Administrator * */public class Handle {    TestConnection tc = new TestConnection();    Scanner sc = new Scanner(System.in);    /**     * 查询方法     */    public void query() {        System.out.println("1:查询全部");        System.out.println("2:根据employeeId查询");        System.out.print("选择你要执行选项");        // Scanner sc2 = new Scanner(System.in);        int type2 = sc.nextInt();        switch (type2) {        case 1:            String Sql1 = "select employeeId,employeeName,email,employeeSalary,departmentId from employee where 1=?";            Object[] array1 = { 1 };            List list = tc.getData(Sql1, array1);            /**             * 取键值 并打印 即为输出的列名 排列              */            Map map2 = (Map) list.get(0);            // 存键值            Set set2 = map2.keySet();            Iterator it2 = set2.iterator();            while (it2.hasNext()) {                System.out.print("\\t" + it2.next());            }            System.out.println();            //循环取出 每个行的数据            for (Object object : list) {                // list里面是map对象                Map map = (Map) object;                // 存键值                Set set = map.keySet();                Iterator it = set.iterator();                while (it.hasNext()) {                    // 取键值                    Object key = it.next();                    // 输出 map里的数据                    System.out.print("\\t " + map.get(key));                }                System.out.println();            }            break;        case 2:            /**             * 根据用户输入的员工id进行查询             */            System.out.println("输入employeeId:");            Object object = sc.nextInt();            Object[] array = { object };            String Sql2 = "select employeeId,employeeName,email,employeeSalary,departmentId from employee where employeeId =? ";            List list2 = tc.getData(Sql2, array);           //输出列名            Map map3 = (Map) list2.get(0);            // 存键值            Set set3 = map3.keySet();            Iterator it3 = set3.iterator();            while (it3.hasNext()) {                System.out.print("\\t" + it3.next());            }            System.out.println();            //循环输出数据            for (Object object2 : list2) {                // list里面是map对象                Map map4 = (Map) object2;                // 存键值                Set set4 = map4.keySet();                Iterator it4 = set4.iterator();                while (it4.hasNext()) {                    // 取键值                    Object key = it4.next();                    // 输出 map里的数据                    System.out.print("\\t " + map4.get(key));                    // System.out.print("\\t"+ map.get(key));                }                System.out.println();            }            break;        }    }    /**     * 更新方法     */    public void update(){        System.out.print("请输入employeeId:");        Object id = sc.next();        System.out.print("请输入想更新的薪水值:");        Object salary = sc.next();        //根据用户输入的员工号来修改薪水值并判断是否执行成功        String sql = "update employee set employeeSalary = ? where  employeeId = ? " ;        Object [] array =  { salary, id  };        //使用TestConnection的update方法        int line =  tc.update(sql, array);        if(line>0){            System.out.println("信息更新成功!");        }    }    /**     * 插入方法     */    public void insert(){        System.out.print("请输入employeeId:");        Object id = sc.next();        System.out.print("请输入employeeName:");        Object name = sc.next();        System.out.print("请输入email:");        Object email = sc.next();        System.out.print("请输入employeeSalary:");        Object salary = sc.next();        System.out.print("请输入dapartmentId:");        Object dpId = sc.next();        Object[] array = {id,name,email,salary,dpId};        //插入用户输入的数据 并判断是否执行成功        String sql = "insert into employee values(?,?,?,?,?)";        int line = tc.update(sql, array);        if(line>0){            System.out.println("插入成功!");        }    }    /**     * 删除方法     */    public void delete(){        System.out.print("请输入想删除的员工号:");        Object id = sc.next();        Object [] array = {id};        //删除用户输入 的员工号的数据并判断是否执行成功        String sql = "delete from employee where employeeId = ? ";        int line =  tc.update(sql, array);            if(line>0){                System.out.println("删除成功!");            }    }}-----------------------------------------------------------------------------------------import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Scanner;import java.util.Set;/** * 测试类 * @author Administrator * */public class Test {    public static void main(String[] args) {        //输出选项      System.out.println("欢迎光临:");      System.out.println("1:查询");      System.out.println("2:更新");      System.out.println("3:插入");      System.out.println("4:删除");      System.out.println("5:退出"+"\\n");      System.out.print("你想干什么?   请选择:");      //控制台输入      Scanner sc = new Scanner(System.in);      //实例化数据操作类Handle      Handle hd = new Handle();      int type = sc.nextInt();      /**       * 判断用户选择操作的项       */      switch(type){      case 1:          //调用Handle查询方法          hd.query();          break;      case 2:          //更新          hd.update();          break;      case 3:          //插入          hd.insert();          break;      case 4:          //删除          hd.delete();          break;      case 5:          //退出          System.out.println("程序退出!");          System.exit(0);          break;      }    }}//该片段来自于http://byrx.net
相关栏目:

用户点评