新建工具包以及重命名

把连接数据库这块代码等等进行封装,方便使用

工具类满足可以获取数据库连接以及关闭连接,还可以进行扩展

新建工具包util

1610803502211.png

1610803502262.png

新建JDBCUtil_MYSQL.java类

1610803502301.png

如果你想要重新命名工具包类,在java文件上单击右键/Refactor/Rename

1610803502384.png

开始编写你的工具类吧!!!!

完整程序

JDBCUtil_MYSQL工具类

静态代码段就是当加载类的时候,就会执行一次,而且只执行一次。

软件设计模式:工厂模式,就是从类中直接调用方法而不需要创建对象。

  1. package util;
  2. import java.sql.*;
  3. /**
  4. * JDBC工具类:主要功能包括【获取连接】【释放JDBC资源】
  5. * @author 沈光阳
  6. */
  7. public class JDBCUtil_MYSQL {
  8. /* JDBC开发第一步导入数据库驱动包jar */
  9. /* 静态属性,只能在本对象中使用 */
  10. private static String url = "jdbc:mysql://192.168.2.135:3306/guangyang";
  11. /* 静态代码段就是当加载类的时候,就会执行一次,而且只执行一次 */
  12. static {
  13. try {
  14. /* 注册(加载)JDBC驱动 ,加载MySQL的JDBC驱动只需要加载一次即可 */
  15. Class.forName("com.mysql.jdbc.Driver");
  16. } catch (ClassNotFoundException e) {
  17. // TODO Auto-generated catch block
  18. e.printStackTrace();
  19. }
  20. }
  21. /*
  22. * 功能:连接数据库
  23. * @param user :用户名
  24. * @param assword :密码
  25. * 返回值:Connection连接类
  26. * 如果能正常连接数据链就返回Connection,若连接失败就返回null
  27. */
  28. public static Connection getConnection(String user , String password) {
  29. try {
  30. /* 使用驱动管理器,获得一条数据库连接,使用Connector接收这个连接 */
  31. Connection conn = DriverManager.getConnection(url, user, password);
  32. /* 没有抛出异常就返回conn 连接 */
  33. return conn;
  34. } catch (SQLException e) {
  35. e.printStackTrace();
  36. }
  37. /* 返回null证明抛出异常,获取连接失败 */
  38. return null;
  39. }
  40. /**
  41. * 功能:关闭Statement对象,ResuleSet对象以及Connection接口
  42. * 关闭是有先后顺序的,先关闭ResultSet,再关闭Statement,最后关闭Connection
  43. * Connection:建立连接接口类
  44. * Statement:执行SQL语句类
  45. * ResultSet: 执行SQL语句返回一个结果集的类
  46. * @throws SQLException
  47. */
  48. public static void close(Connection conn,Statement st , ResultSet rs) {
  49. /* 如果输入的对象非空 就关闭相应的类 */
  50. try {
  51. if(rs != null)
  52. rs.close();
  53. } catch (SQLException e) {
  54. System.out.println("close关闭时发生异常");
  55. e.printStackTrace();
  56. }
  57. try {
  58. if(st != null)
  59. st.close();
  60. } catch (SQLException e) {
  61. System.out.println("close关闭时发生异常");
  62. e.printStackTrace();
  63. }
  64. try {
  65. if(conn != null)
  66. conn.close();
  67. } catch (SQLException e) {
  68. System.out.println("close关闭时发生异常");
  69. e.printStackTrace();
  70. }
  71. }
  72. /**
  73. * 功能:关闭Connection接口
  74. * Connection:建立连接接口类
  75. * @throws SQLException
  76. */
  77. public static void close(Connection conn) {
  78. close(conn, null, null);
  79. }
  80. /**
  81. * 功能:关闭Connection接口和Statement对象
  82. * Connection:建立连接接口类
  83. * Statement:执行SQL语句类
  84. * @throws SQLException
  85. */
  86. public static void close(Connection conn,Statement st) {
  87. close(conn, st, null);
  88. }
  89. /**
  90. * 功能:关闭Connection接口和ResultSet对象
  91. * Connection:建立连接接口类
  92. * ResultSet: 执行SQL语句返回一个结果集的类
  93. * @throws SQLException
  94. */
  95. public static void close(Connection conn,ResultSet rt) {
  96. close(conn, null, rt);
  97. }
  98. }
  1. package util;
  2. import java.sql.*;
  3. public class Test {
  4. public static void main(String[] args) {
  5. /*
  6. * 获取与MySQl数据库的连接
  7. * 软件设计模式:工厂模式,就是从类中直接调用方法而不需要创建对象(JDBCUtil_MYSQL.getConnection())
  8. */
  9. Connection conn = JDBCUtil_MYSQL.getConnection("guangyang","123");
  10. if(conn != null) {
  11. System.out.println("数据库连接成功");
  12. }else {
  13. System.out.println("数据库连接失败");
  14. }
  15. Statement st = null;
  16. try {
  17. st = conn.createStatement();
  18. /* 插入数据SQL语句 */
  19. String sql = "insert into STU values(100,'李四',56)";
  20. /* 执行SQL语句 ,返回影响的行 */
  21. int i = st.executeUpdate(sql);
  22. System.out.println("往STU表格中成功插入数据...");
  23. } catch (SQLException e) {
  24. // TODO Auto-generated catch block
  25. e.printStackTrace();
  26. }finally {
  27. /* 关闭连接流 */
  28. JDBCUtil_MYSQL.close(conn,st);
  29. }
  30. }
  31. }