Java JDBC 连接Mysql数据库

以下Code在同一个Package中。亲测可以进行CURD操作。

JDBC的JdbcUtils类,例如:

package JDBC_Java_Mysql;

import java.sql.*;

/**
 * Created by dhc on 17-5-2. 
 * @author: 网络黑寡妇
 */
public class JdbcUtils{
    //获取数据库连接驱动
    private static String driver = "com.mysql.jdbc.Driver";   
    //获取数据库连接用户名
    private static String username = "root";
    //获取数据库连接密码
    private static String password = "123456";
    //获取数据库连接URL地址
    private static String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";

    static {
        try {
            //加载数据库驱动
            Class.forName(driver);
        } catch (Exception e) {
            throw new ExceptionInInitializerError(e);
        }
    }

    /**
     * @return Connection数据库连接对象
     * @Description: 获取数据库连接对象
     */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, username, password);
    }

    /**
     * @Description: 释放资源,
     * 要释放的资源包括Connection数据库连接对象,负责执行SQL命令的Statement对象,存储查询结果的ResultSet对象
     */
    public static void release(Connection conn, Statement st, ResultSet rs) {
        if (rs != null) {
            try {
                //关闭存储查询结果的ResultSet对象
                rs.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (st != null) {
            try {
                //关闭负责执行SQL命令的Statement对象
                st.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                //关闭Connection数据库连接对象
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

代码块

JdbcCRUDByStatement类利用Statement对象操作数据库(建议使用PreparedStatement对象操作),例如:

package JDBC_Java_Mysql;

import java.sql.*;

/**
 * Created by dhc on 17-5-2. 
 * @ClassName: JdbcCRUDByStatement
 * @Description: 通过Statement对象完成对数据库的CRUD操作
 * @author: 网络黑寡妇
 */
public class JdbcCRUDByStatement{
    private static Connection conn = null;
    private static Statement st = null;
    private static ResultSet rs = null;

    public void insert(String strSql) {
        try {
            //获取一个数据库连接
            conn = JdbcUtils.getConnection();
            //通过conn对象获取负责执行SQL命令的Statement对象
            st = conn.createStatement();
            //执行插入操作,executeUpdate方法返回成功的条数
            int num = st.executeUpdate(strSql);
            if (num > 0) {
                System.out.println("插入成功!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //SQL执行完成之后释放相关资源
            JdbcUtils.release(conn, st, rs);
        }
    }


    public void delete(String strSql) {
        try {
            conn = JdbcUtils.getConnection();
            st = conn.createStatement();
            int num = st.executeUpdate(strSql);
            if (num > 0) {
                System.out.println("删除成功!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(conn, st, rs);
        }
    }


    public void update(String strSql) {
        try {
            conn = JdbcUtils.getConnection();
            st = conn.createStatement();
            int num = st.executeUpdate(strSql);
            if (num > 0) {
                System.out.println("更新成功!!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(conn, st, rs);
        }
    }

    public void find(String strSql) {
        try {
            conn = JdbcUtils.getConnection();
            st = conn.createStatement();
            rs = st.executeQuery(strSql);
            while (rs.next()) {
                System.out.print(rs.getString("userid") + "        ");
                System.out.print(rs.getString("name") + "        ");
                System.out.print(rs.getString("sex") + "        ");
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(conn, st, rs);
        }
    }
}

代码块

JdbcCRUDByPreparedStatement类利用PreparedStatement对象操作数据库(建议使用),例如:

package JDBC_Java_Mysql;

import java.sql.*;

/**
 * Created by dhc on 17-5-2.
 *
 * @ClassName: JdbcCRUDByPreparedStatement
 * @Description: 通过PreparedStatement对象完成对数据库的CRUD操作
 * @author: 网络黑寡妇
 */

/**
 * SQL语句中各个字段的类型如下:
 * +----------+-------------+
 * | Field    | Type        |
 * +----------+-------------+
 * | userid   | int(11)     |
 * | name     | varchar(40) |
 * | sex      | varchar(40) |
 * | Tel      | varchar(60) |
 * +----------+-------------+
 */

public class JdbcCRUDByPreparedStatement{
    private static Connection conn = null;
    private static PreparedStatement st = null;
    private static ResultSet rs = null;

    public void insert(String strSql) {
        try {
            //获取一个数据库连接
            conn = JdbcUtils.getConnection();
            //要执行的SQL命令,SQL中的参数使用?作为占位符
            //String strSql = "insert into users(name,sex) values(?,?)";
            //通过conn对象获取负责执行SQL命令的prepareStatement对象
            st = conn.prepareStatement(strSql);
            //执行插入操作,executeUpdate方法返回成功的条数
            int num = st.executeUpdate();
            if (num > 0) {
                System.out.println("插入成功!!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //SQL执行完成之后释放相关资源
            JdbcUtils.release(conn, st, rs);
        }
    }

    public void delete(String strSql) {
        try {
            conn = JdbcUtils.getConnection();
            st = conn.prepareStatement(strSql);
            int num = st.executeUpdate();
            if (num > 0) {
                System.out.println("删除成功!!!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(conn, st, rs);
        }
    }

    public void update(String strSql) {
        try {
            conn = JdbcUtils.getConnection();
            st = conn.prepareStatement(strSql);
            int num = st.executeUpdate();
            if (num > 0) {
                System.out.println("更新成功!!");
            }
        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            JdbcUtils.release(conn, st, rs);
        }
    }

    public void find(String strSql) {
        try {
            conn = JdbcUtils.getConnection();
            st = conn.prepareStatement(strSql);
            rs = st.executeQuery();
            while (rs.next()) {
                System.out.print(rs.getString("userid") + "        ");
                System.out.print(rs.getString("name") + "        ");
                System.out.print(rs.getString("sex") + "        ");
                System.out.print(rs.getString("Tel") + "        ");
                System.out.println();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(conn, st, rs);
        }
    }
}

代码块

对Mysql数据库的CURD操作测试Code,例如:

package JDBC_Java_Mysql;

/**
 * Created by dhc on 17-5-2.
 * 测试对数据库Mysql的CRUD操作。
 * @author: 网络黑寡妇
 */
public class Jdbc_test{
    public static void main(String[] args) {
        JdbcCRUDByPreparedStatement ps = new JdbcCRUDByPreparedStatement();
        //查询操作
        String strSql = "select * from user";
        ps.find(strSql);
        //JdbcCRUDByStatement ps1=new JdbcCRUDByStatement();
        //ps1.find(strSql);

        //删除操作
        String delSql = "delete from user where userid='4' ";
        //ps.delete(delSql);

        //添加操作
        String insertSql = "insert into user values(3,'xiaohong','w',156666669)";
        //ps.insert(insertSql);

        //更新操作
        String updateSql = "update user set Tel=156666666 where userid=3";
        //ps.update(updateSql);
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值