Java JDBC操作Mysql数据库增删改查,分页查询实例详解(源码)

配置信息

public static final String USER_NAME = "root";
public static final String PWD = "123456789";
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://localhost:3306/web_demon";
/** 分页查询默认每页记录条数 */
public static final int PAGE_SIZE_DEFAULT = 10;

获取数据库连接对象

**
   * 获取数据库连接
   * @return 数据库连接对象
   */
  public Connection getConnection(Connection conn) {
    if(conn == null){
      try {
        Class.forName(Config.DRIVER);
        conn = DriverManager.getConnection(Config.URL, Config.USER_NAME, Config.PWD);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    return conn;
  }

封装增删改操作

/**
   * 新增,删除,插入操作
   * @param sql 执行的sql语句
   *      例如:新增语句 "insert into user (name,sex) values (?,?)";
   *       删除语句  "delete from user where id=?";
   *       修改语句  "update user set name=?,sex=? where id=? and sex=?";
   * @param values 对应的参数值
   * @return 影响条数,-1为异常
   */
  private int execute(String sql,Object... values){
    Connection conn = null;
    PreparedStatement pStmt = null;
    try {
      conn = this.getConnection(conn);
      pStmt = conn.prepareStatement(sql);
      //设置参数
      if(pStmt != null && values != null && values.length > 0){
        for (int i = 0; i < values.length; i++) {
          pStmt.setObject(i+1, values[i]);
        }
      }
      int i =pStmt.executeUpdate();
      return i;
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (conn != null) {
        this.closeConnection(conn);
      }
    }
    return -1;
  }

新增,删除,修改方法调用示例

//新增
public static void insert(){
    String sql = "insert into user (name,sex) values (?,?)";
    Object[] values = new Object[]{"李四",0};
    int res = baseImp.execute(sql, values);
    System.out.println("insert res="+res);
  }
//删除
public static void delete(){
    String sql = "delete from user where id=?";
    Object[] values = new Object[]{2};
    int res = baseImp.execute(sql, values);
    System.out.println("delete res="+res);
  }
//更新
public static void update(){
    String sql = "update user set name=?,sex=? where id=? and sex=?";
    Object[] values = new Object[]{"张三",1,1,0};
    int res = baseImp.execute(sql, values);
    System.out.println("update res="+res);
  }

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/4929.html

(0)
江山如画的头像江山如画管理团队
上一篇 2020年2月19日 下午7:24
下一篇 2020年2月20日 下午5:59

99%的人还看了以下文章

  • MyEclipse中JSP的页面编码-中文乱码快速解决

    MyEclipse中页面默认编码为”ISO8859-1″,如果输入了中文会显示乱码: 保存时会弹出如下图的提示对话框。 在myeclipse中如何更改jsp的默认编码 或 jsp页面代码: <%@ page language=”java” import=”java.util.*” contentType=”text/html; …

    2018年12月24日 编程开发
    8.0K0
  • 单元测试环境、过程及任务,单元测试快速入门教程二

    单元测试环境及过程 单元测试环境 单元测试环境的建立是单元测试工作进行的前提和基础,在测试过程中起到的作用不言而喻。单元测试环境并不一定是系统投入使用后所需的真实环境,可采用模拟环境。 由于一个模块或一个方法(Method)不是一个独立的程序,在测试时要考虑它和外界的联系,因此要用到一些辅助模块来模拟与所测模块相联系的其它模块。辅助模块分两种: 驱动模块:相…

    2018年4月16日
    9.3K0
  • idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法

    在servlet3.0以后,web.xml中对Servlet配置,可以通过@WebServlet注解配置.下面是@WebServlet的属性列表: 属性名 类型 描述 name String 指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 value …

    2020年8月22日 编程开发
    18.8K0
  • 上机实战六 Servlet的开发 

      建议学时:6 2学时 一、编写Servlet,FirstServlet.java 通过URL访问该Servlet,显示这是我的第一个Servlet。 二、使用servlet实现求圆的面积,在r4.jsp页面提交表单,servlet负责接收用户请求、计算并显示圆的面积。 具体页面效果如下: 三、jsp+javabean+servlet实现求三角形的面积和周…

    2018年11月13日
    11.0K0
  • python 初学者练手上机实操一

    一、从键盘输入商品名称、商品的单价、商品的数量, 计算商品总价,并按如下格式输出: 商品名称:牛奶,单价:5元,数量:2件,总价:10元 二、从键盘输入年龄,如果>=18岁显示“已成年”,否则显示“未成年”。 三、输入三条边长,如果能构成三角形就计算周长并显示,否则显示“不能构成三角形”。 四、百分制成绩转换为等级制成绩。 要求:如果输入的成绩在90分…

    2023年4月7日
    5.1K0
  • 【Java面试题】15道经典的java面试题(附答案)

    Java是一种可以跨平台的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。今天,中国网页设计给大家分享15道较为经典的Java面试题,希望对你将来在企业面试中能有所帮助! 1、面向对象的特征有哪些方面? 2、访问修饰符…

    2018年8月1日
    2.2K0

发表回复

登录后才能评论