使用原生JDBC操作数据库

Bertha 。 2022-10-18 00:54 271阅读 0赞

现在都是使用mybatis来操作数据库,至于如何使用JDBC来操作数据库,基本上忘记的差不多了,特此记录一下
感情深不深 ,都在代码里,废话不多说,直接上代码

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4. /** * 工具类,获取数据库的连接 */
  5. public class DBUtil {
  6. private static String URL="jdbc:mysql://127.0.0.1:3306/test";
  7. private static String USER="root";
  8. private static String PASSWROD ="123456";
  9. private static Connection connection=null;
  10. static{
  11. try {
  12. Class.forName("com.mysql.jdbc.Driver");
  13. // 获取数据库连接
  14. connection=DriverManager.getConnection(URL,USER,PASSWROD);
  15. System.out.println("连接成功");
  16. } catch (ClassNotFoundException e) {
  17. // TODO Auto-generated catch block
  18. e.printStackTrace();
  19. } catch (SQLException e) {
  20. // TODO Auto-generated catch block
  21. e.printStackTrace();
  22. }
  23. }
  24. // 返回数据库连接
  25. public static Connection getConnection(){
  26. return connection;
  27. }
  28. }
  29. import model.Student;
  30. import java.util.ArrayList;
  31. import java.util.List;
  32. import java.sql.Connection;
  33. import java.sql.PreparedStatement;
  34. import java.sql.ResultSet;
  35. import java.sql.SQLException;
  36. import java.sql.Statement;
  37. import db.DBUtil;
  38. /** * 操作学生表的dao类 * 下面均使用预编译的方法 */
  39. public class StudentDao {
  40. //将连接定义为单例
  41. private static Connection connection = DBUtil.getConnection();
  42. // 添加新的学生
  43. public void addStudent(Student student){
  44. String sql ="insert into student(name,age,score) "+
  45. "values(?,?,?)";
  46. boolean result = false;
  47. try {
  48. // 将sql传进去预编译
  49. PreparedStatement preparedstatement = connection.prepareStatement(sql);
  50. // 下面把参数传进去
  51. preparedstatement.setString(1, student.getName());
  52. preparedstatement.setInt(2, student.getAge());
  53. preparedstatement.setDouble(3, student.getScore());
  54. preparedstatement.execute();
  55. } catch (SQLException e) {
  56. // TODO Auto-generated catch block
  57. e.printStackTrace();
  58. System.out.println("创建数据库连接失败");
  59. }
  60. }
  61. // 更新学生信息
  62. public void updateStudent(Student student){
  63. String sql = "update student set name = ? ,age =?,score = ? where id = ? ";
  64. boolean result = false;
  65. try {
  66. PreparedStatement preparedStatement = connection.prepareStatement(sql);
  67. preparedStatement.setString(1, student.getName());
  68. preparedStatement.setInt(2, student.getAge());
  69. preparedStatement.setDouble(3, student.getScore());
  70. preparedStatement.setInt(4, student.getId());
  71. preparedStatement.executeUpdate();
  72. } catch (SQLException e) {
  73. // TODO Auto-generated catch block
  74. e.printStackTrace();
  75. System.out.println("连接数据库失败");
  76. }
  77. }
  78. // 根据id删除一个学生
  79. public void deleteStudent(int id){
  80. String sql = "delete from student where id = ?";
  81. boolean result = false;
  82. try {
  83. PreparedStatement preparedStatement = connection.prepareStatement(sql);
  84. preparedStatement.setInt(1, id);
  85. result=preparedStatement.execute();
  86. } catch (SQLException e) {
  87. // TODO Auto-generated catch block
  88. e.printStackTrace();
  89. }
  90. }
  91. // 根据id查询学生
  92. public Student selectStudent(int id){
  93. String sql ="select * from student where id =?";
  94. try {
  95. PreparedStatement preparedStatement = connection.prepareStatement(sql);
  96. preparedStatement.setInt(1, id);
  97. ResultSet resultSet = preparedStatement.executeQuery();
  98. Student student = new Student();
  99. // 一条也只能使用resultset来接收
  100. while(resultSet.next()){
  101. student.setId(resultSet.getInt("id"));
  102. student.setName(resultSet.getString("name"));
  103. student.setAge(resultSet.getInt("age"));
  104. student.setScore(resultSet.getDouble("score"));
  105. }
  106. return student;
  107. } catch (SQLException e) {
  108. // TODO: handle exception
  109. }
  110. return null;
  111. }
  112. // 查询所有学生,返回List
  113. public List<Student> selectStudentList(){
  114. List<Student>students = new ArrayList<Student>();
  115. String sql ="select * from student ";
  116. try {
  117. PreparedStatement preparedStatement = DBUtil.getConnection().prepareStatement(sql);
  118. ResultSet resultSet = preparedStatement.executeQuery();
  119. // 不能把student在循环外面创建,要不list里面六个对象都是一样的,都是最后一个的值,
  120. // 因为list add进去的都是引用
  121. // Student student = new Student();
  122. while(resultSet.next()){
  123. Student student = new Student();
  124. student.setId(resultSet.getInt(1));
  125. student.setName(resultSet.getString(2));
  126. student.setAge(resultSet.getInt(3));
  127. student.setScore(resultSet.getDouble(4));
  128. students.add(student);
  129. }
  130. } catch (SQLException e) {
  131. // TODO: handle exception
  132. }
  133. return students;
  134. }
  135. }``

发表评论

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

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

相关阅读

    相关 使用原生JDBC操作数据库

    > 现在都是使用mybatis来操作数据库,至于如何使用JDBC来操作数据库,基本上忘记的差不多了,特此记录一下 > 感情深不深 ,都在代码里,废话不多说,直接上代码