JAVA如何连接数据库并操作增、删、改、查---JDBC了解一下

一.什么是JDBC

  • 全称:Java DataBase Connectivity
  • 概述:ava数据库连接技术(Java DataBase Connectivity),能实现Java程序对各种数据库的访问,由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中
  • JDBC访问流程
    1.Class.forName() //加载驱动
    2.DriverManager //获取Connection连接
    3.Statement //执行SQL语句
    4.返回ResultSet //查询结果
    5.释放资源

二.操作实例

注意:使用JDBC时需要导入一下mysql-connector-java-5.1.38.jar包,并且在初期学习时可以导入hamcrest-core-1.3.jar以及junit-4.12.jar可以进行单元测试

  • 加载驱动、获取Connertiion连接
	public Connection getConn() throws Exception {
        //加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://192.168.95.100:3306/kb09";//提前创建String字符串保存mysql地址
        //驱动管理器来获取连接
        Connection conn= DriverManager.getConnection(url,"root","ok");//传入数据库地址、用户名、密码
        return  conn;
    }
  • 执行SQL语句

  • 查询方法:executeQuery()

//传入需要查询的sql语句
 public ResultSet qurry(String sql) throws Exception{
        //获取连接
        Connection conn=getConn();
        //通过连接获取statement对象
        Statement stmt=conn.createStatement();
        //接收查询结果
        ResultSet resultSet=stmt.executeQuery(sql);
        return resultSet;
    }

此时可以进行单元测试ctrl+shift+t,选择要测试的方法

public void qurry() throws Exception {
		//实例化BaseDao对象
        BaseDao baseDao=new BaseDao();
        //调用showTables()方法
        ResultSet resultSet=baseDao.qurry("select * form student");
        //通过while循环输出每一行结果
        while(resultSet.next()){
        	System.out.println(resultSet.getString(1);
        }
    }

还可以将获取的数据保存在java类型中

public  void query() throws Exception {
        BaseDao dao=new BaseDao();
        String sql="select * from student where stu_id=1011";//查询student表中stu_id为1011的信息
        ResultSet resultSet=dao.qurry(sql);
        ArrayList<Student> list=new ArrayList<>();
        while(resultSet.next()){
            Student s=new Student();
            s.setStu_id(resultSet.getInt("stu_id"));//获取int型的stu_id列的数据传入student对象s中的属性
            s.setStu_name(resultSet.getString("sut_name"));
            s.setPhone(resultSet.getString("phone"));
            s.setIdentityCart(resultSet.getString("identityCard"));
            s.setGender(resultSet.getString("gender"));
            s.setEmail(resultSet.getString("email"));
            s.setAddress(resultSet.getString("address"));
            list.add(s);//将一条完成的student对象信息传入集合中
        }
        //遍历输出所有student对象信息
        for (Student student : list) {
            System.out.println(student);
        }
    }
  • 增、改方法 :executeUpdate
public int update(String sql) throws Exception{
        //获取连接
        Connection connection=getConn();
        Statement stmt= connection.createStatement();
        //执行语句并返回被影响条数
        int num=stmt.executeUpdate(sql);
        return num;
    }
  • 操作库与表的方法:execute()
 public void database(String sql)throws Exception{
        //获取连接
        Connection conn=getConn();
        Statement statement = conn.createStatement();
        statement.execute(sql);
    }
  • 关闭资源
    //根据程序设计设定需要关闭的资源对象
    public void close(Connection conn,Statement sta,ResultSet res) throws Exception {
        if (conn!=null){//判断是否为空在执行关闭,否则可能存在报错
            conn.close();//关闭方法
        }
        if (sta!=null){
            sta.close();
        }
        if (res!=null){
            res.close();
        }
        
    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值