Java 之jdbc连接mysql数据库

package jdbc;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JdbcUtils 
{    
    private static String url;
    private static String user;
    private static String password;
    static {
        try {
            //FileInputStream in = new FileInputStream(new File("./src/db.properties"));
            InputStream in = JdbcUtils.class.getResourceAsStream("/db.properties");
            Properties properties = new Properties();
            properties.load(in);
            Class.forName(properties.getProperty("driver"));
            url = properties.getProperty("url");
            user = properties.getProperty("user");
            password = properties.getProperty("password");
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    /**
     * 获取连接
     * @return
     */
    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    
    /**
     * 关闭连接
     */
    public static void close(Statement stateMent, Connection connection) {
        if (stateMent != null) {
            try {
                stateMent.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }
    
}
package jdbc.statement;

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

import jdbc.JdbcUtils;

import org.junit.Test;

public class StateMentTest {

    @Test
    public void testInsert() {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtils.getConnection();
            stmt = conn.createStatement();
            String sql = "insert into test (name) values ('test')";
            int count = stmt.executeUpdate(sql);
            System.out.println(count);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            JdbcUtils.close(stmt, conn);
        }
    }
    @Test
    public void testUpdate() {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtils.getConnection();
            stmt = conn.createStatement();
            String sql = "update test set name = 'update' where id=4";
            int count = stmt.executeUpdate(sql);
            System.out.println(count);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            JdbcUtils.close(stmt, conn);
        }
    }
    @Test
    public void testDelete() {

        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtils.getConnection();
            stmt = conn.createStatement();
            String sql = "delete from test where id=4";
            int count = stmt.executeUpdate(sql);
            System.out.println(count);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            JdbcUtils.close(stmt, conn);
        }
    }
    
    @Test
    public void testSelect() {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = JdbcUtils.getConnection();
            stmt = conn.createStatement();
            String sql = "select * from test";
            ResultSet resultSet = stmt.executeQuery(sql);
            while(resultSet.next()) {
                System.out.println(resultSet.getString("name"));
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            JdbcUtils.close(stmt, conn);
        }
    }
}
package jdbc.prepared;

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

import jdbc.JdbcUtils;

import org.junit.Test;

public class PreparedStateMent {
    
    @Test
    public void testInsert()
    {
        Connection conn = JdbcUtils.getConnection();
        String sql = "insert into test (name) values (?)";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
            pstmt.setString(1, "prepared");
            int count = pstmt.executeUpdate();
            ResultSet resultSet = pstmt.getGeneratedKeys();
            if (resultSet.next()) {
                System.out.println(resultSet.getString(1));
            }
            System.out.println(count);
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally{
            JdbcUtils.close(pstmt, conn);
        }
    }
    
    @Test
    public void testUpdate()
    {
        Connection conn = JdbcUtils.getConnection();
        String sql = "update test set name = ? where id = ?";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, "prepareds");
            pstmt.setInt(2, 6);
            int count = pstmt.executeUpdate();
            System.out.println(count);
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally{
            JdbcUtils.close(pstmt, conn);
        }
    }
    @Test
    public void testDelete()
    {
        Connection conn = JdbcUtils.getConnection();
        String sql = "delete from test where id = ?";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 6);
            int count = pstmt.executeUpdate();
            System.out.println(count);
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally{
            JdbcUtils.close(pstmt, conn);
        }
    }
    @Test
    public void testSelect()
    {
        Connection conn = JdbcUtils.getConnection();
        String sql = "select * from test";
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement(sql);
            ResultSet set = pstmt.executeQuery();
            while(set.next()) {
                System.out.println(set.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally{
            JdbcUtils.close(pstmt, conn);
        }
    }
}

 

posted @ 2019-02-08 17:31  样子2018  阅读(224)  评论(0编辑  收藏  举报