JDBC

1.获取插入主键

public int register(String username, String password, String email) throws Exception {
    Connection connection = DbUtil.getCon();
    String sql="insert into  user (username,password,email) values (?,?,?) ";
    PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
    ps.setString(1, username);
    ps.setString(2, password);
    ps.setString(3, email);

    ps.executeUpdate();
    ResultSet rs = ps.getGeneratedKeys();
    //返回的结果集中包含主键,注意:主键还可以是UUID,
    //复合主键等,所以这里不是直接返回一个整型
    int uid = -1;
    if(rs.next()){
        uid = rs.getInt(1);
    }
    return uid;

}

2. 批量插入

try {
    connection = dbUtil.getCon();
    String sql = " select * from user where uid = ? ";
    ps = connection.prepareStatement(sql);
    for(int i = 0; i < uidList.size(); i++ ){
        ps.setInt(1,uidList.get(i));
        ResultSet resultSet = ps.executeQuery();
        //Before start of result set
        //ResultSet对象代表SQL语句执行的结果集,维护指向其当前数据行的光标。每调用一次next()方法,光标向下移动一行。
        // 最初它位于第一行之前,因此第一次调用next()应把光标置于第一行上,使它成为当前行。随着每次调用next()将导致光标向下移动一行。
        // 在ResultSe对象及其t父辈Statement对象关闭之前,光标一直保持有效。
        if(resultSet.next()){
            int uid = resultSet.getInt("uid");
            String userName = resultSet.getString("username");
            String password = resultSet.getString("password");
            String email = resultSet.getString("email");

            User u = new User();
            u.setUid(uid);
            u.setUserName(userName);
            u.setPassWord(password);
            u.setEmail(email);
            list.add(u);
        }

    }

} catch ( Exception e ){
    e.printStackTrace();
}

3.resultset 获取日期

  • 使用getDate来获取,则是只有日期没有时间的
  • 使用getTimestamp来获取时分秒
Date date = resultSet.getTimestamp("date");//getDate()只能年月日
posted @   lwx_R  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示