zoukankan      html  css  js  c++  java
  • java之操作mysql常用方法

    一般引用mysql-connector-java这个包。

    package DBManager;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.HashSet;
    import java.util.Set;
    
    import MyClient.ArrivalCities;
    import MyClient.LineInfos;
    import MyClient.TrainLineInfo;
    
    public class DBHelper {
    
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        private static final String URL = "jdbc:mysql://localhost:3306/traininfo";
        private static final String USERNAME = "root";
        private static final String PASSWORD = "123abcd";
        Connection conn = null;
        ResultSet result = null;
        PreparedStatement statement = null;
        PreparedStatement stateInsert = null;
        PreparedStatement stateUnlock = null;
    
        public Connection getConnection() {
            try {
                Class.forName(DRIVER);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return conn;
        }
    
        public ResultSet executeQuery(String sql) {
            conn = this.getConnection();
            try {
                statement = conn.prepareStatement(sql);
                result = statement.executeQuery();
                return result;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("query data failed");
            }
            return null;
        }
    
        public ResultSet findTrainLinesByDate(String start_city, String date) {
            String dateStr = dateToString(date);
            ResultSet result = this.executeQuery("select name,start_time from "
                    + "line_" + dateStr + "_info " + "where start_city='"
                    + start_city + "' and date='" + date + "'");
            return result;
        }
    
        public ResultSet findArrivalCities(String city, String line) {
            ResultSet result = this
                    .executeQuery("select distinct arrival_city from " + city
                            + "_city_info where line_num='" + line + "'");
            return result;
        }
    
        public ArrivalCities getAllArrivalCities(String startCity, String date) {
            ArrivalCities cities = new ArrivalCities();
            Set<String> list = new HashSet<String>();
            ResultSet lines = this.findTrainLinesByDate(startCity, date);
            try {
                while (lines.next()) {
                    ResultSet arrivals = this.findArrivalCities(startCity,
                            lines.getString("name"));
                    while (arrivals.next()) {
                        list.add(arrivals.getString("arrival_city"));
                    }
                }
                if (list.size() > 0) {
                    cities.setCities(list);
                    return cities;
                }
                return null;
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }
    
        public LineInfos getAllLineInfos(String startCity, String arrivalCity,
                String date) {
            LineInfos lineinfos = new LineInfos();
            ResultSet lines = this.findTrainLinesByDate(startCity, date);
            if (lines != null) {
                try {
                    while (lines.next()) {
                        String name = lines.getString("name");
                        ResultSet result = this.executeQuery("select price from "
                                + startCity + "_city_info where arrival_city="
                                + '"' + arrivalCity + '"' + " and line_num=" + '"'
                                + name + '"');
                        if (result.next()) {
                            TrainLineInfo train = new TrainLineInfo(name,
                                    result.getInt("price"),
                                    lines.getLong("start_time"));
                            lineinfos.getList().add(train);
                        }
                    }
                    return lineinfos;
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return null;
        }
    
        public ResultSet findNumOfSellSeats(String date, String line) {
            String dateStr = dateToString(date);
            ResultSet result = this.executeQuery("SELECT count(id) as num from "
                    + line + "_" + dateStr + "_info where is_out=1");
            return result;
        }
    
        public String dateToString(String date) {
            String[] result = date.split("-");
            StringBuilder sb = new StringBuilder();
            for (String ss : result) {
                sb.append(ss);
            }
            return sb.toString();
        }
        
        //购票,更新数据库信息
        public void getBuyTicket(String dep_city,String arr_city, String date, String line){
            String seat = getProperSeat(dep_city, line, date);
            String sql = "update ";
            
        }
    
        public boolean executeDelete(String sql) {
            conn = this.getConnection();
            try {
                statement = conn.prepareStatement(sql);
                if (statement.executeUpdate() > 0) {
                    return true;
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                System.out.println("delete data failed");
                e.printStackTrace();
            }
            return false;
        }
    
        public boolean executeUpdate(String sql) {
            conn = this.getConnection();
            try {
                statement = conn.prepareStatement(sql);
                if (statement.executeUpdate() > 0) {
                    return true;
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                System.out.println("update data failed");
                e.printStackTrace();
            }
            return false;
        }
    
        public boolean executeInsert(String sql, String date, String line) {
            conn = this.getConnection();
            String lockSql = "lock tables " + line + "_" + date + "_info write";
            String unlockSql = "unlock tables";
            try {
                stateInsert = conn.prepareStatement(lockSql);
                statement = conn.prepareStatement(sql);
                stateUnlock = conn.prepareStatement(unlockSql);
                stateInsert.executeQuery();
                if (statement.executeUpdate() > 0) {
                    stateUnlock.executeQuery();
                    return true;
                }
                stateUnlock.executeQuery();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                System.out.println("insert data failed");
                e.printStackTrace();
            }
            return false;
        }
    
    }
  • 相关阅读:
    ORA-14404
    ORA-00845
    ORA-00054
    oracle-11g-配置dataguard
    ORACLE 11G 配置DG 报ORA-10458、ORA-01152、ORA-01110
    Python:if __name__ == '__main__'
    HDFS-Shell 文件操作
    HDFS 概述
    PL/SQL Developer
    CentOS7 图形化方式安装 Oracle 18c 单实例
  • 原文地址:https://www.cnblogs.com/nannanITeye/p/3461760.html
Copyright © 2011-2022 走看看