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实现增删改查的功能的更多相关文章

  1. 用JDBC连接 数据库 进行简单的增删改查

    JDBC为java的基础.用jdbc实现对数据库的增删改查的功能是程序员的基本要求.本例以mysql为例,首先要使用本例需要添加mysql-connector-java-5.1.7-bin.jar包. ...

  2. java springboot整合zookeeper入门教程(增删改查)

    java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...

  3. Java 实现一个 能够 进行简单的增删改查的 超市管理系统

    1. 首先编写一个 Fruitltem 的商品类, 描述 商品的基本信息. 代码如下: 保证详细, 运行的起来, 有什么 问题也可以评论留言. /* * 自定义类, 描述商品信息 * * 商品的属性: ...

  4. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  5. JDBC【1】-- 入门之增删改查

    目录 1.jdbc是什么 2.使用IDEA开发 2.1 创建数据库,数据表 2.2 使用IDEA创建项目 1.jdbc是什么 JDBC(Java DataBase Connectivity,java数 ...

  6. JDBC+Servlet+JSP实现基本的增删改查(简易通讯录)

    前言: 最近学习JavaWeb的过程中,自己实践练手了几个小项目,目前已经上传到我的Github上https://github.com/Snailclimb/JavaWebProject.目前只上传了 ...

  7. java程序设计课期中考试——数据库的增删改查和简单的js界面

    首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...

  8. Java连接MySQL数据库,并进行增删改查

    1.具体的代码实现 import java.sql.*; public class DatabaseService { /** * Create Connection * * @param dbtyp ...

  9. java使用原生MySQL实现数据的增删改查以及数据库连接池技术

    一.工具类及配置文件准备工作 1.1 引入jar包 使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下: <dependency> <groupId> ...

随机推荐

  1. spring 注解实例

    先不说网上的那些例子了,百度到的都是一些零碎的东西.我之所以记博客,除了总结之外,很大一个原因是对网上的某些东西真的很无语. 拿注解来说,什么入门实例的东西,说是入门,却连一个基本的hello wor ...

  2. 项目笔记---WPF之Metro风格UI

    写在前面 作为新年开篇的文章,当然要选择比较“Cool”的东西来分享,这自然落到了WPF身上,WPF技术自身可塑性非常强,其强大的绘图技术以及XAML技术比WinForm而言有本质的飞跃. 切入正题, ...

  3. 转(C# 实现生产者消费者队列)

    class Program { // 任务队列 static Queue<string> _tasks = new Queue<string>(); // 为保证线程安全,使用 ...

  4. Docker之存储管理

    本文由作者邹珍珍授权网易云社区发布. 本文主要介绍Docker的存储管理.Docker拥有镜像分层,写时复制机制以及内容寻址存储等特征,为了支持这些特征,Docker设计了一套镜像元数据管理机制来管理 ...

  5. Spring 开发第一步(四)Spring与JDBC事务

    Spring使用各种不同的TransactionManager来管理各种不同数据源事务底层(比如jdbc数据源.hibernate数据源.JPA数据源等等).在此基础上使用各种对应的Template来 ...

  6. 2018-2019-2 网络对抗技术 20165219 Exp6 信息搜集与漏洞扫描

    2018-2019-2 网络对抗技术 20165219 Exp6 信息搜集与漏洞扫描 实验内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测. ...

  7. django 获取request请求对象及response响应对象中的各种属性值

    django request对象和HttpResponse对象 HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外) HttpRequest.scheme 请求方案 ...

  8. webpack快速入门——实战技巧:开发和生产并行设置

    package.json中,devDependencies和dependencies是不同的 devDependencies:开发依赖 dependencies:生产依赖(线上) 1.安装生产环境的依 ...

  9. JS获取开始、结束时间

    /** * 获取本周.本季度.本月.上月的开始日期.结束日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天 ...

  10. crop和resize操作区别

    crop:对图像进行剪切 resize:对图像进行伸缩 实践代码 import cv2 bb2d = [30, 30, 72 ,42] image = cv2.imread('car.png') pt ...