JDBC连接mysql数据库实现基本操作

JDBC连接mysql数据库实现基本操作

JDBC(java DATABASE Connectivity) java 数据连接

通过Java代码完成对数据库的增删改查
    DB是SQL语言 结构化查询语言
    java代码想要操作DB数据库先引入一个jar文件
    mysql连接数据库的驱动jar包.
    Oracle连接数据库的驱动jar包
连接步骤:
    1.加载驱动 Class.forName(“com.mysql.jdbc.Driver”);
    2.获取连接数据库的对象(url=”jdbc:mysql://ip:3306/数据库名称”)
    Connection conn=DriverManager.getConnection(url,user,password);
    3.执行SQL语句 st.executeUpdate(sql); 返回int,表示影响了几行

JDBC连接mysql数据库实现基本操作_第1张图片

摘自: https://blog.csdn.net/zhangjikuan/article/details/76177434
    ResultSet接口:
        ResultSet接口是查询结果集接口,它对返回的结果集进行处理。ResultSet是程序员进行JDBC操作的必须接口。
    Statement
        发送完整的sql语句到数据库不是直接执行,而是先编译、后运行。
    preparedStatement
    预处理,statement子类,后期常使用这个而不使用Statement类
    ? 占位符,sql语句中查询传值


如下是父类的一个数据库的写法,连接数据库后对数据库实现只需要继承BaseDao即可:


对数据库ban32表中的部门表的操作
JDBC连接mysql数据库实现基本操作_第2张图片
父类BaseDao:

public class BaseDao {
    public String url = "jdbc:mysql://localhost:3306/restrant";
    public String user = "root";
    public String password="199617";
    public String sql="";
    public Connection conn=null;
    public PreparedStatement ps=null;
    public ResultSet rs=null;
    public int rows = 0;
    /**
     * 建立连接
     */
    public Connection getCon() {

        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            conn = DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    /**
     * 实现增删改
     */
    public boolean edit(String sql, Object...objects) {
        try {
            getCon();           
            ps=conn.prepareStatement(sql);

            for(int i = 0; i1, objects[i]);
            }

            rows = ps.executeUpdate();
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }

        return rows>0;
    }
    /**
     * 关闭资源
     */
    public void closeAll(){
        try {
            if(rs!=null) {
                rs.close();
            }
        } catch (SQLException e1) {
            e1.printStackTrace();
        }
        try {
            if(ps!=null) {
                ps.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if(conn!=null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
子类DeptDao继承父类:
public class DeptDao extends BaseDao{
    //增加部门
    @Test
    public void dome() {
        System.out.println(update("不是部","研发部"));
    }
    public boolean add(String buMen) {
        sql = "insert into 部门(部门名称) values(?)";
        return edit(sql,buMen);
    }

    //删除部门
    public boolean delete(int id) {
        sql = "delete from 部门  where 部门号=?";
        return edit(sql,id);
    }

    //修改部门
    public boolean update(String oldBuMen,String newBuMen) {
        sql = "update 部门  set 部门名称=? where 部门名称=?";
        return edit(sql,newBuMen,oldBuMen);
    }

    //查询
    public boolean enquiry(String buMen) {
        try {
            conn = getCon();
            sql = "select * from 部门  where 部门名称 =?";
            ps=conn.prepareStatement(sql);
            ps.setString(1, buMen);
            rs = ps.executeQuery();
            while(rs.next()) {
//              System.out.print(rs.getInt("部门号")+"\t");
//              System.out.println(rs.getString("部门名称"));
            }
            return true;
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            closeAll();
        }
        return false;
    }
}

你可能感兴趣的:(JDBC连接mysql数据库实现基本操作)