jdbc连接及封装

爱被打了一巴掌 2024-03-30 14:34 192阅读 0赞

jdbc连接

  1. //1.查询所有
  2. public static void main(String[] args) {
  3. //1. 导入数据库对应的jar包
  4. //String url = "jdbc:mysql:///test?userSSL=false";//当前主机简写
  5. //String url = "jdbc:mysql://127.0.0.1/test?userSSL=false";
  6. String url = "jdbc:mysql://localhost:3306/test?userSSL=false";";
  7. String username = "root";
  8. String password = "1234";
  9. try {
  10. //2. 注册驱动
  11. Class.forName("com.mysql.cj.jdbc.Driver");
  12. //3. 获取数据库连接对象
  13. Connection conn = DriverManager.getConnection(url, username, password);
  14. //4. 定义sql语句
  15. String sql = "select * from qh_student";
  16. //5. 获取执行sql的对象 Statement
  17. Statement stmt = conn.createStatement();
  18. //6. 执行sq
  19. ResultSet rs = stmt.executeQuery(sql);
  20. //7. 对结果进行处理
  21. while (rs.next()){
  22. String id = rs.getString("sid");
  23. String name = rs.getString("username");
  24. String pwd = rs.getString("password");
  25. System.out.println(id+"-"+name+"-"+pwd);
  26. }
  27. //8. 释放资源
  28. rs.close();
  29. stmt.close();
  30. conn.close();
  31. } catch (Exception e) {
  32. System.out.println("数据库连接失败!");
  33. e.printStackTrace();
  34. }
  35. }
  36. //2.添加
  37. public static void main(String[] args) {
  38. String url = "jdbc:mysql:///test?userSSL=false";
  39. String username = "root";
  40. String password = "1234";
  41. try {
  42. Class.forName("com.mysql.cj.jdbc.Driver");;
  43. Connection conn = DriverManager.getConnection(url, username, password);
  44. String sql = "insert into qh_student(username,password)" +
  45. "values ('朱八','zb')";
  46. Statement stmt = conn.createStatement();
  47. int count = stmt.executeUpdate(sql);
  48. System.out.println("影响的行数= " + count);
  49. stmt.close();
  50. conn.close();
  51. } catch (Exception e) {
  52. System.out.println("数据库连接失败!");
  53. e.printStackTrace();
  54. }
  55. }
  56. //3/删除
  57. public static void main(String[] args) {
  58. String url = "jdbc:mysql:///test?userSSL=false";
  59. String username = "root";
  60. String password = "1234";
  61. try {
  62. Class.forName("com.mysql.cj.jdbc.Driver");
  63. Connection conn = DriverManager.getConnection(url, username, password);
  64. String sql = "delete from qh_student where sid='6'";
  65. Statement stmt = conn.createStatement();
  66. int count = stmt.executeUpdate(sql);
  67. System.out.println("影响的行数= " + count);
  68. stmt.close();
  69. conn.close();
  70. } catch (Exception e) {
  71. System.out.println("数据库连接失败!");
  72. e.printStackTrace();
  73. }
  74. }

jdbc连接封装

  1. //1.JdbcUtils :
  2. public class JdbcUtils {
  3. private static final String DRIVERCLASSNAME = "com.mysql.cj.jdbc.Driver";
  4. private static final String URL = "jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
  5. private static final String USERNAME = "root";
  6. private static final String PASSWORD = "1234";
  7. private JdbcUtils() {
  8. }
  9. //获取连接对象
  10. public static Connection getConnnection() {
  11. try {
  12. Class.forName("com.mysql.cj.jdbc.Driver");
  13. Connection connection = DriverManager.getConnection(
  14. URL,
  15. USERNAME,
  16. PASSWORD
  17. );
  18. return connection;
  19. } catch (SQLException e) {
  20. e.printStackTrace();
  21. }
  22. return null ;
  23. }
  24. //释放资源
  25. //如果是针对ddl语句或者dml语句,Statement对象以及Connection对象关闭
  26. public static void close(Statement stmt, Connection conn) {
  27. close(null, stmt, conn);
  28. }
  29. //如果是针对DQL语句,ResultSet对象以及Statement以及Connection对象关闭
  30. public static void close(ResultSet rs, Statement stmt, Connection conn) {
  31. if (rs != null) {
  32. try {
  33. rs.close();
  34. } catch (SQLException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38. if (stmt != null) {
  39. try {
  40. stmt.close();
  41. } catch (SQLException e) {
  42. e.printStackTrace();
  43. }
  44. }
  45. if (conn != null) {
  46. try {
  47. conn.close();
  48. } catch (SQLException e) {
  49. e.printStackTrace();
  50. }
  51. }
  52. }
  53. }
  54. //2.JdbcUtilsProperties
  55. jdbc.properties :
  56. driverClassName=com.mysql.cj.jdbc.Driver
  57. url=jdbc:mysql://localhost:3306/数据库?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
  58. username=root
  59. password=123456
  60. JdbcUtilsProperties :
  61. public class JdbcUtilsProperties {
  62. //jdbc.properties路径
  63. private static final String PROPERTIESPATH="com\\qh\\jdbc\\jdbc.properties";
  64. private static String DRIVERCLASSNAME = null;
  65. private static String URL = null;
  66. private static String USERNAME = null;
  67. private static String PASSWORD = null;
  68. //静态代码块
  69. static {
  70. try {
  71. Properties prop = new Properties();
  72. InputStream inputStream = JdbcUtilsProperties.class.getClassLoader().getResourceAsStream(PROPERTIESPATH);
  73. prop.load(inputStream);
  74. DRIVERCLASSNAME = prop.getProperty("driverClassName"); //获取驱动类
  75. URL = prop.getProperty("url"); //获取url
  76. USERNAME = prop.getProperty("username"); //用户名username
  77. PASSWORD = prop.getProperty("password");//密码password
  78. //注册驱动
  79. Class.forName(DRIVERCLASSNAME);
  80. } catch (Exception e) {
  81. e.printStackTrace();
  82. }
  83. }
  84. private JdbcUtilsProperties() {
  85. }
  86. //获取连接对象
  87. public static Connection getConnnection() {
  88. try {
  89. Class.forName("com.mysql.cj.jdbc.Driver");
  90. Connection connection = DriverManager.getConnection(
  91. URL,
  92. USERNAME,
  93. PASSWORD
  94. );
  95. return connection;
  96. } catch (SQLException e) {
  97. e.printStackTrace();
  98. }
  99. return null ;
  100. }
  101. //释放资源
  102. //如果是针对ddl语句或者dml语句,Statement对象以及Connection对象关闭
  103. public static void close(Statement stmt, Connection conn) {
  104. close(null, stmt, conn);
  105. }
  106. //如果是针对DQL语句,ResultSet对象以及Statement以及Connection对象关闭
  107. public static void close(ResultSet rs, Statement stmt, Connection conn) {
  108. if (rs != null) {
  109. try {
  110. rs.close();
  111. } catch (SQLException e) {
  112. e.printStackTrace();
  113. }
  114. }
  115. if (stmt != null) {
  116. try {
  117. stmt.close();
  118. } catch (SQLException e) {
  119. e.printStackTrace();
  120. }
  121. }
  122. if (conn != null) {
  123. try {
  124. conn.close();
  125. } catch (SQLException e) {
  126. e.printStackTrace();
  127. }
  128. }
  129. }
  130. }
  131. //使用 :
  132. Test :
  133. public class Test {
  134. public static void main(String[] args) throws SQLException {
  135. Connection conn = JdbcUtils.getConnnection();
  136. String sql="select * from student where username=? and password=?";
  137. PreparedStatement ps = conn.prepareStatement(sql);
  138. ps.setString(1,"张三");
  139. ps.setString(2,"zs");
  140. ResultSet rs = ps.executeQuery();
  141. if (rs.next()) {
  142. System.out.println("登陆成功!");
  143. }else{
  144. System.out.println("登录失败!");
  145. }
  146. JdbcUtils.close(rs,ps,conn);
  147. }
  148. }

发表评论

表情:
评论列表 (有 0 条评论,192人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JDBC封装

    目录 JDBC封装的步骤: 1、在src里面创建一个文件,命名为:database.properties 2、定义实体类:实体类的表名与数据库的表名一致,表中大每一列为实

    相关 如何封装JDBC

    如何封装JDBC -------------------- 前言:封装JDBC需要用到properties类的知识,如果不懂这块知识的可以查阅我之前写的blog。 -