博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2、JDBC-CURD
阅读量:4603 次
发布时间:2019-06-09

本文共 3881 字,大约阅读时间需要 12 分钟。

添加,修改,删除

package test.jdbc;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import java.io.InputStream;import java.sql.*;import java.util.Properties;public class CURDTest {    private Connection conn;    private Statement statement;    private ResultSet result;    @BeforeEach    public void start() throws Exception {        Properties properties = new Properties();        InputStream in = this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");        properties.load(in);        String driver = properties.getProperty("driver");        String jdbcUrl = properties.getProperty("jdbcUrl");        String user = properties.getProperty("user");        String password = properties.getProperty("password");        Class.forName(driver);        conn = DriverManager.getConnection(jdbcUrl, user, password);    }    @AfterEach    public void end() throws Exception {        if (result != null) {            result.close();        }        if (statement != null) {            statement.close();        }        if (conn != null) {            conn.close();        }    }    /**     * 通过 JDBC 向指定的数据表中插入一条记录     *      * Statement: 用于执行 SQL 语句的对象     * SQL 可以是 INSERT、UPDATE、DELETE. 不能为 SELECT     * Connection、Statement 都是应用程序和数据库服务器的连接资源. 使用后要关闭     */    @Test    public void testStatement() throws Exception {        try {            statement = conn.createStatement();            // SQL 语句            statement.executeUpdate("INSERT INTO user (name, age) VALUES('SWT', 22)");            // SQL 占位符            PreparedStatement preparedStatement = conn.prepareStatement("INSERT INTO user (name, age) VALUES(?, ?)");            preparedStatement.setObject(1,"WC");            preparedStatement.setObject(2,23);            preparedStatement.executeUpdate();        } catch (Exception e) {            e.printStackTrace();        }    }}

添加数据时返回主键

@Testpublic void testGetKeyValue() {    try {        String sql = "INSERT INTO user (name, age) VALUES(?, ?)";        // 使用重载的 prepareStatement(sql, flag)         PreparedStatement preparedStatement = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);        preparedStatement.setObject(1, "ABCDE");        preparedStatement.setObject(2, 22);        preparedStatement.execute();        // 通过 getGeneratedKeys() 获取包含了新生成的主键的 ResultSet 对象        // 在 ResultSet 中只有一列 GENERATED_KEY, 用于存放新生成的主键值        ResultSet rs = preparedStatement.getGeneratedKeys();        if(rs.next()){            System.out.println(rs.getInt("GENERATED_KEY"));        }    } catch (Exception e) {        e.printStackTrace();    }}

查询

/** * ResultSet: 结果集. 封装了使用 JDBC 进行查询的结果 * 调用 Statement 对象的 executeQuery(sql) 可以得到 ResultSet 结果集 * 调用 ResultSet 的 next() 方法检测下一行是否有效. 若有效该方法返回 true, 且指针下移 * 当指针对位到一行时, 可以通过调用 getXxx(index) 或 getXxx(columnName) 得到数据 */@Testpublic void testResultSet() {    try {        // 获取 Statement        statement = conn.createStatement();        // SQL        String sql = "SELECT * FROM user";        // 执行查询, 得到 ResultSet        result = statement.executeQuery(sql);        // 处理 ResultSet        while (result.next()) {            int id = result.getInt(1);            String name = result.getString("name");            int age = result.getInt(3);            System.out.println(id + "\t" + name + "\t" + age);        }        PreparedStatement preparedStatement = conn.prepareStatement("SELECT * FROM user where id = ?");        preparedStatement.setObject(1,1);        result = preparedStatement.executeQuery();        while (result.next()) {            int id = result.getInt(1);            String name = result.getString("name");            int age = result.getInt(3);            System.out.println(id + "\t" + name + "\t" + age);        }    } catch (Exception e) {        e.printStackTrace();    }}

 


 

转载于:https://www.cnblogs.com/jhxxb/p/10437384.html

你可能感兴趣的文章
集合以及特殊集合
查看>>
USACO 2.2 Runaround Numbers
查看>>
Matlab画图-非常具体,非常全面
查看>>
365. Water and Jug Problem
查看>>
SQL数据库数据检索top和distinct
查看>>
平衡搜索树--红黑树 RBTree
查看>>
sqlite驱动下载
查看>>
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
队列实现霍夫曼树
查看>>
【Java】图片高质量缩放类
查看>>
详解定位与定位应用
查看>>
【前端开发】 5分钟创建 Mock Server
查看>>
java 从键盘录入的三种方法
查看>>
使用jQuery和YQL,以Ajax方式加载外部内容
查看>>
pyspider 示例
查看>>
电路板工艺中的NPTH和PTH
查看>>
JNI实现JAVA和C++互相调用
查看>>
JAVA 笔记(一)
查看>>
js 循环读取 json的值
查看>>
c# 范型Dictionary实用例子
查看>>