MYSQL-JDBC数据库实战-宠物商店

 

 dao/AccountDao

package com.xk.jdbc.dao;

public interface AccountDao {
    /**
     * 增加账单
     *
     */
    int addCount(Integer deal_type, Integer pet_id,Integer buyer_id,Integer seller_id,Integer price);
}

dao/BaseDao

package com.xk.jdbc.dao;

import org.apache.commons.beanutils.BeanUtils;

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class BaseDao {
    private static String driver;
    private static String url;
    private static String user;
    private static String password;

    private static Connection connection;
    private static Statement sm;
    private static PreparedStatement pst;
    private static ResultSet rs;

    static {
        init();
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    public static void init(){
        //创建Propeities对象  保存 配置文件中的信息
        Properties properties = new Properties();
        //加载配置文件到输入流中
        InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("database.properties");
        //执行properties的load方法,加载配置文件
        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        driver = properties.getProperty("driver");
        url = properties.getProperty("url");
        user = properties.getProperty("user");
        password = properties.getProperty("password");
    }
    public static Connection getconnection(){
        try {
            connection = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static <T> List<T> executeQuery(String sql, List list,Class<T> Clazz){
        getconnection();
        List<T> tList = new ArrayList<>();
        try {
            //通过prepareStatement预编译sql
            pst = connection.prepareStatement(sql);
            //判断list中是否存在 需要进入sql语句的参数
            if(list != null){
                //通过循环将参数载入prepareStatement中
                for (int i = 0; i <list.size(); i++) {
                    pst.setObject((i+1),list.get(i));
                }
            }
            rs = pst.executeQuery();
            //获取查询后的虚拟结果集的结构信息
            ResultSetMetaData rsmd = rs.getMetaData();
            while(rs.next()){
                //实例化对象(clazz是什么类型 obj就是什么类型)
                T obj = Clazz.newInstance();
                for (int i = 0; i <rsmd.getColumnCount() ; i++) {
                    //获取数据库列名
                    String colName = rsmd.getColumnName(i+1);
                    //获取数据库值
                    Object value = rs.getObject(colName);
                    //调用导入的包下的方法,传入对象,列名,值,会拿列名与对象中的属性对比找到与列名相同名的属性,将值赋给该对象的属性
                    BeanUtils.setProperty(obj,colName,value);
                }
                tList.add(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            closeAll();
        }
        return tList;
    }

    public static ResultSet showExecuteQuery(String sql) {
        getconnection();
        try {
            // 通过 prepareStatement 预编译SQL
            sm = connection.createStatement();
            rs = sm.executeQuery(sql);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return rs;
    }

    public static int executeUpdate(String sql,List list){
        getconnection();
        int row = 0;
        try {
            connection.setAutoCommit(false);
            //通过prepareStatement预编译sql
            pst = connection.prepareStatement(sql);
            //判断list集合中是否存在 需要进入sql语句的参数
            if (null != list  && list.size() != 0){
                //通过循环 将参数写入prepareStatement中
                for (int i = 0; i <list.size() ; i++) {
                    pst.setObject((i+1),list.get(i));
                }
            }
            row = pst.executeUpdate();
            connection.commit();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            try {
                connection.rollback();
            }catch (SQLException e) {
                e.printStackTrace();
            }
        } finally {
            closeAll();
        }
        return row;
    }

    public static void closeAll(){
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (pst != null) {
            try {
                pst.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection != null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

dao/PetDao

package com.xk.jdbc.dao;

import com.xk.jdbc.entity.Pet;

import java.util.List;

public interface PetDao {

    /**
     * 查询所有的宠物
     */
    List<Pet> queryPetList(Integer pet_id,String type_name,Integer health,Integer love,String birthday,Integer owner_id,Integer store_id,Integer pet_money,int sell);

    /**
     * 修改宠物信息
     */
    int revisePet(String name, String whatinformation,Integer value,String id,Integer number);

    /**
     * 增加宠物
     */
    int addPet(String petType,String name,Integer health,Integer love,Integer store_id,Integer pet_money);
}

 dao/PetMasterDao

package com.xk.jdbc.dao;

import com.xk.jdbc.entity.PetMaster;

import java.util.List;

public interface PetMasterDao {
    /**
     * 查询所有的宠物主人
     */
    List<PetMaster> queryPetMasterList(Integer owner_id,String masterName,String masterPwd,Integer masterMoney);


}

 dao/PetShopDao

package com.xk.jdbc.dao;

import com.xk.jdbc.entity.PetShop;

import java.util.List;

public interface PetShopDao {
    /**
     * 查询所有的宠物商店
     */
    List<PetShop> queryPetShopList( Integer store_id,String name,String passwor,Integer balance);

    /**
     * 开宠物商店
     */
    int openShop(String name,String passwd,Integer money);
}

dao/impl/Accountimpl

package com.xk.jdbc.dao.impl;

import com.xk.jdbc.dao.AccountDao;
import com.xk.jdbc.dao.BaseDao;

import java.util.ArrayList;
import java.util.List;

public class Accountimpl implements AccountDao {
    @Override
    public int addCount(Integer deal_type, Integer pet_id,Integer buyer_id,Integer seller_id,Integer price) {
        List list = new ArrayList();
        String sql = "INSERT into account(deal_type,pet_id,buyer_id,seller_id,price) VALUES (?,?,?,?,?)";
        list.add(deal_type);
        list.add(pet_id);
        list.add(buyer_id);
        list.add(seller_id);
        list.add(price);
        int index = BaseDao.executeUpdate(sql,list);
        return 0;
    }
}

 dao/impl/PetDaoimpl

package com.xk.jdbc.dao.impl;

import com.xk.jdbc.dao.BaseDao;
import com.xk.jdbc.dao.PetDao;
import com.xk.jdbc.entity.Pet;

import java.util.ArrayList;
import java.util.List;

public class PetDaoimpl implements PetDao {

    /**
     * 查询所有的宠物
     */
    @Override
    public List<Pet> queryPetList(Integer pet_id, String type_name, Integer health, Integer love, String birthday,
                                  Integer owner_id, Integer store_id, Integer pet_money,int sell) {
        List list = new ArrayList();
        StringBuffer sql = new StringBuffer();
        sql.append("select pet.*, ");
        sql.append("petmaster.masterName, ");
        sql.append("from pet ");
        sql.append("right JOIN petmaster ");
        sql.append("on petmaster.owner_id = pet.owner_id ");
        sql.append("where 1=1 ");
        if (null != pet_id){
            sql.append("and pet_id = ?");
            list.add(pet_id);
        }
        if (null != type_name){
            sql.append("and type_name like ?");
            list.add("%"+type_name+"%");
        }
        if (null != pet_id){
            sql.append("and health = ?");
            list.add(health);
        }
        if (null != pet_id){
            sql.append("and love = ?");
            list.add(love);
        }
        if (null != pet_id){
            sql.append("and birthday like ?");
            list.add("%"+birthday+"%");
        }
        if (null != pet_id){
            sql.append("and owner_id = ?");
            list.add(owner_id);
        }
        if (null != pet_id){
            sql.append("and store_id = ?");
            list.add(store_id);
        }
        if (null != pet_id){
            sql.append("and pet_money = ?");
            list.add(pet_money);
  
  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!感谢您的提问。对于MySQL JDBC连接,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Java Development Kit (JDK) 和 MySQL数据库。 2. 在您的Java项目中,添加MySQL JDBC驱动程序。您可以在MySQL官方网站上下载适用于您的操作系统和MySQL版本的JDBC驱动程序,并将其添加到项目的classpath中。 3. 在Java代码中,使用`java.sql`包中的相关类来建立数据库连接。以下是一个简单的示例代码: ```java import java.sql.*; public class Main { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库URL String username = "your-username"; // 数据库用户名 String password = "your-password"; // 数据库密码 try { // 加载驱动程序 Class.forName("com.mysql.cj.jdbc.Driver"); // 建立数据库连接 Connection connection = DriverManager.getConnection(url, username, password); // 执行SQL查询或更新操作 // ... // 关闭数据库连接 connection.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,`url`变量指定了数据库的URL,其中包括主机名、端口号和数据库名称。`username`和`password`变量存储了登录数据库所需的用户名和密码。 4. 在建立连接后,您可以使用`Connection`对象执行SQL查询或更新操作。具体的操作取决于您的需求和业务逻辑。 5. 最后,别忘记在完成数据库操作后关闭连接,使用`connection.close()`方法。 请注意,以上示例代码仅为演示目的,并未进行错误处理和异常处理。在实际开发中,您应该根据需要添加适当的错误处理和异常处理机制。 希望这能帮助到您!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值