JDBC连接数据库以及简单的操作
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());
}
}
}
最新文章
- [APUE]UNIX进程的环境(上)
- jq 个性的隔行变色
- Android:Activity生命周期
- MySQL临时表创建
- Android之ImageSwitcher
- 几个CSS3动画
- php分页类代码带分页样式效果(转)
- which,whereis, locate, find
- ZOJ 3367 Counterfeit Money(最大相同子矩阵)
- 关于Apache Struts 2 S2-032高危漏洞的一些确认
- HDU 5639 Deletion 二分+网络流
- Oracle Split 函数
- dedecms模板中使用php代码
- scrollify - 滚动条方式的全屏滚动
- spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析
- day20 python常用模块
- 054 kafka内部机制
- node.js如何将远程的文件下载到本地、解压、读取
- Liferay7 BPM门户开发之1:Liferay7开发环境准备
- 兼容ios和Android的复制js代码
热门文章
- Firebase 相关
- 在WIN7/8下把XP装入VHD (下)
- FZU 2086 餐厅点餐(枚举)
- android 代码优化:封锁输出日志
- VS2013编译FileZilla0.9.44
- java OPENCV 连通域, Imgproc.findContours 例子,参数说明
- Codeforces Round #366 (Div. 2) C. Thor (模拟)
- android - 自定义(组合)控件 + 自定义控件外观
- oracle-创建表空间报错 提示ora-01119 ora-27040:无法创建文件
- 关于oracle数据库的监听器配置问题