浅析JDBC操作数据库

来源:互联网 发布:中国频道域名管理 编辑:程序博客网 时间:2024/05/18 22:40

一、JDBC完成DDL操作

创建表t_student

@Test    public void testName() throws Exception {        String url = "jdbc:mysql://localhost:3306/abc";        // 1、加载注册驱动        Class.forName("com.mysql.jdbc.Driver");        // 2、获取连接        Connection conn = DriverManager.getConnection(url, "root", "admin");        // 3、创建语句对象(用于执行静态SQL语句)        Statement st = conn.createStatement();        // 4、执行sql语句        // 执行DDL和DML语句用 executeUpdate(String sql)方法        // 执行DQL用 executeQuery(String sql)方法        String sql = "CREATE TABLE t_student (id BIGINT PRIMARY KEY AUTO_INCREMENT ,`name` VARCHAR(20) , age INT)";        st.executeUpdate(sql);        //5、释放资源(遵循先开后关原则)        st.close();        conn.close();    }

其中第二步格式为:
connection conn = DriverManager.getConnection(“url” , “user” ,”password”);
url:表示访问数据库的地址 。 jdbc:mysql://localhost:3306/数据库名
如果url在本机,可以简写为 jdbc:mysql:///数据库名
user:表示访问数据库的账号
passwoord:表示访问数据库的密码

代码需要加入异常处理,可以优化为:

@Test    public void testCreateTable() throws Exception {        String url = "jdbc:mysql:///abc";        String sql = "CREATE TABLE t_student(id BIGINT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(20),age INT)";        Class.forName("com.mysql.jdbc.Driver");        try (            Connection conn = DriverManager.getConnection(url,"root","admin");            Statement st = conn.createStatement();        ){            st.executeUpdate(sql);        } catch (Exception e) {            e.printStackTrace();        }        }

二、JDBC完成DML操作

向t_student表中插入一条数据:

@Test    public void testInsert() throws Exception {        String url = "jdbc:mysql:///abc";        String sql = "INSERT INTO t_student(name,age)VALUES('东方姑娘',18)";        //1、加载注册驱动        Class.forName("com.mysql.jdbc.Driver");        //2、获取连接        Connection conn = DriverManager.getConnection(url,"root","admin");        //3、创建语句对象        Statement tr = conn.createStatement();        //4、执行sql语句        tr.executeUpdate(sql);        //5、释放资源        tr.close();        conn.close();

三、JDBC完成DQL查询操作

查询id为2的学生的信息:

@Test    public void testSelectID() throws Exception {        String url = "jdbc:mysql:///abc";        String sql = "SELECT * FROM t_student WHERE id = 2";        // 加载注册驱动        Class.forName("com.mysql.jdbc.Driver");        // 获取连接        Connection conn = DriverManager.getConnection(url, "root", "admin");        // 创建语句对象        Statement st = conn.createStatement();        // 执行sql语句        ResultSet rs = st.executeQuery(sql);        if (rs.next()) {            long id = rs.getLong("id");            String name = rs.getString("name");            int age = rs.getInt("age");            System.out.println(id + "," + name + "," + age);        }        //释放资源        rs.close();        st.close();        conn.close();    }

查询所有人信息:

@Test    public void testAll() throws Exception {        String url = "jdbc:mysql:///abc";        String sql = "SELECT * FROM t_student";        // 加载注册驱动        Class.forName("com.mysql.jdbc.Driver");        // 获取连接        Connection conn = DriverManager.getConnection(url, "root", "admin");        // 创建语句对象        Statement st = conn.createStatement();        // 执行sql语句        ResultSet rs = st.executeQuery(sql);        while (rs.next()) {            long id = rs.getLong("id");            String name = rs.getString("name");            int age = rs.getInt("age");            System.out.println(id + "," + name + "," + age);        }        // 关闭资源        rs.close();        st.close();        conn.close();    }
0 0
原创粉丝点击