考试JDBC项目速成
时间:2021-01-12
本文章向大家介绍考试JDBC项目速成,主要包括考试JDBC项目速成使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
项目结果:
构建对应数据库类型的类
样例的学生数据库比较简单,只有学号,姓名,年龄3个属性.对应的类也需要写出3种属性(用类的原因是后面可以包装成List操作方便)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package model;
/**
*
* @author 郑佳杰
*/
public class Student {
private String sno;
private String sname;
private int sage;
public Student(String sno, String sname, int sage) {
this.sno = sno;
this.sname = sname;
this.sage = sage;
}
public Student() {
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public int getSage() {
return sage;
}
public void setSage(int sage) {
this.sage = sage;
}
}
访问数据库的通用读写方法类
首先要写出3个对象
分别对应ado.net连接数据库的coon,cmd,dataset。
之后写
连接函数
try {
//1、加载驱动类
Class.forName("com.mysql.jdbc.Driver");
//2、创建连接对象
String url = "jdbc:mysql://localhost:3306/my_db?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url,user,password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//装载驱动语法记住!!
Class.forName("com.mysql.jdbc.Driver");
//2、创建连接对象
//url记住!!
String url = "jdbc:mysql://localhost:3306/my_db?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String password = "123456";
关闭函数
比较简单
public void closeAll(Connection conn, PreparedStatement pstmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
增删改操作
public int executeUpdate(String sql, Object[] params) {
this.getConnection();//前提保证数据库连接
int result = 0;
try {
//3、创建prepareStatement对象
pstmt = conn.prepareStatement(sql);//和ado.net给cmd附值查询字符串一个道理
//4、为占位符赋值
if (null != params) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);//Object是任何对象的父类,也就是说可以转换成任何的类型
//setObject下标从1开始
}
}
//5、调用方法:执行sql语句
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeAll(conn, pstmt, null);
}
return result;
}
总体代码:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dal;
/**
*
* @author 郑佳杰
*/
import java.sql.*;
public class Dbutils {
protected Connection conn = null;
protected PreparedStatement pstmt = null;
protected ResultSet rs = null;
/**
* 获取连接对象
* @return 连接对象
*/
public Connection getConnection() {
try {
//1、加载驱动类
Class.forName("com.mysql.jdbc.Driver");
//2、创建连接对象
String url = "jdbc:mysql://localhost:3306/my_db?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url,user,password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭资源
*
* @param conn
* @param pstmt
* @param rs
*/
public void closeAll(Connection conn, PreparedStatement pstmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 增删改操作
*
* @param sql
* @param params
* @return
*/
public int executeUpdate(String sql, Object[] params) {
this.getConnection();
int result = 0;
try {
//3、创建prepareStatement对象
pstmt = conn.prepareStatement(sql);
//4、为占位符赋值
if (null != params) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
}
//5、调用方法:执行sql语句
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.closeAll(conn, pstmt, null);
}
return result;
}
/**
* 查询方法
*
* @param sql
* @param params
* @return
*/
public ResultSet executQuery(String sql, Object[] params) {
this.getConnection();
try {
//3、创建prepareStatement对象
pstmt = conn.prepareStatement(sql);
//4、为占位符赋值
if (null != params) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
}
//5、调用方法:执行sql语句
rs = pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
//后面具体的查询方法还需要用到rs ,所以此处最后不能关闭数据流
return rs;
}
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python SVM(支持向量机)实现方法完整示例
- C# 循环判断会进来几次的实现代码
- python3实现SMTP发送邮件详细教程
- Tensorflow中使用tfrecord方式读取数据的方法
- Linux中shell脚本获取当前工作目录的方法
- mysql设置更改root密码、mysql服务器的连接、mysql常用命令的图解
- python中的二维列表实例详解
- Python实现的NN神经网络算法完整示例
- python爬虫实例详解
- 详解基于Vue cli生成的Vue项目的webpack4升级
- 腾讯云申请免费ssl证书配置tomcat使http变https
- Linux shell 实现用for循环100次的方法
- 微信小程序input框中加入小图标的实现方法
- python3第三方爬虫库BeautifulSoup4安装教程
- tomcat配置https的方法示例