发表于: 2020-02-12 23:02:14

1 1307


今天完成的事情:

* 了解jdbc连接池,连接数据库

* 了解JDBCTemplate,


目录结构

1 maven引入jar包

注意各个版本的兼容:java7,mysql5

4.0.0

<dependencies>
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>5.1.17</version>
   </dependency>
   <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
       <version>1.0.9</version>
   </dependency>
   <dependency>
       <groupId>com.mchange</groupId>
       <artifactId>mchange-commons-java</artifactId>
       <version>0.2.11</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-beans</artifactId>
       <version>4.3.16.RELEASE</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-core</artifactId>
       <version>4.3.16.RELEASE</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-jdbc</artifactId>
       <version>4.3.16.RELEASE</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-tx</artifactId>
       <version>4.3.16.RELEASE</version>
   </dependency>
   <dependency>
       <groupId>commons-logging</groupId>
       <artifactId>commons-logging</artifactId>
       <version>1.2</version>
   </dependency>
</dependencies>


2 Druid配置

druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/jnshu
username=root
password=123456
#初始化连接数量
initialSize=5
maxActive=10
maxWait=3000

3 编写连接池

JDBCUtils.java

package utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
private static DataSource ds;

   static {
try{
Properties pro = new Properties();
           pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
           ds = DruidDataSourceFactory.createDataSource(pro);
       } catch (IOException e) {
e.printStackTrace();
       } catch (Exception e) {
e.printStackTrace();
       }

}

public static Connection getConnection() throws SQLException {
return ds.getConnection();
   }

public static void close(Statement stmt, Connection conn) {
close(null,stmt,conn);
   }

public static void close(ResultSet rs, Statement stmt, Connection conn) {
if(rs != null) {
try {
rs.close();
           } catch (SQLException e) {
e.printStackTrace();
           }
}

if(stmt != null) {
try {
stmt.close();
           } catch (SQLException e) {
e.printStackTrace();
           }
}
if(conn != null) {
try {
conn.close();
           } catch (SQLException e) {
e.printStackTrace();
           }
}


}

public static DataSource getDataSource(){
return ds;
   }
}

4使用JDBCTemplate连接数据库

DruidDemo.java

package druid;

import utils.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DruidDemo {
public static void main(String[] args) {
//添加操作
       Connection conn = null;
       PreparedStatement pstmt = null;
       try{
conn = JDBCUtils.getConnection();
           String sql = "insert into t_user values(?,?,?)";
           pstmt = conn.prepareStatement(sql);
           pstmt.setInt(1,6);
           pstmt.setString(2,"jddb");
           pstmt.setString(3,"232");
           int count = pstmt.executeUpdate();
           System.out.println(count);
       } catch (SQLException e) {
e.printStackTrace();
       } finally {
JDBCUtils.close(pstmt,conn);
       }
}
}

运行




明天计划的事情:

* Mybatis连接


遇到的问题:

一些包的版本问题,出现version52.0就检查下包的版本。


收获:

从jdbc到连接池,在到spring中jdbctemplate类,简化写法,使得逻辑更关注于实现。maven也使jar包的使用变得异常简单。。



返回列表 返回列表
评论

    分享到