JDBC初学,DAO模式

匿名 (未验证) 提交于 2019-12-02 23:59:01

一、用eclipse连接mysql数据库:

要先添加一个文件:https://www.cnblogs.com/caiwenjing/p/8079227.html

二、开始写连接数据库的代码:

因为连接数据库的操作一般是公用的,所以写在叫做util的包里

像实体类一般写在叫做entity包里面

测试类(JUnit里讲解过怎么使用)写在叫做test的包里面

package com.util;  import java.sql.*;  public class ConnectionUtil {     /**      * 第一步:加载驱动      * 第二步:链接数据库      * 第三步:一定要关闭流      * 第四步:测试是否连接成功      */     private static String DRIVER = "com.mysql.cj.jdbc.Driver";         // 数据库驱动     private static String URL = "jdbc:mysql://localhost:3306/xxxy?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT";    // 访问数据库路径                                                      //xxxy 是我连接的数据库名称     private static String NAME = "root";                            // 数据库用户名     private static String PASSWORD = "root";                        // 数据库密码         public static Connection getConnection() {         Connection connection = null;         try {             // 加载驱动             Class.forName(DRIVER);             // 连接数据库              connection = DriverManager.getConnection(URL, NAME, PASSWORD);             return connection;         } catch (Exception e) {             return null;         }     }         // 关闭流     public static void closeConnection(Connection connection) {         try {             connection.close();         } catch (Exception e) {             e.printStackTrace();         }     }         public static void closeStatement(Statement statement) {         try {             statement.close();         } catch (Exception e) {             e.printStackTrace();         }     }         public static void closePreparedStatement(PreparedStatement pStatement) {         try {             pStatement.close();         } catch (Exception e) {             e.printStackTrace();         }     }         public static void closeResultSet(ResultSet rs) {         try {             rs.close();         } catch (Exception e) {             e.printStackTrace();         }     }     // 测试数据库是否链接成功     /*public static void main(String[] args) {         System.out.println("good"+getConnection());     }*/ }

三、写成DAO模式的增删改查操作(写成这样代码更加规范!)

  DAO模式可以把实现数据库表的操作转化为对JAVA类的操作

/* read all data */     public static List<Users> readDao() {         String sql = "select * from Journalism";         Connection connect = null;         PreparedStatement ptmt = null;         ResultSet rs = null;         List<Users> lists = new ArrayList<Users>();         try {             connect = ConnectionUtil.getConnection();             ptmt = connect.prepareStatement(sql);             rs = ptmt.executeQuery();              while (rs.next()) {                  Users user = new Users();                 user.setType(rs.getString("type"));                 user.setContent(rs.getString("content"));                 user.setTitle(rs.getString("title"));                 user.setAuthor(rs.getString("author"));                 user.setId(rs.getString("id"));                 user.setImg(rs.getString("img"));                 user.setToday(rs.getTimestamp("today"));                  lists.add(user);             }             return lists;          } catch (Exception e) {             e.printStackTrace();             return null;         } finally {             ConnectionUtil.closeResultSet(rs);             ConnectionUtil.closePreparedStatement(ptmt);             ConnectionUtil.closeConnection(connect);         }     }           /* delete the data */     public static boolean deleteDao(Users user) {         String sql = "delete from Journalism where id = ?";         Connection connect = null;         PreparedStatement ptmt = null;         try {             connect = ConnectionUtil.getConnection();             ptmt = connect.prepareStatement(sql);             ptmt.setString(1, user.getId());             int i = ptmt.executeUpdate();             return i > 0 ? true : false;         } catch (Exception e) {             e.printStackTrace();             return false;         } finally {             ConnectionUtil.closePreparedStatement(ptmt);             ConnectionUtil.closeConnection(connect);         }     }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!