预编译对象PreparedStatement的应用(DQL DML)

1.提供一个商品表 ,提供模拟数据
		商品id  商品name  商品市场价格market_price  商品商城价格shop_price  商品desc描述  
		
使用Jdbc:预编译对象的方式给表中插入某条数据/修改数据/分页查询指定的数据/查询全部数据/按价格升序排序/模糊查询商品数据

加入连接池工具类的操作完成;

 包的分层
	com.qf.pojo
			Product
	com.qf.dao
			ProductDao
	com.qf.dao.impl
			ProductDaoImpl
	com.qf.test
	
			ProductTest   提供单元测试---完成数据测试
			
	提供Druid的配置文件完成 一些信息的初始化用户名,密码,连接池的配置信息

Product.java
package com.wq.Homework.pojo;

public class Product {
private int id;
private String name;
private String market_price;
private String shop_price;
private String shop_desc;

public Product(int id, String name, String market_price, String shop_price, String shop_desc) {
    this.id = id;
    this.name = name;
    this.market_price = market_price;
    this.shop_price = shop_price;
    this.shop_desc = shop_desc;
}

public Product() {
}

public int getId(int anInt) {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getMarket_price() {
    return market_price;
}

public void setMarket_price(String market_price) {
    this.market_price = market_price;
}

public String getShop_price() {
    return shop_price;
}

public void setShop_price(String shop_price) {
    this.shop_price = shop_price;
}

public String getShop_desc() {
    return shop_desc;
}

public void setShop_desc(String shop_desc) {
    this.shop_desc = shop_desc;
}

@Override
public String toString() {
    return "Product{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", market_price='" + market_price + '\'' +
            ", shop_price='" + shop_price + '\'' +
            ", shop_desc='" + shop_desc + '\'' +
            '}';
}

}
ProductDao接口
package com.wq.Homework.dao.impl;

import com.wq.Homework.pojo.Product;

import java.sql.SQLException;
import java.util.List;

public interface ProductDao {
// 插入某条数据
void add(Product product) throws Exception;
// 修改数据/
void update(Product product) throws Exception;
// 分页查询指定的数据/
List Pagingquery(int id1,int id2) throws SQLException;
// 查询全部数据/
List findall() throws Exception;
// 按价格升序排序/
List asc()throws Exception;
// 模糊查询
List Fuzzyquery(String name) throws Exception;
}
ProductDaoImpl.java
package com.wq.Homework.dao.impl;

import com.wq.DruidUtils.DruidUtils;
import com.wq.Homework.pojo.Product;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class ProductImpl implements ProductDao {
// 插入某条数据

@Override
public void add(Product product) throws Exception {
    //获取连接池对象
    Connection connection = DruidUtils.getConnection();
    String sql = "insert into shop(name,market_price,shop_price,shop_desc)values(?,?,?,?)";
    PreparedStatement preparedStatement = connection.prepareStatement(sql);
    preparedStatement.setString(1, product.getName());
    preparedStatement.setString(2, product.getMarket_price());
    preparedStatement.setString(3, product.getShop_price());
    preparedStatement.setString(4, product.getShop_desc());

    int i = preparedStatement.executeUpdate();
    System.out.println(i);
    //释放资源
    DruidUtils.close(preparedStatement, connection);
}

//   修改数据/
@Override
public void update(Product product) throws Exception {

//获取连接池对象
Connection connection = DruidUtils.getConnection();
String sql = “update shop name=?,market_price=?,shop_price=?,shop_desc=? where id =?”;
//执行sql
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, product.getName());
preparedStatement.setString(2, product.getMarket_price());
preparedStatement.setString(3, product.getShop_price());
preparedStatement.setString(4, product.getShop_desc());
preparedStatement.setInt(5, product.getId(2));
int i = preparedStatement.executeUpdate();
System.out.println(i);
}

//   分页查询指定的数据/
@Override
public List<Product> Pagingquery(int id1, int id2) throws SQLException {
    List<Product> list = new ArrayList<>();
    Connection connection = DruidUtils.getConnection();
    String sql = "select * from shop limit ?,?";
    //执行sql
    PreparedStatement preparedStatement = connection.prepareStatement(sql);
    //赋值
    preparedStatement.setInt(1, (id1 - 1) * id2);
    preparedStatement.setInt(2, id2);
    //查询
    ResultSet resultSet = preparedStatement.executeQuery();
    //声明类型变量
    Product product1 = null;
    while (resultSet.next()) {
        product1 = new Product();
        product1.setId(resultSet.getInt("id"));
        product1.setName(resultSet.getString("name"));
        product1.setMarket_price(resultSet.getString("market_price"));
        product1.setShop_price(resultSet.getString("shop_price"));
        product1.setShop_desc(resultSet.getString("shop_desc"));
        list.add(product1);
    }
    DruidUtils.close(resultSet, preparedStatement, connection);

    return list;
}

//   查询全部数据/
@Override
public List<Product> findall() throws Exception {

// List list=new ArrayList<>();
// //获取连接池对象
// Connection connection = DruidUtils.getConnection();
// String sql=“select * from shop;”;
// PreparedStatement preparedStatement = connection.prepareStatement(sql);
// //查询
// ResultSet resultSet = preparedStatement.executeQuery();
// Product product=null;
// while (resultSet.next()){
// product=new Product();
// product.setId(resultSet.getInt(“id”));
// product.setName(resultSet.getString(“name”));
// product.setMarket_price(resultSet.getString(“market_price”));
// product.setShop_price(resultSet.getString(“shop_price”));
// product.setShop_desc(resultSet.getString(“shop_desc”));
// list.add(product);
// }
// DruidUtils.close(resultSet, preparedStatement, connection);
QueryRunner queryRunner = new QueryRunner(DruidUtils.getdatasourse());
String sql = “select * from shop”;
List list = queryRunner.query(sql, new BeanListHandler(Product.class));
return list;
}

//   按价格升序排序/
@Override
public List<Product> asc() throws Exception {
    List<Product> list = new ArrayList<>();
    Connection connection = DruidUtils.getConnection();
    String sql = "SELECT * FROM shop  ORDER BY shop_price ASC;";
    PreparedStatement preparedStatement = connection.prepareStatement(sql);

    ResultSet resultSet = preparedStatement.executeQuery();
    Product product2 = null;
    while (resultSet.next()) {
        product2 = new Product();
        product2.setId(resultSet.getInt("id"));
        product2.setName(resultSet.getString("name"));
        product2.setMarket_price(resultSet.getString("market_price"));
        product2.setShop_price(resultSet.getString("shop_price"));
        product2.setShop_desc(resultSet.getString("shop_desc"));
        list.add(product2);
    }
    DruidUtils.close(resultSet, preparedStatement, connection);


    return list;
}

//   模糊查询
@Override
public List<Product> Fuzzyquery(String name) throws Exception {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
        List<Product> list = new ArrayList<>();
        conn = DruidUtils.getConnection();
        String sql = "select * from shop where name like ?";
        ps = conn.prepareStatement(sql);
        ps.setString(1, name);
        rs = ps.executeQuery();
        Product p = null;
        while (rs.next()) {
            p = new Product();
            p.setId(rs.getInt(1));
            p.setName(rs.getString(2));
            p.setMarket_price(rs.getString(3));
            p.setShop_price(rs.getString(4));
            p.setShop_desc(rs.getString(5));
            list.add(p);
        }
        return list;
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

}
Test.java
package com.wq.Homework.Test;

import com.wq.Homework.dao.impl.ProductDao;
import com.wq.Homework.dao.impl.ProductImpl;
import com.wq.Homework.dao.impl.ProductImpl2;
import com.wq.Homework.pojo.Product;
import org.junit.Before;
import org.junit.Test;

import java.sql.SQLException;
import java.util.List;

public class ProductTest {
private ProductDao productDao;

@Before
public  void  init(){

// productDao=new ProductImpl();
productDao=new ProductImpl();
System.out.println(“接口对象创建完毕”);
}

//   插入某条数据
@Test
public void Testinsert() throws Exception {
    Product product=new Product();
    product.setName("米你好");
    product.setMarket_price("50");
    product.setShop_price("5");
    product.setShop_desc("好");
    productDao.add(product);
}
//   修改数据/
@Test
public void Testupdate() throws Exception {
    Product product = new Product();
    product.setId(1);
    product.setName("史颖");
    product.setMarket_price("20");
    product.setShop_price("20");
    product.setShop_desc("非常好吃");
    productDao.update(product);
}
//   分页查询指定的数据/
@Test
public void testfenye() throws SQLException {
    List<Product> list = productDao.Pagingquery(2,3);

    for (Product product : list) {
        System.out.println(product);
    }

}
//  查询全部数据
@Test
public void  Testfindall() throws Exception {

    List<Product> list=productDao.findall();
    if (list!=null){
        for (Product product : list) {
            System.out.println(product);
        }
    }



}
//   按价格升序排序/
@Test
public void testdesc() throws Exception {
    List<Product> list = productDao.asc();

    for (Product product : list) {
        System.out.println(product);
    }

}
//   模糊查询
@Test
public void testFuzzyquery() throws Exception {
    List<Product> list= productDao.Fuzzyquery("%刘%");
    for (Product product : list) {
        System.out.println(product);
    }
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值