JDBC初学,DAO模式

一、用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);
        }
    }

原文地址:https://www.cnblogs.com/1starfish/p/11488029.html

时间: 2024-08-29 12:43:37

JDBC初学,DAO模式的相关文章

web day17 JDBC入门,DAO模式mySQL时间类型转换,批处理

JDBC入门 1.JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库. 2.JDBC原理 最终得出的结论是,由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现.SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动! 3.JDBC核心类(接口)介绍 JDBC中

java 关于JDBC和DAO模式使用

JDBC(全称:Java Data Base Connectivity)是java数据库连接简称 ,提供连接各种数据库的能力 JDBC API主要的功能: 1.与数据库建立连接 2.执行SQL语句 3.处理结果 JDBC关键字的使用: 1.DriverManager:依据数据库的不同,管理JDBC驱动 2.Connection:负责连接数据库并且担任传送数据库的任务 3.Statement:由Connection产生.负责执行SQL语句 4.ResultSet:负责保存Statement执行后所

JDBC高级应用 - DAO模式与JavaBean

DAO模式与JavaBean DAO数据库操作对象(Data Access Object):负责连接数据库,通过集合获取数据库中的数据,对数据进行CRUD的操作. DAO出现之前,操作数据库的代码与业务代码都出现在JSP或Servlet中,不利于业务代码的分离.DAO出现后改变了这一情况,所有与数据库相关的操作都被拿到了DAO层实现,Servlet或JSP中只操作JavaBean与DAO层,而DAO只操作数据库. 事务实例:转账 张三转200元到李四的银行账户,李四要买英雄联盟皮肤. 要分两个步

Java Dao模式通过JDBC连接数据库的操作

Java程序访问数据库: 1.获取数据库厂商提供的驱动(jdbc接口的实现类) 如ojdbc14.jar——Oracle数据库驱动jar包 mysql-connector-java-5.1.8-bin.jar——MySQL数据库驱动jar包 自己去网上下载就行. 2.使用JDBC的API访问数据库 连接.SQL语句执行.结果 java.sql.Driver:各个数据库厂商需要实现该接口,驱动的标记 java.sql.Connection:封装和数据库的连接 java.sql.Statement:

jdbc之二:DAO模式

1.创建Dao接口. package com.ljh.jasonnews.server.dao; import java.sql.Connection; public interface Dao { public Connection getConnection() throws DaoException; } 2.创建BaseDao类,实现Dao接口,主要完成数据库的打开与关闭 package com.ljh.jasonnews.server.dao; import java.sql.Conn

JDBC、单元测试、DAO模式

JDBC简介 1.什么是JDBC? JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API(工具).JDBC是Java访问数据库的标准规范. 规范:在java中的直接体现是接口 作用:为不同关系型数据库提供统一的访问,由一组用java语言编写的接口和工具类组成,由各大数据库厂商实现对应接口 2.连接数据库时要先加载驱动 什么是驱动? 两个设备要进行通信时,需要满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提

熟悉DAO模式的用法

今天主要是使用DAO模式. DAO模式通过对业务层提供数据抽象层接口,实现了以下目标: 1. 数据存储逻辑的分离 通过对数据访问逻辑进行抽象,为上层机构提供抽象化的数据访问接口.业务层无需关心具体的select,insert,update操作,这样,一方面避免 了业务代码中混杂JDBC调用语句,使得业务落实实现更加清晰,另一方面,由于数据访问几口语数据访问实现分离,也使得开发人员的专业划分 成为可能.某些精通数据库操作技术的开发人员可以根据接口提供数据库访问的最优化实现,而精通业务的开发人员则可

面向对象DAO模式

DAO模式编写数据访问层代码步骤? 1.  接口 增.删.改.查的方法 方法的返回类型为泛型集合 Int rows=select语句的条数 If(rows>0) 方法的返回类型为泛型集合 If(rows>=0 &&rows<=1) 方法的返回类型为实体类 2.  数据访问implements 接口 Class 类名 implements接口{ 对接口中的定义的方法,重写 方法中的代码 Jdbc操作数据库的代码 [考虑方法的重用,编写BaseDAO及方法] } 3.DAO模

使用DAO模式开发宠物管理系统---hellokitty

http://www.cnblogs.com/hellokitty1/p/4489213.html 宠物有狗和企鹅. 狗的属性有:编号.名称.亲密值.健康值.品种.所属主人编号. 企鹅的属性有:编号.名称.亲密值.健康值.性别.所属主人编号. 该系统中主人可以领养宠物,主人的属性有:编号.用户名.密码.姓名.地址.电话. 要求将狗和企鹅的数据保存到同一张表中除所属主人编号.品种.性别外,其余列均不允许为空.主人编号为空表示该宠物未被人领养. 创建宠物表与主人表,狗和企鹅.主人各初始化5条以上的记