JDBC连接常用数据库 基本的CURD

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

 JDBC连接各个数据库的className与url

JDBC连接DB2
 private String className="com.ibm.db2.jdbc.net.DB2Driver";
   private String url="jdbc:db2://localhost:8080/lwc";
JDBC连接Microsoft SQLServer(microsoft)
 private String className="com.microsoft.jdbc.sqlserver.SQLServerDriver";
 private String url="jdbc:microsoft:sqlserver://
  localhost:1433;SelectMethod=Cursor;dataBaseName=lwc";
JDBC连接Sybase(jconn2.jar)
 private String className="com.sybase.jdbc2.jdbc.SybDriver";
   private String url="jdbc:sybase:Tds:localhost:2638";
JDBC连接MySQL(mm.mysql-3.0.2-bin.jar)
   private String className="org.gjt.mm.mysql.Driver";
   private String url="jdbc:mysql://localhost:3306/lwc";
JDBC连接PostgreSQL(pgjdbc2.jar)
   private String className="org.postgresql.Driver";
   private String url="jdbc:postgresql://localhost/lwc";
JDBC连接Oracle(classes12.jar)
   private String className="oracle.jdbc.driver.OracleDriver";
   private String url="jdbc:oracle:thin:@localhost:1521:lwc";

  JDBC连接数据库案例

package com.itlwc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBConnection {
 private static Connection conn = null;
 private String user = "";
 private String password = "";
 private String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
 private String url = "jdbc:microsoft:sqlserver://"
   + "localhost:1433;SelectMethod=Cursor;dataBaseName=lwc";

 private DBConnection() {
  try {
   Class.forName(this.className);
   conn = DriverManager.getConnection(url, user, password);
   System.out.println("连接数据库成功");
  } catch (ClassNotFoundException e) {
   System.out.println("连接数据库失败");
  } catch (SQLException e) {
   System.out.println("连接数据库失败");
  }
 }

 public static Connection getConn() {
  if (conn == null) {
   conn = (Connection) new DBConnection();
  }
  return conn;
 }

 // 关闭数据库
 public static void close(ResultSet rs, Statement state, Connection conn) {
  if (rs != null) {
   try {
    rs.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   rs = null;
  }
  if (state != null) {
   try {
    state.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   state = null;
  }
  if (conn != null) {
   try {
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   conn = null;
  }
 }

 // 测试数据库连接是否成功
 public static void main(String[] args) {
  getConn();
 }
}

 基本CURD

获取数据库连接请查考JDBC连接常用数据库
private Connection conn = DBConnection.getConn();

  增加方法

使用拼sql增加
public void add1(Student student) {
 String sql = "insert into student values(" + student.getId() + ",'"
   + student.getCode() + "','" + student.getName() + "',"
   + student.getSex() + "," + student.getAge() + ")";
 PreparedStatement ps = null;
 try {
  ps = conn.prepareStatement(sql);
  ps.executeUpdate();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(null, ps, conn);
}
使用替换变量增加
public void add2(Student student) {
 String sql = "insert into student values(?,?,?,?,?)";
 PreparedStatement ps = null;
 try {
  ps = conn.prepareStatement(sql);
  ps.setString(1, student.getCode());
  ps.setString(2, student.getName());
  ps.setString(3, student.getSex());
  ps.setString(4, student.getAge());
  ps.setString(5, student.getId());
  ps.executeUpdate();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(null, ps, conn);
}

  删除方法

使用拼sql删除
public void delete1(String id) {
 String sql = "delete from student where id='" + id+"'";
 PreparedStatement ps = null;
 try {
  ps = conn.prepareStatement(sql);
  ps.executeUpdate();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(null, ps, conn);
}
使用替换变量删除
public void delete2(String id) {
 String sql = "delete from student where id=?";
 PreparedStatement ps = null;
 try {
  ps = conn.prepareStatement(sql);
  ps.setString(1, id);
  ps.executeUpdate();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(null, ps, conn);
}

 修改方法

使用拼sql修改
public void update1(Student student) {
 String sql = "update student set code='" + student.getCode()
   + "',name='" + student.getName() + "',sex=" + student.getSex()
   + ",age=" + student.getAge() + " where id=" + student.getId();
 PreparedStatement ps = null;
 try {
  ps = conn.prepareStatement(sql);
  ps.executeUpdate();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(null, ps, conn);
}
使用替换变量修改
public void update2(Student student) {
 String sql = "update student set code=?,name=?,sex=?,age=? where id=?";
 PreparedStatement ps = null;
 try {
  ps = conn.prepareStatement(sql);
  ps.setString(1, student.getCode());
  ps.setString(2, student.getName());
  ps.setString(3, student.getSex());
  ps.setString(4, student.getAge());
  ps.setString(5, student.getId());
  ps.executeUpdate();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(null, ps, conn);
}

  查询方法

查询得到一个对象
public Student findById(int id) {
 String sql = "select * from student where id=" + id;
 Student student = new Student();
 PreparedStatement ps = null;
 ResultSet rs = null;
 try {
  ps = conn.prepareStatement(sql);
  rs = ps.executeQuery();
  if (rs.next()) {
   student.setId(rs.getString(1));
   student.setCode(rs.getString(2));
   student.setName(rs.getString(3));
   student.setSex(rs.getString(4));
   student.setAge(rs.getString(5));
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(rs, ps, conn);
 return student;
}
查询得到一组数据
@SuppressWarnings("unchecked")
public List find() {
 String sql = "select * from student";
 List list = new ArrayList();
 PreparedStatement ps = null;
 ResultSet rs = null;
 try {
  ps = conn.prepareStatement(sql);
  rs = ps.executeQuery();
  while (rs.next()) {
   Student student = new Student();
   student.setId(rs.getString(1));
   student.setCode(rs.getString(2));
   student.setName(rs.getString(3));
   student.setSex(rs.getString(4));
   student.setAge(rs.getString(5));
   list.add(student);
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(rs, ps, conn);
 return list;
}


 统计数据库总条数

public int getRows() {
 int totalRows = 0;
 String sql = "select count(*) as totalRows from student";
 PreparedStatement ps = null;
 ResultSet rs = null;
 try {
  ps = conn.prepareStatement(sql);
  rs = ps.executeQuery();
  if (rs.next()) {
   totalRows = Integer.valueOf(rs.getString("totalRows"));
  }
 } catch (SQLException e) {
  e.printStackTrace();
 }
 DBConnection.close(rs, ps, conn);
 return totalRows;
}

  执行存储过程

第一种
 public String retrieveId(String tableName,String interval) throws SQLException {  
     Connection conn = DBConnection.getConn();  
     String sql = "exec p_xt_idbuilder '" + tableName + "','" + interval+ "'";  
     PreparedStatement ps = conn.prepareStatement(sql);
  ResultSet rs = ps.executeQuery();
     String maxId = "";  
     if(rs.next()){  
         maxId = rs.getString("bh");  
     }  
     DBConnection.close(rs, ps, conn);  
     return maxId;  
 }
第二种
 public String retrieveId(String tableName,String interval) throws SQLException {
  Connection conn = DBConnection.getConn();
  CallableStatement cs = conn.prepareCall("{call p_xt_idbuilder(?,?,?)}");
     cs.setString(1, tableName);
     cs.setString(2, interval);
     cs.registerOutParameter(3,java.sql.Types.VARCHAR);
     cs.executeUpdate();
     String maxId = "";
     maxId=cs.getString(3);   
  DBConnection.close(null, cs, conn);
  return maxId;
 }


   



最新内容请见作者的GitHub页:http://qaseven.github.io/

   

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
安全 Java 数据库连接
gbase8a JDBC常用特性-Kerberos认证方式连接
JDBC常用特性-Kerberos认证方式连接
|
16天前
|
Java 数据库连接 网络安全
JDBC常用特性-SSH隧道连接
JDBC常用特性-SSH隧道连接
|
1天前
|
SQL Java 数据库连接
JDBC编程安装———通过代码操控数据库
本文,教你从0开始学习JBCD,包括驱动包的下载安装调试设置,以及java是如何通过JBDC实现对数据库的操作,以及代码的分析,超级详细
|
29天前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
28天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
27天前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
28天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
1月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
41 1