package com.ruanko.demo5;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
/**
*JDBC工具类
*@函数doUpdate(String sqls,Object sqlParams[]) 用于操作数据库的增删改语句
*@函数doQuery(String sqls,Object sqlParams[])用于操作数据库的查询语句
*@函数getClose() 用于释放连接数据库的会话对象、执行对象、结果集对象
*/
public class DBUtil {
private String url="jdbc:mysql://localhost:3306/kenan";
private String user="root";
private String password="123456";
private Connection conn = null;
private ResultSet rs = null;
private PreparedStatement stmt = null;
/**
* 加载驱动
*/
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 创建连接数据库的会话对象
* @throws SQLException
* @参数1 url="jdbc:mysql://本机或者IP地址:数据库端口号/数据实例"
* @参数2 user="数据库用户名"
* @参数3 password="数据库用户名密码"
*/
//@Test
private void getConnect() {
try {
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
} catch (SQLException e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
}
}
/**
* 执行增删改的函数
* @参数sqls
* 只可以执行以下类似sql语句如:<br>
* 增1:insert into tableName values(字段值1,字段值2,字段值3,。。。。);<br>
* 增2:insert into tableName values(?,?,?,。。。。);<br>
* 改1:update 表名 set 字段名1=字段值1,字段名2=字段值2,字段名3= 字段值3,。。。。where 字段名x=字段值x);<br>
* 改2:update 表名 set 字段名1=?,字段名2=?,字段名3=?,。。。。where 字段名x=?);<br>
* 删1:delete from 表名 where 字段名x = 字段值x;<br>
* 删2:delete from 表名 where 字段名x = ?;<br>
* @参数sqlParams
* 要给占位符赋予的参数值。
*/
public int doUpdate(String sqls,Object sqlParams[]) {
//执行增删改sql语句之后返回的状态结果
int z = 0;
//获取连接对象
getConnect();
try {
//获取执行对象
stmt = conn.prepareStatement(sqls);
//sqlParams不为NULL时,意味着传入的sql带有占位符的sql语句
if (sqlParams!=null) {
for (int i = 0; i < sqlParams.length; i++) {
stmt.setObject(i+1, sqlParams[i]);
}
}
//执行sql语句
System.out.println("执行的sql语句为:"+stmt.toString());
z=stmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return z;
}
/**
* 执行查询语句的函数
* @参数sqls
* 只可以执行以下类似sql语句如:<br>
* 查询1:select 要查询的内容 from 表名 [where 字段名1=参数值1 and 字段名2=参数值2 。。。。。]
* 查询2:select 要查询的内容 from 表名 [where 字段名1=? and 字段名2=? 。。。。。]
* @参数sqlParams
* 要给占位符赋予的参数值。
*/
public ResultSet doQuery(String sqls,Object sqlParams[]) {
//获取连接对象
getConnect();
try {
//获取执行对象
stmt = conn.prepareStatement(sqls);
//给占位符赋值
if (sqlParams!=null) {
for (int i = 0; i < sqlParams.length; i++) {
stmt.setObject(i+1, sqlParams[i]);
}
}
//执行sql语句
System.out.println("执行的sql语句为:"+stmt.toString());
rs = stmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/**
* 释放资源
* 开始的顺序:连接数据库的会话对象 执行对象 结果集对象
*/
public void getClose() {
try {
if (rs!=null) {
rs.close();
}
if (stmt!=null) {
stmt.close();
}
if (conn!=null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
数据库连接测试代码jdbc
需积分: 50 63 浏览量
2019-01-25
12:03:44
上传
评论
收藏 13KB RAR 举报
土豆面包
- 粉丝: 37
- 资源: 17
最新资源
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
- python189某医院体检挂号系统.rar
- python179的企业物流管理系统(django).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈