package com.zhiyuan.jdbc.util;

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

/**
* <p>Title: 数据库基本操作
* <p>Company:
* @description 数据库的连接和关闭
* @author LIANG ZHIYUAN
* @date 2016年1月9日下午4:07:33
* @version 1.0
*/
public class dbUtil {
/**
* JDBC驱动类名称
*/
private static final String JDBC_DRIVER_NAME="com.mysql.jdbc.Driver";
/**
* DB地址
*/
private static final String DB_URL="jdbc:mysql://localhost:3306/db_book?characterEncoding=utf8";
/**
* DB用户
*/
private static final String DB_USER="root";
/**
* DB密码
*/
private static final String DB_PASSWORD="123456";
/**
* Connection
*/
private static Connection conn;

/**
* <p>DB连接
* @return Connection
*/
public static Connection getConnection(){
try {
// 加载DB驱动类,并注册到DriverMANAGER
Class.forName(JDBC_DRIVER_NAME);
System.out.println("数据库驱动加载成功!");
conn=DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
System.out.println("数据库连接成功!");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return conn;
}

/**
* <p>DB连接关闭
*/
public static void closeConn(){
if (conn!=null) {
try {
conn.close();
System.out.println("数据库连接关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接关闭失败!");
}
}
}

/**
* <p>Statement关闭,DB连接关闭
* @param stmt Statement
* @param conn Connection
*/
public static void closeAll(Statement stmt,Connection conn){
if (stmt!=null) {
try {
stmt.close();
System.out.println("Statement关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Statement关闭失败!");
}
}
if (conn!=null) {
try {
conn.close();
System.out.println("数据库连接关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接关闭失败!");
}
}
}

/**
* <p>PreparedStatement关闭,DB连接关闭
* @param pstmt PreparedStatement
* @param conn Connection
*/
public static void closeAll(PreparedStatement pstmt,Connection conn){
if (pstmt!=null) {
try {
pstmt.close();
System.out.println("PreparedStatement关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("PreparedStatement关闭失败!");
}
}
if (conn!=null) {
try {
conn.close();
System.out.println("数据库连接关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接关闭失败!");
}
}
}

/**
* <p>ResultSet关闭,PreparedStatement关闭,DB连接关闭
* @param rs ResultSet
* @param pstmt PreparedStatement
* @param conn Connection
*/
public static void closeAll(ResultSet rs,PreparedStatement pstmt,Connection conn){
if (rs!=null) {
try {
rs.close();
System.out.println("ResultSet关闭成功!");
} catch (SQLException e) {
System.out.println("ResultSet关闭失败!");
e.printStackTrace();
}
}
if (pstmt!=null) {
try {
pstmt.close();
System.out.println("PreparedStatement关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("PreparedStatement关闭失败!");
}
}
if (conn!=null) {
try {
conn.close();
System.out.println("数据库连接关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接关闭失败!");
}
}
}

/**
* <p>Statement关闭,DB连接关闭
* @param stmt Statement
*/
public static void closeAll(Statement stmt){
if (stmt!=null) {
try {
stmt.close();
System.out.println("Statement关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Statement关闭失败!");
}
}
closeConn();
}

/**
* <p>PreparedStatement关闭,DB连接关闭
* @param pstmt PreparedStatement
*/
public static void closeAll(PreparedStatement pstmt){
if (pstmt!=null) {
try {
pstmt.close();
System.out.println("PreparedStatement关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("PreparedStatement关闭失败!");
}
}
closeConn();
}

/**
* <p>ResultSet关闭,PreparedStatement关闭,DB连接关闭
* @param rs ResultSet
* @param pstmt PreparedStatement
*/
public static void closeAll(ResultSet rs,PreparedStatement pstmt){
if (pstmt!=null) {
try {
pstmt.close();
System.out.println("PreparedStatement关闭成功!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("PreparedStatement关闭失败!");
}
}
closeConn();
}
}

package com.zhiyuan.jdbc.demo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.zhiyuan.jdbc.model.PriceLevel;
import com.zhiyuan.jdbc.util.dbUtil;

/**
* <p>Title: DB演示DEMO
* <p>Company:
* @description DB操作演示
* @author LIANG ZHIYUAN
* @date 2016年1月10日上午12:15:05
* @version 1.4
*/
public class Demo5 {

/**
* <p>DB插入操作
* @param prl PriceLevel数据模型对象
* @return 操作的行数
* @throws SQLException
*/
public static int dbInsert(PriceLevel prl) throws SQLException{
// 获取数据库连接
Connection conn=dbUtil.getConnection();
// 数据库操作的SQL数据
String sql="insert into t_pricelevel values(?,?,?,?);";
// 结果
int result=0;
PreparedStatement pstmt=null;
// 获取PreparedStatement
pstmt=conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, prl.getId());
pstmt.setInt(2, prl.getPriceLevel());
pstmt.setFloat(3, prl.getPrice());
pstmt.setString(4, prl.getDescription());
result=pstmt.executeUpdate();
// 全部关闭
dbUtil.closeAll(pstmt, conn);
return result;
}

/**
* <p>DB更新操作
* @param prl PriceLevel数据模型对象
* @return 操作的行数
* @throws SQLException
*/
public static int dbUpdate(PriceLevel prl) throws SQLException{
// 获取数据库连接
Connection conn=dbUtil.getConnection();
// 数据库操作的SQL数据
String sql="update t_pricelevel set priceLevel=?,price=?,description=? where id=?";
// 结果
int result=0;
PreparedStatement pstmt=null;
// 获取PreparedStatement
pstmt=conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, prl.getPriceLevel());
pstmt.setFloat(2, prl.getPrice());
pstmt.setString(3, prl.getDescription());
pstmt.setInt(4, prl.getId());
result=pstmt.executeUpdate();
// 全部关闭
dbUtil.closeAll(pstmt, conn);
return result;
}

/**
* <p>DB删除操作
* @param id 图书价格等价ID
* @return 操作的行数
* @throws SQLException
*/
public static int dbDelete(int id) throws SQLException{
// 获取数据库连接
Connection conn=dbUtil.getConnection();
// 数据库操作的SQL数据
String sql="delete from t_pricelevel where id=?";
// 结果
int result=0;
PreparedStatement pstmt=null;
// 获取PreparedStatement
pstmt=conn.prepareStatement(sql);
// 设置参数
pstmt.setInt(1, id);
result=pstmt.executeUpdate();
// 全部关闭
dbUtil.closeAll(pstmt);
return result;
}

/**
* <p>DB查询操作
* @return PriceLevel元素的List
* @throws SQLException
*/
public static List<PriceLevel> dbSelect() throws SQLException{
List<PriceLevel> prlList=new ArrayList<>();
// 获取数据库连接
Connection conn=dbUtil.getConnection();
// 数据库操作的SQL数据
String sql="select * from t_pricelevel";
PreparedStatement pstmt=null;
// 获取PreparedStatement
pstmt=conn.prepareStatement(sql);
// 获取ResultSet
ResultSet rs=pstmt.executeQuery();
// 遍历结果集
while(rs.next()){
int id=rs.getInt("id");
int priceLevel=rs.getInt("priceLevel");
float price=rs.getFloat("price");
String description=rs.getString("description");
PriceLevel prl=new PriceLevel(id, priceLevel, price, description);
// 向列表添加元素
prlList.add(prl);
}
// 全部关闭
dbUtil.closeAll(rs,pstmt, conn);
return prlList;
}

/**
* <p>主方法(程序入口)
* @param args 命令行参数
* @throws SQLException
*/
public static void main(String[] args) throws SQLException{
List<PriceLevel> prlList=dbSelect();
for (PriceLevel priceLevel : prlList) {
System.out.println(priceLevel.toString());
}

}

}

JDBC连接数据库以及简单的操作的更多相关文章

  1. 【Mybatis源码解析】- JDBC连接数据库的原理和操作

    JDBC连接数据库的原理和操作 JDBC即Java DataBase Connectivity,java数据库连接:JDBC 提供的API可以让JAVA通过API方式访问关系型数据库,执行SQL语句, ...

  2. JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...

  3. JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...

  4. Eclipse通过jdbc连接数据库制作简单登陆界面

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...

  5. 🈲Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】

    一.前言: 做网站开发,要求有多种搭配方式,前台技术可以使用PHP.ASP.JSP.ASP.NET.CGI等任何一种: 需要用到的基础语言用的最多的就是HTML/CSS.JS.JAVA.XML这些了, ...

  6. jdbc连接数据库以及简单实现(普通JDBC方法实现和连接池方式实现)

    @ 目录 总结内容 1. 基本概念 jdbc的概念 2. 数据库连接 数据库的连接 DAO层思想 重构设计 3. 事务 概念 事务的ACID属性 事务的操作 4. 连接池 为什么要使用连接池 连接池分 ...

  7. JDBC连接数据库的简单介绍

    休息10天后重新看了下jdbc,开始振作继续学习(休息10天主要是因为驾照考试太累,2333),希望自己能够调整好心态,继续对程序有着一如既往的喜爱(加油) Connection con=null; ...

  8. 用jdbc连接数据库并简单执行SQL语句

    一:版本一.这种存在一个问题就是每执行一次操作都会创建一次Connection链接和且释放一次链接 1:创建pojo对象(OR映射,一个pojo类对应一张数据库表)   package com.yin ...

  9. 基础的jdbc连接数据库操作

    首先我们知道在数据库中,我们可以直接写sql或者直接通过数据库工具操作数据,但是在java程序中我们是不能直接操作数据库数据的,所以这就引入了jdbc操作. 百度百科:JDBC(Java Data B ...

随机推荐

  1. PostConstruct注解

    应用场景:当你需要往Bean里注入一个其父类中定义的属性,而你又无法复写父类的属性或属性的setter方法时 public class UserDaoImpl extends HibernateDao ...

  2. ViewPager和View组合 实现页面的切换

    //--------------主页面------------------------------- package com.bw.test; import java.util.ArrayList;i ...

  3. HTTP的学习

    一个完整的HTTP请求: 1 简历TCP连接 2 web浏览器像web服务器发送请求命令 3 web浏览器发送请求头信息 4 web服务器应答 5 web服务器发送应答头信息 6 web服务器像浏览器 ...

  4. Django -- Views and URLconf

    1 创建工程 django-admin startproject mysite && cd mysite 2 创建应用 python manage.py startapp blog 3 ...

  5. ZOJ 2866 Overstaffed Company

    树状数组 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...

  6. memcached添加IP白名单,只允许指定服务器调用

    由于memcached默认安装是不用配置密码的(具体的密码配置我也没怎么研究,据说是有的,大家感兴趣去找一找) 然而memcached链接也是非常简单的 linux命令链接使用  Telnet IP地 ...

  7. OSPF的基本配置及DR /BDR选举的实验

    OSPF的基本配置及DR /BDR选举的实验 实验拓扑: 实验目的:掌握OSPF的基本配置 掌握手工指定RID 掌握如何修改OSPF的接口优先级 观察DR BDR选举的过程 实验要求:R3当选为DR ...

  8. Android 下得到 未安装APK包含信息 等

    很多情况下,我们需要通过APK文件来得到它的一些信息. (此时此APK不一定被安装了) 0. 基础知识:可以通过android.content.Context的方法 getPackageManager ...

  9. C# 经典入门12章-System.Collections.Generic命名空间

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtUAAAAsCAIAAAAl09PEAAAgAElEQVR4nOx95Vscyd7285cMPrg7Aw ...

  10. maven编码 gbk 的不可映射字符解决办法

    出现这个问题修改一下pom文件的编译配置就好了. <plugin> <groupId>org.apache.maven.plugins</groupId> < ...