JAVA JDBC 增删改查简单例子
1、数据库配置文件jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=
2、数据库数据类JdbcUtils
package com.test; import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; public class JdbcUtils {
private static String driver = null;
private static String url = null;
private static String username = null;
private static String password = null;
// 加载驱动,获取数据库连接信息
static {
try {
// 加载配置文件
InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("DB.properties");
Properties properties = new Properties();
properties.load(in);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
// 加载驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} /**
* 获取数据库连接
* @throws SQLException
*/
public static Connection getConnection() {
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
} /**
* 释放资源
* @param connection
* @param preparedStatement
* @param resultSet
*/
public static void releaseDB(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3、增删改查
package com.test; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class JdbcTest {
public void insert() {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
// 获取连接
connection = JdbcUtils.getConnection();
// 准备sql语句
String sql = "INSERT INTO user(id,name,age) VALUES(?,?,?)";
// 获取PrepareStatement对象
preparedStatement = connection.prepareStatement(sql);
// 填充占位符
preparedStatement.setInt(1, 6);
preparedStatement.setString(2, "小A");
preparedStatement.setInt(3, 25);
// 执行sql
int num = preparedStatement.executeUpdate();// 返回影响到的行数 System.out.println("一共影响到" + num + "行");
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtils.releaseDB(connection, preparedStatement, null);
}
}
public void update() {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
// 获取连接
connection = JdbcUtils.getConnection();
// 准备sql语句
String sql = "update user set age = ? where name = ?";
// 获取PrepareStatement对象
preparedStatement = connection.prepareStatement(sql);
// 填充占位符
preparedStatement.setInt(1, 30);
preparedStatement.setString(2, "小A");
// 执行sql
int num = preparedStatement.executeUpdate();// 返回影响到的行数 System.out.println("一共影响到" + num + "行");
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtils.releaseDB(connection, preparedStatement, null);
}
}
public void query() {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = JdbcUtils.getConnection();
String sql = "SELECT name,age FROM user";
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery(); // 遍历结果集
while (resultSet.next()) {
String name = resultSet.getString(1);
Integer age = resultSet.getInt(2); System.out.println("name:" + name + ", age:" + age);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtils.releaseDB(connection, preparedStatement, resultSet);
}
}
public void delete() {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = JdbcUtils.getConnection();
String sql = "DELETE FROM user WHERE id = ?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, 6);
int num = preparedStatement.executeUpdate(); System.out.println("一共影响到" + num + "行");
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtils.releaseDB(connection, preparedStatement, null);
}
} }
JAVA JDBC 增删改查简单例子的更多相关文章
- JDBC增删改查简单测试
首先编写一个entity以便与数据库表文件相对应 lyTable.java public class LyTable implements java.io.Serializable { private ...
- JDBC增删改查,PreparedStatement和Statement的区别
此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...
- WPF MVVM+EF增删改查 简单示例(二) 1对1 映射
WPF MVVM+EF增删改查 简单示例(一)实现了对学生信息的管理. 现在需求发生变更,在录入学生资料的时候同时需要录入学生的图片信息,并且一名学生只能有一张图片资料.并可对学生的图片资料进行更新. ...
- JDBC增删改查和查唯一的完整代码
第一部分代码(实体类) package com.wf.entity; public class Hehe{ private int hehe_id; private String hehe_name; ...
- JDBC增删改查
/* db.properties的配置 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/day14 username=root ...
- jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决
最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始. 我们先写一个获取数据库连接的jdbc封装类 以后可以用 如果不是maven环境的话在src文件下新建一个db.pr ...
- jdbc增删改查进行封装
jdbc封装 1 dao (代码分层) com.aaa.dao 存放dao相关的类型 例如 StudentDAOImpl 处理 数据库的链接 存取数据 com.aaa.servlet 存放servle ...
- 一个在ASP.NET中利用服务器控件GridView实现数据增删改查的例子
备注:这是我辅导的一个项目开发组的一个例子,用文章的方式分享出来,给更多的朋友参考.其实我们这几年的项目中,都不怎么使用服务器控件的形式了,而是更多的采用MVC这种开发模式.但是,如果项目的历史背景是 ...
- iOS sqlite 增删改查 简单封装(基于 FMDB)
/** * 对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查 * * 基于 FMDB * * 操作基于 model ,数据库表字段与 model 属性一一对应,对 model 整 ...
随机推荐
- SQL Server 配置管理器
- Vim 文本编辑器的基本使用
Vim文本编辑器是Linux/Unix系统下最常用的工具之一,通过该工具可以很方便的建立.修改.编辑文档或者程序文件,其作用类似与windows系统下的记事本或者notepad++,因此熟练掌握该工具 ...
- USMART 组件移植到STM32
USMART是由ALIENTEK开发的一个串口调试助手组件,通过它可以通过串口调试助手,调用程序里面的任何函数并执行,单个函数最多支持10个输入参数,并支持函数返回值显示. USMART支持的参数类型 ...
- CXF框架入门(重点)
l CXF是一个开源的webservice框架 l CXF支持的协议:SOAP.XML/HTTP等 l CXF可以很好的和spring集成 l CXF可以部署到tomcat.jboss.jetty等服 ...
- springboot maven项目,为什么build成功,build path也没错误,project-->clean 也没用,项目上面还是有个红x呢?
springboot maven项目,为什么build成功,build path也没错误,project-->clean 也没用,项目上面还是有个红x呢? 看错误信息有提示: Descript ...
- CRM 权限设置
表结构的设计 权限表 url -url地址的正则表达式 ^$ title - 标题 角色表 name - 角色名称 permissions 多对多关联权限表 (权限和角色的关系表) 用户表 name ...
- python 闭包和装饰器
python 闭包和装饰器 一.闭包闭包:外部函数FunOut()里面包含一个内部函数FunIn(),并且外部函数返回内部函数的对象FunIn,内部函数存在对外部函数的变量的引用.那么这个内部函数Fu ...
- Autel MaxiSys Elite Diagnostic Tool Common problem solving methods
1. updating MaxiFlash Elite to firmware 3.21? My maxisys communicate with the MaxiFlash J2534 but Ma ...
- 重复打印相同内容(Doc档)的时候自动生成打印编号
昨天突然接到一个好久未联系的朋友电话,说是江湖救急,要打印一份单据,单据上有个号码要自动生成,如下图,最土的办法是打印完一张,手工改下号码,但这种方法估计碰到成百上千张时估计会疯掉 网上找了实现方法, ...
- 如何使用Wisdom RESTClient定制满足您个性化需求的API文档?
Wisdom RESTClient 支持自动化测试RESTful API,输出精美的测试报告,生成精美的RESTful API文档. 这里介绍一下如何定制个性化的RESTful API文档. 定制个性 ...