当前位置:   article > 正文

Java 链接mysql数据库实现增删该查功能_java怎么连接数据库让表具有查询功能 site:blog.csdn.net

java怎么连接数据库让表具有查询功能 site:blog.csdn.net

                    今天培训的第一天,老师教了都是一些基础的知识,记录一下,待后来巩固学习。

               JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语句编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。(来自百度百科

               Jdbc 执行sql语句只要是 executeUpdateexecuteQuery ,前者主要是执行对数据的增删改查,后者主要实现对数据库的基础查询。

              JDBC还存在两个方法实现实现操作数据库PreparedStatement和Statement通过代码来了解各自的有点

          Statement法:

  1. <span style="font-size:18px;">Connection conn = DriverManager.getConnection(url, user, password);
  2. String sql ="insert into account (name,sex)values('Dava','M')";
  3. Statement stm = conn.createStatement();
  4. int flag = stm.executeUpdate(sql);
  5. if (flag > 0)
  6. System.out.println("Insert successfully!");
  7. else
  8. System.out.println("It failed.");
  9. stm.close();
  10. conn.close();</span>
         PreparedStatement法:

        

  1. Connection conn = DriverManager.getConnection(url, user, password);
  2. String sql2 = "insert into account (name,password) values (?,?)";
  3. PreparedStatement pst = conn.prepareStatement(sql2);
  4. pst.setString(1, "david");
  5. pst.setString(2, "david");
  6. int flag = pst.executeUpdate();// 真正去DB去查询;不需要sql2
  7. if (flag > 0)
  8. System.out.println("Insert successfully!");
  9. else
  10. System.out.println("It failed.");
  11. // 关闭核心资源
  12. pst.close();
  13. conn.close();
       通过代码可以看出来Statement与PreparedStatement的差别,具体差别可以看这篇博客 点击打开链接

          下面上全部代码

    

  1. package cn.edu.shou.www;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. public class AccountJdbc {
  8. // 快捷键:Alt + /
  9. // Add 功能 C
  10. // Jdbc操作路线:Driver, Connection, (sql), Statement, ResultSet
  11. // ctrl + S 保存
  12. // ctrl + z 后退
  13. // ctrl + shift + O 自动导入包
  14. // ctrl + shift + F 格式化代码(代码看上去很美)
  15. // ctrl + shift + / 块注释
  16. // ctrl + shift + \ 取消块注释
  17. static Connection conn = null;// 静态类变量
  18. static {// 静态块,实现驱动类的加载及连接的生成
  19. try {
  20. Class.forName("com.mysql.jdbc.Driver");
  21. String url = "jdbc:mysql://localhost/emp";//为连接本地的emp数据库
  22. String user = "root";//mysql数据库的登录名
  23. String password = "shou";//数据库密码
  24. conn = DriverManager.getConnection(url, user, password);
  25. } catch (ClassNotFoundException e) {
  26. e.printStackTrace();
  27. } catch (SQLException e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. private static void searchAccount() {// 查询账号
  32. // 用到ResultSet
  33. try {
  34. String sql = "select * from account where name = ?";
  35. PreparedStatement pst = conn.prepareStatement(sql);
  36. pst.setString(1, "admin");// 替换第一个?
  37. ResultSet rs = pst.executeQuery();
  38. // executeQuery :适用查
  39. // 遍历结果集
  40. while (rs.next()) {
  41. System.out.println("ID: "+rs.getInt("id"));
  42. System.out.println("NAME: "+rs.getString("name"));
  43. System.out.println("PASSWORD: "+rs.getString("password"));
  44. }
  45. // 关闭核心资源
  46. pst.close();
  47. conn.close();
  48. } catch (SQLException e) {
  49. e.printStackTrace();
  50. }
  51. }
  52. private static boolean updateAccount() {// 修改账号
  53. try {
  54. String sql = "update account set password = ? where name = ?";
  55. PreparedStatement pst = conn.prepareStatement(sql);
  56. pst.setString(1, "admin");// 替换第一个?
  57. pst.setString(2, "admin");// 替换第二个?
  58. int flag = pst.executeUpdate();// 真正去DB去查询;不需要sql2
  59. // executeUpdate : 适用范围为增删改
  60. // executeQuery :适用查
  61. if (flag > 0)
  62. return true;
  63. // 关闭核心资源
  64. pst.close();
  65. conn.close();
  66. } catch (SQLException e) {
  67. e.printStackTrace();
  68. }
  69. return false;
  70. }
  71. private static boolean deleteAcount() {// 删除账号
  72. try {
  73. String sql = "delete from account where name=?";
  74. PreparedStatement pst = conn.prepareStatement(sql);
  75. pst.setString(1, "david");
  76. int flag = pst.executeUpdate();// 真正去DB去查询;不需要sql2
  77. // executeUpdate : 适用范围为增删改
  78. // executeQuery :适用查
  79. if (flag > 0)
  80. return true;
  81. // 关闭核心资源
  82. pst.close();
  83. conn.close();
  84. } catch (SQLException e) {
  85. // TODO Auto-generated catch block
  86. e.printStackTrace();
  87. }
  88. return false;
  89. }
  90. private static boolean addAcount() {// 添加账号
  91. try {
  92. String sql = "insert into account (name,password) values ('eva','eva')";
  93. String sql2 = "insert into account (name,password) values (?,?)";
  94. PreparedStatement pst = conn.prepareStatement(sql2);
  95. pst.setString(1, "david");
  96. pst.setString(2, "david");
  97. int flag = pst.executeUpdate();// 真正去DB去查询;不需要sql2
  98. // 关闭核心资源
  99. pst.close();
  100. conn.close();
  101. if (flag > 0)
  102. return true;
  103. } catch (SQLException e) {
  104. e.printStackTrace();
  105. }
  106. return false;
  107. }
  108. public static void main(String[] args) {// OS来调用
  109. // addAcount(); //增加记录
  110. /*
  111. * if (addAcount()) System.out.println("Add successfully."); else
  112. * System.out.println("Add faild.");
  113. */
  114. // deleteAcount(); //删除记录
  115. // updateAccount();// 更新记录
  116. // 查询记录
  117. searchAccount();
  118. }
  119. }

    mysql-connector-java-5.1.20-bin下载地址点击打开链接

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/497320
推荐阅读
相关标签
  

闽ICP备14008679号