JDBC流程:
1、注册驱动
2、获取数据库连接对象
3、获取SQL语句的执行者对象
4、执行SQL语句
DML(增删改):executeUpdate
DQL(查询):executeQuery
5、处理结果集
next():该方法判断是否还有元素
有返回true
没有返回false
while(resultSet.next){
}
getXxx:
1、根据列的编号获取 getString(1)
2、根据列名获取getString(“name”)
6、关闭流释放资源

数据的查询

样例代码:


import java.sql.*;

public class jdbc {
    public static void main(String[] args) throws Exception{
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //获取数据库连接对象
        //如果连接是本机,并且端口号是默认的3306,则可直接写成jdbc:mysql:///jdbc
        Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC","root","toor");
        //获取SQL语句的执行对象
        PreparedStatement pstmt = conn.prepareStatement("select * from tb_user");
        //执行SQL语句
        ResultSet resultSet = pstmt.executeQuery();
        //处理结果集
        while(resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            String sex = resultSet.getString("sex");
            String email = resultSet.getString("email");
            Date date = resultSet.getDate("birthday");

            System.out.println(id+"  "+name+"  "+sex+"  "+email+"  "+date);

        }
        conn.close();
        pstmt.close();
        resultSet.close();
    }
}

执行效果:

当然有这个效果的前提是你需要先配好数据库,并且往数据库里面插入数据。

数据的增删改查

这里主要进行改变的是SQL的数据库语句,而代码则只需要处理语句的执行和响应结果

样例代码:


import java.sql.*;

public class jdbc {
    public static void main(String[] args) throws Exception{
        //注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //获取数据库连接对象
        //如果连接是本机,并且端口号是默认的3306,则可直接写成jdbc:mysql:///jdbc
        Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC","root","toor");
        //获取SQL语句的执行对象
        PreparedStatement pstmt = conn.prepareStatement("UPDATE tb_user set name='xiaoming' where id=?");
        //问号?占位是为了保证安全性,给占位符进行填充数据
        pstmt.setObject(1,"1");//如果未写,会引发异常
        //执行SQL语句
        int count = pstmt.executeUpdate();

        //处理结果集
        System.out.println(count+"行收到了影响");//返回受影响行数
        conn.close();
        pstmt.close();
    }
}

执行结果:

 

 

说点什么
头像
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...