使用JDBC连接数据库演示

使用JDBC方式连接数据库

前期准备

使用工具 :IDEA mysql 
所需的jar包:mysql-connecter

步骤

1.加载mysql驱动
2.使用驱动管理器获取Connection连接
3.使用连接创建sql语句管理器PreparedStatement
4.执行相关语句
	如果是查询语句,返回一个结果集
	如果是增删改语句,会返回改变的行数
5.释放相关资源

相关代码如下

package _0602.dao;

import java.sql.*;

/**
 * @author sunyong
 * @date 2020/06/02
 * @description
 *该类本质是大家的公用dao,相当于一个基类,其他具体的dao类可继承该类
 */
public class BaseDao {
    public static Connection conn;//定义连接
    private static PreparedStatement pstm;//定义语句管理器
    public static ResultSet rs;//定义结果集
    //获取连接
    public static void getConnection(String driver,String url,String usr,String pwd) throws Exception{
        //1)加载驱动
        Class.forName(driver);
        //2)使用驱动管理器生成连接
        conn= DriverManager.getConnection(url,usr,pwd);
    }
    //查询
    public static ResultSet query(String sql,Object...params) throws SQLException {
        //3)获取语句管理器
        pstm=conn.prepareStatement(sql);
        //设置语句中的相关参数
        for (int i = 0; i < params.length; i++) {
            pstm.setObject(i+1,params[i]);
        }
        //4.1)执行查询语句,返回结果集
        rs=pstm.executeQuery();
        return rs;
    }
    //增删改语句
    public static int update(String sql,Object...params) throws SQLException {
        //3)获取语句管理器
        pstm=conn.prepareStatement(sql);
        //设置语句中的相关参数
        for (int i = 0; i < params.length; i++) {
            pstm.setObject(i+1,params[i]);
        }
        //4.2)执行增删改句,返回改变的行数
        return pstm.executeUpdate();
    }
    //5)释放相关资源
    public static void close() throws SQLException {
        //注意:后开的先关
        if(rs!=null){
            rs.close();
        }
        if (pstm!=null){
            pstm.close();
        }
        if(conn!=null){
            conn.close();
        }
    }
    //为方便就在本类中测试
    public static void main(String[] args) {
        try {
            //获取连接
            getConnection("com.mysql.jdbc.Driver","jdbc:mysql://192.168.56.101:3306/kgcnews","kb07","ok");
            //执行的sql查询语句
            String sql1 ="select * from news_user";
            //执行的sql删除语句
            String sql2="delete from news_user where id=9";
            //获取查询的结果集
            rs =query(sql1);
            //遍历结果集
            while(rs.next()){
                int id=rs.getInt("id");
                String userName=rs.getString("userName");
                //打印id和名字
                System.out.println(id+"\t"+userName);
            }
            //获取删除改变的行数
            int delRow = update(sql2);
            //打印是否删除
            System.out.println(delRow>0?"删除成功":"删除失败");
            //关闭资源
            close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


未执行语句前的mysql数据库中的表:
未执行前

执行语句后控制台:
在这里插入图片描述
执行语句后mysql数据库中的表:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sun_0128/article/details/106793078