数据库连接池
本文最后更新于 196 天前,其中的信息可能已经有所发展或是发生改变。

连接池



package druid;
 /*
 数据库连接池:
 负责分配,连接,管理数据库连接的,他允许应用程序重复使用一个现有的数据库连接,
 而不是重新建立一个
 好处:1.资源重复使用 2.提升系统响应速度 3.避免数据库连接遗漏问题
 druid:功能强大,性能优秀
 步骤:
 1.导包,定义配合文件,加载配置文件(druid.properties)
 2.获取数据库连接对象 获取连接
 加载配置文件:properties prop=new properties();
 prop.load(new FileInputStream("文件地址值"));
 获取连接对象:DataSource dataSource =DruidDataSourceFactory.createDataSource(prop)
 获取数据库连接:Connection=dataSource.getConnection();
  */
 import com.alibaba.druid.pool.DruidDataSource;
 import com.alibaba.druid.pool.DruidDataSourceFactory;
 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.Properties;
 //下面是一个综合案例,基于druid连接池
 //查询蓑鲉数据,增删改查数据
 public class druidTest1 {
     public static void main(String[] args) throws Exception {
         System.out.println(System.getProperty("user.dir"));
         testAdd();
    }
          //1.构建数据库
         //2.定义实体类
     public static void selectAll() throws Exception {
         //1.获取连接
         //2.加载配置文件
         Properties prop = new Properties();
         prop.load(new FileInputStream(""));
         //3.获取连接池对象
         DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
         //4.获取数据库连接
         Connection conn = dataSource.getConnection();
         //5.定义sql语句
         String sql = "select *from tb_brand";
         //6.获取p对象
         PreparedStatement pstmt = conn.prepareStatement(sql);
         //7.设置参数(查询无需设置参数)
         //8.执行sql语句
         ResultSet rs = pstmt.executeQuery();
         //9.处理《list》获取的对象,并且把它装到集合当中去
         ArrayList<Brand> list = new ArrayList<>();
         while (rs.next()) {
             Brand B = new Brand();
             int a = rs.getInt(1);
             String b = rs.getString(2);
             String c = rs.getString(3);
             int d = rs.getInt(4);
             String e = rs.getString(5);
             int f = rs.getInt(6);
             B.setId(a);
             B.setBrandName(b);
             B.setComName(c);
             B.setOrdered(d);
             B.setDescription(e);
             B.setStatus(f);
             list.add(B);
        }
         System.out.println(list + " ");
         rs.close();
         pstmt.close();
         conn.close();
    }
     public static 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\\猪猪\\IdeaProjects\\JDBC\\jdbc.demo\\src\\druid.properties"));
         //4. 获取连接池对象
         DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
         //5. 获取数据库连接 Connection
         Connection conn = dataSource.getConnection();
         //2. 定义SQL
         String sql = "insert into tb_brand(brand_name, com_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. 执行SQL
         int count = pstmt.executeUpdate(); // 影响的行数
         //6. 处理结果
         System.out.println(count > 0);
         //7. 释放资源
         pstmt.close();
         conn.close();
    }
     public 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("jdbc-demo/src/druid.properties"));
         //sout(system.getproperty(user.dir))//查找当前文件路径
         //4. 获取连接池对象
         DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
         //5. 获取数据库连接 Connection
         Connection conn = dataSource.getConnection();
         //2. 定义SQL
         String sql = " update tb_brand\n" +
                 "         set brand_name = ?,\n" +
                 "         com_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. 执行SQL
         int 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
      */
     public void testDeleteById() throws Exception {
         // 接收页面提交的参数
         int id = 4;
         //1. 获取Connection
         //3. 加载配置文件
         Properties prop = new Properties();
         prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
         //4. 获取连接池对象
         DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
         //5. 获取数据库连接 Connection
         Connection conn = dataSource.getConnection();
         //2. 定义SQL
         String sql = " delete from tb_brand where id = ?";
         //3. 获取pstmt对象
         PreparedStatement pstmt = conn.prepareStatement(sql);
         //4. 设置参数
         pstmt.setInt(1,id);
         //5. 执行SQL
         int count = pstmt.executeUpdate(); // 影响的行数
         //6. 处理结果
         System.out.println(count > 0);
         //7. 释放资源
         pstmt.close();
         conn.close();
    }
 }
 //快捷键 alt 鼠标左键,控制多列一起操作
 class Brand{
   private Integer  id;//建议使用包装类型
   private String  brandName;
   private String  comName;
   private Integer ordered;
   private String  description;
   private Integer   status;
     public Brand(int id, String brandName, String comName, int ordered, String description, int status) {
         this.id = id;
         this.brandName = brandName;
         this.comName = comName;
         this.ordered = ordered;
         this.description = description;
         this.status = status;
    }
     public Brand() {
    }
     public int getId() {
         return id;
    }
     public void setId(int id) {
         this.id = id;
    }
     public String getBrandName() {
         return brandName;
    }
     public void setBrandName(String brandName) {
         this.brandName = brandName;
    }
     public String getComName() {
         return comName;
    }
     public void setComName(String comName) {
         this.comName = comName;
    }
     public int getOrdered() {
         return ordered;
    }
     public void setOrdered(int ordered) {
         this.ordered = ordered;
    }
     public String getDescription() {
         return description;
    }
     public void setDescription(String description) {
         this.description = description;
    }
     public int getStatus() {
         return status;
    }
     public void setStatus(int status) {
         this.status = status;
    }
     @Override
     public String toString() {
         return
                 "id=" + id +
                 ", brandName='" + brandName + '\'' +
                 ", comName='" + comName + '\'' +
                 ", ordered=" + ordered +
                 ", description='" + description + '\'' +
                 ", status=" + status;
    }
}

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇