jdbc链接数据库

Posted 艾恩格朗特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdbc链接数据库相关的知识,希望对你有一定的参考价值。

虽然简单,但是有时候只能留个印象。

public class JdbcUtil {
    static String url = null;
    static String username = null;
    static String password = null;
    static String driverClass = null;

    static {
        try {

            Properties properties = new Properties();
            InputStream in = JdbcUtil.class
                    .getResourceAsStream("/jdbc.properties");
            properties.load(in);

            url = properties.getProperty("url");
            username = properties.getProperty("username");
            password = properties.getProperty("password");
            driverClass = properties.getProperty("driver");
            
            System.out.println(password);
            Class.forName(driverClass);

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("驱动加载失败!");
            throw new RuntimeException(e);
        }
    }

    public static Connection getConnection() {
        try {
            Connection conn = DriverManager.getConnection(url, username, password);
            return conn;
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    public static void close(Connection conn, Statement st, ResultSet rs) {
        if (conn != null) {
            try {
                conn.close();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }

        if (st != null) {
            try {
                st.close();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }

        if (rs != null) {
            try {
                rs.close();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }

    public static void close(Connection conn, Statement st) {
        if (conn != null) {
            try {
                conn.close();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }

        if (st != null) {
            try {
                st.close();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }
    
     /*
     * 释放资源
     */
    public static void releaseResources(ResultSet resultSet,
            Statement statement, Connection connection) {

        try {
            if (resultSet != null)
                resultSet.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            resultSet = null;
            try {
                if (statement != null)
                    statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                statement = null;
                try {
                    if (connection != null)
                        connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    connection = null;
                }
            }
        }

    }


}

 

 

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

import bean.QuackResults;
//存入数据库新增加功能
/**
 * 2017/10/21
 * @author lemo
 *
 */
public class DbExcute {

    private Connection connection;
    private Statement statement;
    private ResultSet resultSet;

    // 更新操作
    public void update(String sql) {
        try {
            connection = JdbcUtil.getConnection();
            statement = connection.createStatement();
            // 可执行创建、修改、删除表,添加、删除、修改元组以及查询sql语句
            boolean num=statement.execute(sql);
            System.out.println(num);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.close(connection, (com.mysql.jdbc.Statement) statement,
                    resultSet);
        }
    }

    // 查询操作
    public ResultSet Query(String sql) {
        try {
            connection = JdbcUtil.getConnection();
            statement = connection.createStatement();
            resultSet = statement.executeQuery(sql);

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.releaseResources(resultSet, statement, connection);
        }
        return resultSet;
    }

    // 添加操作
    public void addElement(String sql) {
        update(sql);
    }
    public void addElement(QuackResults aQuackResults) {
        /*String sqlStr = "select* from users where username=? and password=?"; 
        connection = JdbcUtil.getConnection();
        PreparedStatement aStatement=null;
        try {
            
            aStatement=connection.prepareStatement(sqlStr);
            aStatement.setString(1,"zhansgan");
            aStatement.setString(2, "root");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }*/
        
        String sqlStr = "insert into mine_quack_results values(null,?,?,?,?,?)"; 
        connection = JdbcUtil.getConnection();
        PreparedStatement aStatement=null;
        try {
            
            aStatement=connection.prepareStatement(sqlStr);
            aStatement.setDouble(1,aQuackResults.getxData());
            aStatement.setDouble(2, aQuackResults.getyData());
            aStatement.setDouble(3, aQuackResults.getzData());
            aStatement.setTimestamp(4,aQuackResults.getQuackTime());
            aStatement.setDouble(5, aQuackResults.getQuackGrade());
            System.out.println(aStatement.execute());
            connection.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

    // 删除操作
    public void removeElement(String sql) {
        update(sql);
        
        
    }

    // 创建一个表
    public void createTable(String sql) {
        update(sql);
    }

    // 删除一个表
    public void dropTable(String sql) {
        update(sql);
    }

}

 

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/ks?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
username=root
password=root
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000

 

以上是关于jdbc链接数据库的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

JDBC操作数据库之查询数据

JDBC——Java代码与数据库链接的桥梁

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

如何在片段中填充列表视图?