包结构:

=====================================
jdbc.properties路径:/jdbc-1/src/jdbc.properties
内容:
#连接MySQL
jdbc.user=root
jdbc.password=root
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/jdbc1 #连接Oracle
#jdbc.user=scott
#jdbc.password=tiger
#jdbc.driverClass=oracle.jdbc.driver.OracleDriver
#jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:ORCL001 ==========================================

工具类:获取连接、关闭资源

package com.atguigu.jdbc;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; /**
* JDBC 操作的工具类
*/
public class JdbcUtils { public static void close(ResultSet resultSet){
try {
if(resultSet != null){
resultSet.close();
}
} catch (Exception e) {
e.printStackTrace();
}
} //关闭数据库资源
public static void close(Connection connection){
try {
if(connection != null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
} public static void close(Statement statement){
try {
if(statement != null){
statement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
} //根据配置文件获取数据库连接
public static Connection getConnection() throws ClassNotFoundException, SQLException, IOException{
Connection connection = null; //0. 读取 Properties 文件
Properties properties = new Properties();
InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(in); //1. 准备连接数据库的四个基本信息:
String driverClassName = properties.getProperty("jdbc.driverClass");
String url = properties.getProperty("jdbc.jdbcUrl");
String user = properties.getProperty("jdbc.user");
String password = properties.getProperty("jdbc.password"); //2. 加载驱动
Class.forName(driverClassName); //3. 调用 DriverManager.getConnection(url, user, password) 获取连接
connection = DriverManager.getConnection(url, user, password); return connection;
}

公用update代码实现:

//用于 insert、update、delete 的方法.
public void update(String sql, Object ... args){
Connection connection = null;
PreparedStatement preparedStatement = null; try {
//1. 获取连接
connection = JdbcUtils.getConnection(); //2. 调用 Connection#prepareStatement(sql) 创建 PreparedStatement 对象
preparedStatement = connection.prepareStatement(sql); //3. 调用 PreparedStatement 的 setXxx 方法来填充占位符
if(args != null && args.length > 0){
for(int i = 0; i < args.length; i++){
preparedStatement.setObject(i + 1, args[i]);
}
} //4. 执行 SQL. 调用 execute() 方法. 而不能再调用 Statement 的 execute(sql) 方法
preparedStatement.execute(); } catch (Exception e) {
e.printStackTrace();
} finally{
//5. 关闭数据库资源
JdbcUtils.close(preparedStatement);
JdbcUtils.close(connection);
}
}
==========================================
//测试
@Test
public void testUpdate2() throws ClassNotFoundException{
String sql = null; // sql = "INSERT INTO users(username, password) VALUES(? ,?)";
// update(sql, "abcd", "123456"); // sql = "UPDATE users SET username = ?, password = ? WHERE id = ?";
// update(sql, "bcde", "3457678", 6); sql = "DELETE FROM users WHERE id = ?";
update(sql, 6); //String className = "";
//把 className 对应的 class 文件加载到内存中. 得到 Class 对象
//1. 导致 className 对应的 class 的静态变量完成初始化
//2. 执行静态代码块的代码
//Class.forName(className);
}

公用的update的更多相关文章

  1. 在UPDATE中更新TOP条数据以及UPDATE更新中使用ORDER BY

    正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade   随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member ...

  2. SQL.WITH AS.公用表表达式(CTE)(转)

    一.WITH AS的含义    WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是 ...

  3. SQL.WITH AS.公用表表达式(CTE)

    一.WITH AS的含义    WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是 ...

  4. SQL中使用WITH AS提高性能,使用公用表表达式(CTE)简化嵌套SQL

    一.WITH AS的含义     WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候, ...

  5. T-SQL 公用表表达式(CTE)

    公用表表达式(CTE) 在编写T-SQL代码时,往往需要临时存储某些结果集.前面我们已经广泛使用和介绍了两种临时存储结果集的方法:临时表和表变量.除此之外,还可以使用公用表表达式的方法.公用表表达式( ...

  6. 详解公用表表达式(CTE)

    简介 对于SELECT查询语句来说,通常情况下,为了使T-SQL代码更加简洁和可读,在一个查询中引用另外的结果集都是通过视图而不是子查询来进行分解的.但是,视图是作为系统对象存在数据库中,那对于结果集 ...

  7. (03)odoo模型/记录集/公用操作

    -----------------更新时间11:17 2016-09-18 星期日11:00 2016-03-13 星期日09:10 2016-03-03 星期四11:46 2016-02-25 星期 ...

  8. SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL

    转:http://wudataoge.blog.163.com/blog/static/80073886200961652022389/ 一.WITH AS的含义     WITH AS短语,也叫做子 ...

  9. [转]SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL

    一.WITH AS的含义     WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候, ...

随机推荐

  1. Unity进阶之ET网络游戏开发框架 04-资源打包

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  2. EF获取DataTable的扩展方法GetDataSet

    微软的EF至今已到了EF6版本了,但是,不知道微软咋想的,至今也不支持直接从数据库获取一张数据表DataTable,但这个DataTable在许多情况下还是比确定的实体化类更方便好使,这里,我仿照微软 ...

  3. 携程PMO--如何召开卓有成效的回顾会

      话题介绍   回顾会提供团队反思迭代过程并提出改进措施的机会.回顾会是团队成员共同进行的协作活动,让团队成员跟进并落实改进措施,使团队在下一个冲刺中更高效,这是相当重要的.   我们给出了回顾会的 ...

  4. spring-boot-plus详细配置(五)

    spring-boot-plus详细配置 公共配置 application.yml

  5. 构建docker虚拟化平台

    安装epel-release扩展包 yum install epel-release -y 安装docker yum install docker-ce 启动docker systemctl star ...

  6. mongo常用语法

    首先要能进入控制台,进不去自己解决. 基本操作: show users:显示用户 show dbs:显示数据库列表 use <db name> 切换/创建数据库 show collecti ...

  7. bi-Lstm +CRF 实现命名实体标注

    1. https://blog.csdn.net/buppt/article/details/82227030 (Bilstm+crf中的crf详解,包括是整体架构) 2. 邹博关于CRF的讲解视频 ...

  8. evevt

    EventEvent 是一个事件对象,当一个事件发生后,和当前事件发生相关的详细信息会被临时存储到一个指定的地方,也就是event对象,以方便我们在需要的时候调用. 在这一点上,非常类似于飞机当中的黑 ...

  9. spring-cloud-kubernetes与SpringCloud Gateway

    本文是<spring-cloud-kubernetes实战系列>的第五篇,主要内容是在kubernetes上部署一个SpringCloud Gateway应用,该应用使用了spring-c ...

  10. 那些让你觉得自己是个傻B的题目集锦(大神的降维打击合集)

    一起过来排好队,进来挨打 1.Leetcode tag-LinkList 109.convert sorted list to binary search tree 2Leetcode tag-Arr ...