public class Student
{
  private Integer studId;
  private String name;
  private String email;
  private Date dob;
  // setters and getters
}

public Student findStudentById(int studId)
{
  Student student = null;
  Connection conn = null;
  try{
    //obtain connection
    conn = getDatabaseConnection();
    String sql = "SELECT * FROM STUDENTS WHERE STUD_ID=?";
    //create PreparedStatement
    PreparedStatement pstmt = conn.prepareStatement(sql);
    //set input parameters
    pstmt.setInt(1, studId);
    ResultSet rs = pstmt.executeQuery();
    //fetch results from database and populate into Java objects
    if(rs.next()) {
      student = new Student();
      student.setStudId(rs.getInt("stud_id"));
      student.setName(rs.getString("name"));
      student.setEmail(rs.getString("email"));
      student.setDob(rs.getDate("dob"));
    }
  } catch (SQLException e){
    throw new RuntimeException(e);
  }finally{
    //close connection
    if(conn!= null){
      try {
        conn.close();
      } catch (SQLException e){ }
    }
  }
  return student;
}

public void createStudent(Student student)
{
  Connection conn = null;
  try{
    //obtain connection
    conn = getDatabaseConnection();
    String sql = "INSERT INTO STUDENTS(STUD_ID,NAME,EMAIL,DOB)
    VALUES(?,?,?,?)";
    //create a PreparedStatement
    PreparedStatement pstmt = conn.prepareStatement(sql);
    //set input parameters
    pstmt.setInt(1, student.getStudId());
    pstmt.setString(2, student.getName());
    pstmt.setString(3, student.getEmail());
    pstmt.setDate(4, new
    java.sql.Date(student.getDob().getTime()));
    pstmt.executeUpdate();
  } catch (SQLException e){
    throw new RuntimeException(e);
  }finally{
    //close connection
    if(conn!= null){
    try {
      conn.close();
      } catch (SQLException e){ }
    }
  }
}

protected Connection getDatabaseConnection() throws SQLException
{
  try{
    Class.forName("com.mysql.jdbc.Driver");
    return DriverManager.getConnection
    ("jdbc:mysql://localhost:3306/test", "root", "admin");
  } catch (SQLException e){
    throw e;
  } catch (Exception e){
    throw new RuntimeException(e);
  }
}

JDBC Boilerplate的更多相关文章

  1. HTML5 Boilerplate - 让页面有个好的开始

    最近看到了HTML5 Boilerplate模版,系统的学习与了解了一下.在各种CSS库.JS框架层出不穷的今天,能看到这么好的HTML模版,感觉甚爽.写篇博客,推荐给大家使用.   一:HTML5 ...

  2. Asp.net Boilerplate源码中NotNullAttribute的用处

    看Asp.net Boilerplate 1.1.3.0源码时发现有一个NotNullAttribute的定义和27处的引用,就是不知道它的作用,当然顾名思义是可以的,就是不知道它是怎么判断的,在哪里 ...

  3. Java数据库连接技术——JDBC

    大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...

  4. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  5. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率

    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢?在JDBC编程接口中Statement 有两个方法特别值得注意:通过使用addBatch( ...

  6. JDBC MySQL 多表关联查询查询

    public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...

  7. JDBC增加删除修改

    一.配置程序--让我们程序能找到数据库的驱动jar包 1.把.jar文件复制到项目中去,整合的时候方便. 2.在eclipse项目右击"构建路径"--"配置构建路径&qu ...

  8. JDBC简介

    jdbc连接数据库的四个对象 DriverManager  驱动类   DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 ...

  9. JDBC Tutorials: Commit or Rollback transaction in finally block

    http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...

随机推荐

  1. C# 开源压缩组件比较

    SevenZipSharp check()为检查压缩包,有BUG,360创建的zip压缩包有无密码,密码错对都返回true DotNetZip 提供的函数比较人性化,缺点是只支持zip SharpCo ...

  2. C# 科学计数法转换成数字

    /// <summary> /// 判断输入的数是否是科学计数法.如果是的话,就会将其换算成整数并且返回,否则就返回false. /// </summary> /// < ...

  3. Git学习(四)——分支管理

    一.创建与合并分支 1.创建分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点.每次提交 ,mast ...

  4. Android View的onTouchEvent和OnTouch区别

    还是以自定义的TestButton为例. 我们可以通过重写onTouchEvent方法来处理诸如down move up的消息: public class TestButton extends But ...

  5. Codeforces 740C. Alyona and mex 思路模拟

    C. Alyona and mex time limit per test: 2 seconds memory limit per test: 256 megabytes input: standar ...

  6. C# 用POST提交json数据

    public void GetResponse(string url, string json) { Encoding encoding = Encoding.UTF8; byte[] data = ...

  7. opencv 处女作

    显示一幅图:主要是运用功能:imread namedWindow imshowimread:从字面意思我们就可以看懂,用来读取图片的:namedWindow:显然,我们也可以看到这是用来命名窗口名称的 ...

  8. (转)linux下cp目录时排除一个或者多个目录的实现方法

    原文链接:http://www.jb51.net/LINUXjishu/88971.html 说明:/home目录里面有data目录,data目录里面有a.b.c.d.e五个目录,现在要把data目录 ...

  9. setAutoCommmit保持数据的完整性

    setAutoCommit总的来说就是保持数据的完整性,一个系统的更新操作可能要涉及多张表,需多个SQL语句进行操作 循环里连续的进行插入操作,如果你在开始时设置了:conn.setAutoCommi ...

  10. BOOTSTRAP定制

    1.补充:栅格系统中调整列的位置/顺序 (1)方法1:偏移量(col-*-offset-*) (2)方法2:对列进行push/pull操作 col-lg-pull-1        ~         ...