网站首页 > java教程 正文
java jdbc数据库连接
Java code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | 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; public class JDBConnection { public Connection conn = null ; // 声明Connection对象的实例 public Statement stmt = null ; // 声明Statement对象的实例 public ResultSet rs = null ; // 声明ResultSet对象的实例 private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver" ; //定义保存数据库驱动的变量 private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM" ; private static String dbUser = "sa" ; private static String dbPwd = "sa" ; public JDBConnection(String propertyFileName) { // 带属性文件名的构造方法 Properties prop = new Properties(); // 属性集合对象 InputStream is = null ; try { is = JDBConnection. class .getClassLoader().getResourceAsStream( propertyFileName); // 属性文件输入流 // is = new FileInputStream("src/" + propertyFileName); prop.load(is); // 将属性文件流装载到Properties对象中 is.close(); // 关闭流 dbClassName = prop.getProperty( "dbClassName" ); dbUrl = prop.getProperty( "dbUrl" ); dbUser = prop.getProperty( "dbUser" ); dbPwd = prop.getProperty( "dbPwd" ); } catch (Exception e) { System.out.println( "属性文件 " + propertyFileName + " 打开失败!" ); } try { Class.forName(dbClassName); // 1.注册驱动 } catch (ClassNotFoundException e) { e.printStackTrace(); } } public JDBConnection() { // 默认的不带参数的构造函数 try { Class.forName(dbClassName); // 1.注册驱动 } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() { Connection conn = null ; try { // Class.forName(dbClassName);// 1.注册驱动 conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); //2.建立与数据库的链接 } catch (Exception ee) { ee.printStackTrace(); } if (conn == null ) { System.err .println( "警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:" + dbClassName + "\r\n链接位置:" + dbUrl + "\r\n用户/密码" + dbUser + "/" + dbPwd); } return conn; } /* * 功能:执行查询语句 */ public ResultSet executeQuery(String sql) { try { // 捕捉异常 conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,//3.创建语句 ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql);//4.执行查询 } catch (SQLException ex) { System.err.println(ex.getMessage()); // 输出异常信息 } return rs; // 返回结果集对象 5.结果处理 } /* * 功能:执行更新操作 */ public int executeUpdate(String sql) { int result = 0; // 定义保存返回值的变量 try { // 捕捉异常 conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); // 执行更新操作 } catch (SQLException ex) { result = 0; // 将保存返回值的变量赋值为0 } return result; // 返回保存返回值的变量 } /* * 功能:关闭数据库的连接 */ public void close() { //6.释放资源 try { // 捕捉异常 try { if (rs != null ) { // 当ResultSet对象的实例rs不为空时 rs.close(); // 关闭ResultSet对象 } } finally { try { if (stmt != null ) { // 当Statement对象的实例stmt不为空时 stmt.close(); // 关闭Statement对象 } } finally { if (conn != null ) { // 当Connection对象的实例conn不为空时 conn.close(); // 关闭Connection对象 } } } } catch (Exception e) { e.printStackTrace(System.err); // 输出异常信息 } } } |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
- 上一篇: 基于Java的校园失物招领系统
- 下一篇: java数据库连接技术(JDBC)
猜你喜欢
- 2024-12-08 「JAVA」kdb数据库进行归档日志导致连接不上
- 2024-12-08 MYSQL相关之不常见变量、排序函数、JDBC数据库与Java连接
- 2024-12-08 Springboot如何连接达梦数据库,超详细,附源码
- 2024-12-08 Java 与 MySQL 数据库连接池优化:提升数据访问效率的关键策略
- 2024-12-08 Java 连接操作 MySQL 数据库(增删查改操作)
- 2024-12-08 java数据库连接技术(JDBC)
你 发表评论:
欢迎- 05-27JavaScript 中的运算符优先级
- 05-27Java程序员必备:运算符使用中的八大实战要点
- 05-27Java运算符优先级表
- 05-272025-04-29:高度互不相同的最大塔高和。用go语言,给定一个数组
- 05-27PHP排序算法:计数、选择、插入、归并、快速、冒泡、希尔、堆
- 05-27Python高级排序算法应用
- 05-27用好RANK函数 跨表排名不用愁
- 05-27十大排序算法时空复杂度
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)