Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC

    • pom.xml添加依赖
  • Java:方式一(亲测实用)
  • 方式二:Scala
  • 方式三:Java
  • PhoenixJDBCUtils

pom.xml添加依赖

 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.45</version></dependency>

Java:方式一(亲测实用)

import java.sql.*;
public class JDBCUtil {private static final String DBDRIVER = "com.mysql.jdbc.Driver";// 驱动类类名private static final String DBURL = "jdbc:mysql://(ip):3306/stu?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";// 连接URLprivate static final String DBUSER = "root";// 数据库用户名private static final String DBPASSWORD = "xxxxxx";// 数据库密码private static Connection conn = null;private static PreparedStatement ps = null;private static ResultSet rs = null;/** 获取数据库连接*/public static Connection getConnection() {try {Class.forName(DBDRIVER);// 注册驱动conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);// 获得连接对象System.out.println("成功加载SQL Server驱动程序");} catch (ClassNotFoundException e) {// 捕获驱动类无法找到异常System.out.println("找不到SQL Server驱动程序");e.printStackTrace();} catch (SQLException e) {// 捕获SQL异常e.printStackTrace();}return conn;}public static ResultSet select(String sql) throws Exception {try {ps = (PreparedStatement) conn.prepareStatement(sql);rs = ps.executeQuery();return rs;} catch (SQLException sqle) {throw new SQLException("select data Exception: "+ sqle.getMessage());} catch (Exception e) {throw new Exception("System error: " + e.getMessage());}}/** 增删改均调用这个方法*/public static void update(String sql) throws Exception {try {conn = getConnection();ps = (PreparedStatement) conn.prepareStatement(sql);ps.executeUpdate();} catch (SQLException sqle) {throw new SQLException("insert data Exception: "+ sqle.getMessage());} finally {try {if (ps != null) {ps.close();}} catch (Exception e) {throw new Exception("ps close exception: " + e.getMessage());}try {if (conn != null) {conn.close();}} catch (Exception e) {throw new Exception("conn close exception: " + e.getMessage());}}}public static void closeAll() {try {rs.close();ps.close();conn.close();} catch (SQLException e) {e.printStackTrace();}}
}

方式二:Scala

import java.sql.{ Connection, DriverManager }
object ScalaJdbcConnectSelect extends App {// 访问本地MySQL服务器,通过3306端口访问mysql数据库val url = "jdbc:mysql://localhost:3306/cgjr?useUnicode=true&characterEncoding=utf-8&useSSL=false"//驱动名称val driver = "com.mysql.jdbc.Driver"//用户名val username = "root"//密码val password = "12345"//初始化数据连接var connection: Connection = ""try {//注册DriverClass.forName(driver)//得到连接connection = DriverManager.getConnection(url, username, password)val statement = connection.createStatement//执行查询语句,并返回结果val rs = statement.executeQuery("SELECT name, num FROM persons")//打印返回结果while (rs.next) {val name = rs.getString("name")val num = rs.getString("num")println("name = %s, num = %s".format(name, num))}println("查询数据完成!")//    执行插入操作val rs2 = statement.executeUpdate("INSERT INTO `persons` (`name`, `num`) VALUES ('徐志摩', '22')")println("插入数据完成")//执行更新操作val rs3 = statement.executeUpdate("UPDATE persons set num=55 WHERE `name`=\"徐志摩\"")println("更新数据完成!")//执行删除操作val rs4 = statement.executeUpdate("delete from persons WHERE `name`=\"徐志摩\"")println("删除数据完成!")//执行调用存储过程操作val rs5 = statement.executeUpdate("call add_student(3)")println("调用存储过程完成!")} catch {case e: Exception => e.printStackTrace}//关闭连接,释放资源connection.close
}

方式三:Java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.apache.log4j.Logger;public class DBMysqlUtil {private Connection conn = null;private PreparedStatement ps = null;private ResultSet rs = null;private String dbDriver = null;private String dbConnectionURL = null;private String dbUsername = null;private String dbPassword = null;private PropUtil PropUtil=null;private Logger logger = Logger.getLogger(DBMysqlUtil.class);public DBMysqlUtil(){PropUtil = new PropUtil("config/db.properties");dbDriver = PropUtil.get("Driver");dbConnectionURL = PropUtil.get("ConnectionURL");dbUsername = PropUtil.get("Username");dbPassword = PropUtil.get("Password");   }public DBMysqlUtil(String dbDriver, String dbConnectionURL, String dbUsername,String dbPassword){this.dbDriver = dbDriver;this.dbConnectionURL = dbConnectionURL;this.dbUsername = dbUsername;this.dbPassword = dbPassword;}/*** 功能:获取数据库连接*/private Connection getConnection() {System.out.println("连接地址:"+dbConnectionURL);System.out.println("用户名:"+dbUsername);System.out.println("密码:"+dbPassword);try {Class.forName(dbDriver);conn = DriverManager.getConnection(dbConnectionURL, dbUsername,dbPassword);logger.info("数据库连接成功");} catch (Exception e) {logger.error("Error: DbUtil.getConnection() 获得数据库链接失败.\r\n链接类型:"+ dbDriver + "\r\n链接URL:" + dbConnectionURL + "\r\n链接用户:"+ dbUsername + "\r\n链接密码:" + dbPassword, e);}return conn;}/*** 功能:执行查询语句*/public ResultSet select(String sql) {  logger.info("Exec select sql:" + sql);try {conn = getConnection();ps = conn.prepareStatement(sql);              rs = ps.executeQuery(sql);} catch (SQLException e) {               logger.error("查询数据异常:"+ e.getMessage());}return rs;}/*** 功能:执行查询语句,获取记录数*/public int getRecordCount(String sql) {logger.info("Exec getRecordCount sql:" + sql);int counter = 0;try {conn = getConnection();ps = conn.prepareStatement(sql);              rs = ps.executeQuery(sql);while (rs.next()) {                                      counter++;}} catch (SQLException e) {logger.error("执行DbUtil.getRecordCount()方法发生异常,异常信息:", e);}finally {close();}System.out.println("counter总数:"+counter);return counter;}/*** 功能:针对单条记录执行更新操作(新增、修改、删除)*/public int executeupdate(String sql) throws Exception {logger.info("Exec update sql:" + sql);int num = 0;try {conn = getConnection();ps = conn.prepareStatement(sql);num = ps.executeUpdate();} catch (SQLException sqle) {logger.error("insert/update/delete  data Exception: " +sqle.getMessage());} finally {close();}System.out.println("影响条数:"+num);return num;}/*** * 功能:批量执行SQL(update或delete)* * @param sqlList*            sql语句集合*/public int executeBatch(List<String> sqlList) {int result = 0;for (String sql : sqlList) {try {result += executeupdate(sql);} catch (Exception e) {System.out.println("查询异常:"+e.getMessage());}}System.out.println("executeBatch Result:"+result);return result;}  /*** 功能:关闭数据库的连接*/public void close() {try {if (rs != null) {rs.close();}if (ps != null) {ps.close();}if (conn != null) {conn.close();}logger.info("关闭数据库连接成功");} catch (Exception e) {logger.error("执行DbUtil.close()方法发生异常,异常信息:", e);}}
}

PhoenixJDBCUtils

import java.sql.*;
public class PhoenixJDBCUtils {private static String driverClassName;private static String URL;private static String username;private static String password;private static boolean autoCommit;/** 声明一个 Connection类型的静态属性,用来缓存一个已经存在的连接对象 */private static Connection conn;static {config();}/**     * 开头配置自己的数据库信息     */private static void config() {/*         * 获取驱动         */driverClassName = "org.apache.phoenix.jdbc.PhoenixDriver";/*         * 获取URL         */URL = "jdbc:phoenix:slave1,slave2,slave3:2181/hbase";/*         * 获取用户名         */username = "";/*         * 获取密码         */password = "";/*         * 设置是否自动提交,一般为false不用改         */autoCommit = true;}/**     * 载入数据库驱动类     */private static boolean load() {try {Class.forName(driverClassName);return true;} catch (ClassNotFoundException e) {System.out.println("驱动类 " + driverClassName + " 加载失败");}return false;}/**     * 建立数据库连接     */public static Connection connect() {/* 加载驱动 */load();try {/* 建立连接 */conn = DriverManager.getConnection(URL, username, password);} catch (SQLException e) {System.out.println("建立数据库连接失败 , " + e.getMessage());}return conn;}/**     * 设置是否自动提交事务     **/public static void transaction() {try {conn.setAutoCommit(autoCommit);} catch (SQLException e) {System.out.println("设置事务的提交方式为 : " + (autoCommit ? "自动提交" : "手动提交") + " 时失败: " + e.getMessage());}}/**     * 创建 Statement 对象     */public static Statement statement() {Statement st = null;connect();/* 如果连接是无效的就重新连接 */transaction();/* 设置事务的提交方式 */try {st = conn.createStatement();} catch (SQLException e) {System.out.println("创建 Statement 对象失败: " + e.getMessage());}return st;}/**     * 根据给定的带参数占位符的SQL语句,创建 PreparedStatement 对象     ** @param SQL    带参数占位符的SQL语句* @return 返回相应的 PreparedStatement 对象*/private static PreparedStatement prepare(String SQL, boolean autoGeneratedKeys) {PreparedStatement ps = null;connect();/* 如果连接是无效的就重新连接 */transaction();/* 设置事务的提交方式 */try {if (autoGeneratedKeys) {ps = conn.prepareStatement(SQL, Statement.RETURN_GENERATED_KEYS);} else {ps = conn.prepareStatement(SQL);}} catch (SQLException e) {System.out.println("创建 PreparedStatement 对象失败: " + e.getMessage());}return ps;}public static ResultSet query(String SQL, Object... params) {if (SQL == null || !SQL.trim().toLowerCase().startsWith("select")) {throw new RuntimeException("你的SQL语句为空或不是查询语句");}ResultSet rs = null;if (params.length > 0) {/* 说明 有参数 传入,就需要处理参数 */PreparedStatement ps = prepare(SQL, false);try {for (int i = 0; i < params.length; i++) {ps.setObject(i + 1, params[i]);}rs = ps.executeQuery();} catch (SQLException e) {System.out.println("执行SQL失败: " + e.getMessage());}} else {/* 说明没有传入任何参数 */Statement st = statement();try {rs = st.executeQuery(SQL); // 直接执行不带参数的 SQL 语句} catch (SQLException e) {System.out.println("执行SQL失败: " + e.getMessage());}}return rs;}/**     *  释放资源     *   **/public static void release(Object cloaseable) {if (cloaseable != null) {if (cloaseable instanceof ResultSet) {ResultSet rs = (ResultSet) cloaseable;try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (cloaseable instanceof Statement) {Statement st = (Statement) cloaseable;try {st.close();} catch (SQLException e) {e.printStackTrace();}}if (cloaseable instanceof Connection) {Connection c = (Connection) cloaseable;try {c.close();} catch (SQLException e) {e.printStackTrace();}}}}
}

Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC相关推荐

  1. java jdbc mysql util_Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC

    import java.sql.*; public class PhoenixJDBCUtils { private static String driverClassName; private st ...

  2. java 例子一对小兔子,Java解决标题:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子。...

    Java解决题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一对兔子... 题目:有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生 ...

  3. Java统计立方数:有一堆正整数,统计其中有多少立方数。(Java)

    Java统计立方数:有一堆正整数,统计其中有多少立方数 输入 输入数据有一些正整数,其每个数都小于2^32.若该数为0,则应结束统计. 输出 输出所统计的立方数个数 样例输入 1 3 5 7 9 11 ...

  4. c统计多线程总时间_SQL Server处理器性能指标–第2部分–处理器:%用户时间,处理器:%特权时间,总时间和线程指标

    c统计多线程总时间 In SQL server processor performance metrics – Part 1 – The most important cpu metrics, we ...

  5. 短地址短链接免费接口:缩短链接地址。可用于缩短链接场景,如:电子发票链接,促销活动链接,新闻文章链接等

    短地址短链接接口服务,申请后即可免费使用,提供全接口服务,缩短链接地址,广泛应用于缩短链接场景,如:电子发票链接,促销活动链接,新闻文章链接等. 使用说明: 1.以下短地址接口开发资料供开发技术人员参 ...

  6. 打开网上邻居,点击“查看工作组计算机”,出现:“Workgroup无法访问,您...

    打开网上邻居,点击"查看工作组计算机",出现:"Workgroup无法访问,您可能没有权限使用网络资源...."  图一 无法查看工作组计算机 ◆解决方法:对网 ...

  7. dnf过年服务器维护否,DNF服务器或发生重大漏洞,玩家:维护这么慢,这些BUG修复了吗?...

    原标题:DNF服务器或发生重大漏洞,玩家:维护这么慢,这些BUG修复了吗? 爱玩游戏,分享快乐,我是游戏欢乐Tree. DNF每周四都是例行服务器维护的日子,玩家们对此已经早就习以为常.每次服务器维护 ...

  8. 输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]...

    输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中.例如,123放在a[0],456放在a[1]-统计 ...

  9. PHP上下联,历史上骂人对联,上联:一二三四五六七,下联对的更牛

    对联是中国的传统文化瑰宝,春节贴对联是中国的一个习俗,也是中国传统文化中的一大特色.关于对联,其中的故事以及门道都有很多.然而,因为对联的门槛一般来说比较低,因此在古代时,无论是王公贵族,还是平民百姓 ...

最新文章

  1. python中for语句用法_python中for循环的用法
  2. 增强的Internet域内网关路由协议
  3. 为Process.waitFor设置超时
  4. 《计算机组成原理》----1.5 存储程序的概念
  5. 微信小程序 蓝牙的使用
  6. 数据结构---树,堆排序
  7. Leetcode 256.粉刷房子
  8. 二路归并排序 代码实例
  9. 计算机房等电位接地规范,电子计算机机房接地装置设计要求
  10. 网页qq邮箱链接html,使用QQ邮箱打开网页上的电子邮件链接
  11. html字体库的是引入----阿里妈妈
  12. Win11电脑系统使用U盘安装的方法分享
  13. 日程安排(多重继承+重载)
  14. java+单子_Java单子模式
  15. 忍无可忍,决定宁可错杀千万,也不漏掉一个,弹已出膛,剑已出鞘!
  16. 【PCB软件技巧】OrCAD与PADS相互搭配使用的相关要点
  17. python伪原创工具开发_在线伪原创工具www.bolewei.com的开发过程
  18. 一起来了解木马的七种分类
  19. 地表温度lst数据的下载【国家青藏高原科学数据中心】
  20. 在手机上编程:自制的小飞可编程复数计算器(小飞计算器)

热门文章

  1. 最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。
  2. linux 下的 wchar_t
  3. 大数据需要学习哪些知识
  4. Pandas数据可视化原来也这么厉害
  5. 英剧《反击》中有意思的镜头
  6. 从[USER SERVICES CLIENT]下载的sentinel-3数据在SNAP中打开没有地理坐标的解决办法
  7. 单片机看门狗c语言,单片机看门狗程序 -解决方案-华强电子网
  8. 串口配置c语言,C语言驱动之配置串口(基于S3C2440开发板)
  9. 《嵌入式系统 - RT-Thread开发笔记》手把手教你使用RT-Thread制作GD32 RISC-V系列BSP
  10. 使用 FFmpeg(bilibili视频blv合成mp4)