纯Java JDBC连接数据库,且用JDBC实现增删改查的功能
Java JDBC连接数据库
package cn.cqvie.yjq; import java.sql.*; /**
* 注册数据库的驱动程序,并得到数据库的连接对象
* @author yu
*
*/ public class DBUtil { static String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=book";
static String USER = "sa";
static String PASSWORD = "123"; //静态代码块,只执行一次
static {
try {
Class.forName(DriverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} //得到连接对象
public static Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(URL,USER,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} //关闭连接
public static void free(ResultSet rs,Statement stmt, Connection conn) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(stmt != null) {
try {
stmt.close();
} catch (Exception e2) {
e2.printStackTrace();
} finally {
if(conn != null) {
try {
conn.close();
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
}
}
}
/*
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
} if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
*/
}
}
使用JDBC实现增删改查的功能
package cn.cqvie.yjq; import java.sql.*;
import java.util.*; public class SQLHelper { /**
* 根据Connection,带坑语句,所有坑的值params来生成一个具体的PreparedStatement语句
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/ public static PreparedStatement getPreparedStatement(Connection conn,String cmdText,Object... params) {
if(conn == null) {
return null;
}
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(cmdText);
int i = 1;
if(params != null) {
for(Object obj:params) {
if(obj != null) {
pstmt.setObject(i, obj);
}
i ++;
}
}
//DBUtil.free(null, null, conn);
return pstmt;
} catch (SQLException e) {
e.printStackTrace();
DBUtil.free(null, pstmt, conn);
}
return null;
} /**
* 查询一个结果集
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/
public static List<Object[]> executeQuery(Connection conn,String cmdText,Object...params) {
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, params);
ResultSet rs = null;
List<Object[]> list = new ArrayList<Object[]>();
try {
rs = pstmt.executeQuery();
//从rs中获取每一个行数据的列的个数
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
//定义一个保存每一行的各个列的值的容器,Object[]
Object[] objects = null;
while(rs.next()) {
objects = new Object[columnCount];
for(int i = 0;i < columnCount;i ++) {
objects[i] = rs.getObject(i + 1);
}
list.add(objects);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.free(rs, pstmt, conn);
}
return list;
} /**
* 查询一个具体的值
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/
public static Object executeScalar(Connection conn,String cmdText,Object...params) {
Object obj = null;
if(conn == null) {
return null;
}
List<Object[]> list = executeQuery(conn, cmdText, params);
if(list != null && list.size() != 0) {
obj = list.get(0)[0];
return obj;
}
return null;
} /**
* 增删改方法
* @param conn
* @param cmdText
* @param params
* @return
* @throws SQLException
*/
public static int executeUpdate(Connection conn,String cmdText,Object...params) {
if(conn == null) {
return -2;
}
PreparedStatement pstmt = getPreparedStatement(conn, cmdText, params);
int rows = 0;
try {
rows = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.free(null, pstmt, conn);
}
return rows;
}
}
纯Java JDBC连接数据库,且用JDBC实现增删改查的功能的更多相关文章
- 用JDBC连接 数据库 进行简单的增删改查
JDBC为java的基础.用jdbc实现对数据库的增删改查的功能是程序员的基本要求.本例以mysql为例,首先要使用本例需要添加mysql-connector-java-5.1.7-bin.jar包. ...
- java springboot整合zookeeper入门教程(增删改查)
java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...
- Java 实现一个 能够 进行简单的增删改查的 超市管理系统
1. 首先编写一个 Fruitltem 的商品类, 描述 商品的基本信息. 代码如下: 保证详细, 运行的起来, 有什么 问题也可以评论留言. /* * 自定义类, 描述商品信息 * * 商品的属性: ...
- Java数据库连接--JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- JDBC【1】-- 入门之增删改查
目录 1.jdbc是什么 2.使用IDEA开发 2.1 创建数据库,数据表 2.2 使用IDEA创建项目 1.jdbc是什么 JDBC(Java DataBase Connectivity,java数 ...
- JDBC+Servlet+JSP实现基本的增删改查(简易通讯录)
前言: 最近学习JavaWeb的过程中,自己实践练手了几个小项目,目前已经上传到我的Github上https://github.com/Snailclimb/JavaWebProject.目前只上传了 ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
- Java连接MySQL数据库,并进行增删改查
1.具体的代码实现 import java.sql.*; public class DatabaseService { /** * Create Connection * * @param dbtyp ...
- java使用原生MySQL实现数据的增删改查以及数据库连接池技术
一.工具类及配置文件准备工作 1.1 引入jar包 使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下: <dependency> <groupId> ...
随机推荐
- 开源的前端web框架推荐
B-JUI前端框架:http://demo.b-jui.com/ gentelella :https://colorlib.com/polygon/gentelella/ admui(收费):http ...
- linux系统编程之进程(三):进程复制fork,孤儿进程,僵尸进程
本节目标: 复制进程映像 fork系统调用 孤儿进程.僵尸进程 写时复制 一,进程复制(或产生) 使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文.进程堆栈. ...
- linux系统编程之进程(一):进程与程序
本节目标: 什么是程序 什么是进程 进程数据结构 进程与程序区别与联系 一,什么是程序? 程序是完成特定任务的一系列指令集合 二,什么是进程? 从用户的角度来看进程是程序的一次动态执行过程 从操作系统 ...
- NLayerAppV3--DDD之领域层
回顾:NLayerAppV3是一个使用.net 2.1实现的经典DDD的分层架构的项目. NLayerAppV3是在NLayerAppV2的基础上,使用.net core2.1进行重新构建的:它包含了 ...
- List泛型集合对象排序
本文的重点主要是解决:List<T>对象集合的排序功能. 一.List<T>.Sort 方法 () MSDN对这个无参Sort()方法的介绍:使用默认比较器对整个List< ...
- matlab学习笔记---(1)
Matlab学习笔记 一. Desktop Basics (Matlab 基础知识) 当你打开Matlab的时候,matlab按照以下默认的方式展示出来. 该桌面主要包括以下几部分内容: 当前文件夹: ...
- Spring 开发第一步(三)Spring与JDBC
<spring in action 3rd>中的前面4章讲解的是Spring的核心,也就是DI/IOC和AOP .从第5章开始是Spring在企业开发中的各个方面的应用.其实作为笔者从事的 ...
- hot code loading in nodejs
Hot Code Loading in Node.js Node.js Web应用代码热更新的另类思路 Reading through Fever today, this post by Jack M ...
- express+nodemon 修改后浏览器自动刷新
添加nodemon模块 cnpm install --save nodemon 根目录添加文件 nodemon.json { "restartable": "rs&quo ...
- apache2.4配置weblogic12c集群(linux环境)
首先确定环境已装apache2.4,没装的话可以看下这篇文章apache2.4一键脚本安装(linux环境) 1.下载apache分发模块mod_wl_24.so 下载apache2.4的weblog ...