
使用crtl加R快捷键即可一起改变
alt + 鼠标左键,即可一起编辑 ctrl + alt + L 将所有的; 号移动到变量这里来
// 包转类的默认值为null
// 定义数据库的变量值时:要用包装类,不能用基本数据类型,因为
// 因为如果没给值的话,基本数据Integer类型为0,在数据库中会出现参数错误


package com.itheima.example;import com.alibaba.druid.pool.DruidDataSourceFactory;import com.itheima.pojo.Brand;import org.junit.Test;import javax.sql.DataSource;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import java.util.Properties;public class BrandTest {/*** 品牌数据的增删改查操作* 1. SQL:select * from tb_brand* 2. 参数:不需要* 3. 结果:List<Brand>*/@Testpublic void testSelectAll() throws Exception {// 1. 获取Connection// 3. 加载配置文件// 3. 加载配置文件 创建配置文件对象Properties prop = new Properties();// 将配置文件用文件的输入流,加载到内存中prop.load(new FileInputStream("C:\\Users\\aufs\\code\\IdeaProjects\\jdbc\\jdbc-demo\\src\\druid.properties"));// 4. 获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);// 将创建的配置文件对象传入进去// 5. 获取数据库连接 ConnectionConnection connection = dataSource.getConnection();// 2. 定义SQL语句String sql = "select * from tb_brand;";// 3. 获取pstmt对象PreparedStatement pstmt = connection.prepareStatement(sql);// 4. 设置参数// 执行sqlResultSet rs = pstmt.executeQuery();// 6. 处理结果List<Brand> 封装Brand对象,装载List集合// 把brand对象放放外面去Brand brand = null; // 在这里创建一个局部变量,然后之后再循环里面// 创建对象就可以直接赋值(复用)给这个变量(可以节约栈空间)List<Brand> brands = new ArrayList<>();while (rs.next()){// 获取数据int id = rs.getInt("id");String brandName = rs.getString("brand_name");String companyName = rs.getString("company_name");int ordered = rs.getInt("ordered");String description = rs.getString("description");int status = rs.getInt("status");// 封装Brand对象// 把brand对象放放外面去,相当于节约栈空间,这里复用其局部变量brand = new Brand(); // 创建对象直接赋值给局部变量brand(Brand类型)brand.setId(id);brand.setBrandName(brandName);brand.setCompanyName(companyName);brand.setOrdered(ordered);brand.setDescription(description);brand.setStatus(status);// 装载集合brands.add(brand); // 将brand对象放入集合中去}// 打印查看集合效果System.out.println(brands);// 7. 释放资源rs.close();pstmt.close();connection.close();}/*** 添加* 1. SQL:insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);* 2. 参数:需要,除了id之外的所有参数信息* 3. 结果:boolean*/@Testpublic void testAdd() throws Exception {// 接收页面提交的参数String brandName = "香飘飘";String companyName = "香飘飘";int ordered = 1;String description = "绕地球一圈";int status = 1;//1. 获取Connection//3. 加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("C:\\Users\\aufs\\code\\IdeaProjects\\jdbc\\jdbc-demo\\src\\druid.properties"));//4. 获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5. 获取数据库连接 ConnectionConnection conn = dataSource.getConnection();//2. 定义SQLString sql = "insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);";//3. 获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);//4. 设置参数pstmt.setString(1,brandName);pstmt.setString(2,companyName);pstmt.setInt(3,ordered);pstmt.setString(4,description);pstmt.setInt(5,status);//5. 执行SQLint count = pstmt.executeUpdate(); // 影响的行数//6. 处理结果System.out.println(count > 0);//7. 释放资源pstmt.close();conn.close();}/*** 修改* 1. SQL:update tb_brandset brand_name = ?,company_name= ?,ordered = ?,description = ?,status = ?where id = ?* 2. 参数:需要,所有数据* 3. 结果:boolean*/@Testpublic void testUpdate() throws Exception {// 接收页面提交的参数String brandName = "香飘飘";String companyName = "香飘飘";int ordered = 1000; // 排序String description = "绕地球三圈";int status = 1;int id = 4;//1. 获取Connection//3. 加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("C:\\Users\\aufs\\code\\IdeaProjects\\jdbc\\jdbc-demo\\src\\druid.properties"));//4. 获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5. 获取数据库连接 ConnectionConnection conn = dataSource.getConnection();//2. 定义SQLString sql = "update tb_brand\n" +" set brand_name = ?,\n" +" company_name= ?,\n" +" ordered = ?,\n" +" description = ?,\n" +" status = ?\n" +" where id = ?";//3. 获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);//4. 设置参数pstmt.setString(1,brandName);pstmt.setString(2,companyName);pstmt.setInt(3,ordered);pstmt.setString(4,description);pstmt.setInt(5,status);pstmt.setInt(6,id);//5. 执行SQLint count = pstmt.executeUpdate(); // 影响的行数//6. 处理结果System.out.println(count > 0);//7. 释放资源pstmt.close();conn.close();}/*** 删除* 1. SQL:delete from tb_brand where id = ?* 2. 参数:需要,id* 3. 结果:boolean*/@Testpublic void testDeleteById() throws Exception {// 接收页面提交的参数int id = 4;//1. 获取Connection//3. 加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("C:\\Users\\aufs\\code\\IdeaProjects\\jdbc\\jdbc-demo\\src\\druid.properties"));//4. 获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5. 获取数据库连接 ConnectionConnection conn = dataSource.getConnection();//2. 定义SQLString sql = "delete from tb_brand where id = ?";//3. 获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);//4. 设置参数pstmt.setInt(1,id);//5. 执行SQLint count = pstmt.executeUpdate(); // 影响的行数//6. 处理结果System.out.println(count > 0);//7. 释放资源pstmt.close();conn.close();}}
