如何连接数据库

目录

1. 创建maven 项目

命名为resume_fonted
在这里插入图片描述
a.个人简历为例:(resume_fonted)
在这里插入图片描述
b.默认文件配置
在这里插入图片描述

c.项目目录
在这里插入图片描述

2.导入maven依赖:

拓展:
什么是POM?
POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。

a.在pom.xml里面导入依赖:``

在这里插入图片描述

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.10</version>
    </dependency>
    <dependency>
      <groupId>commons-dbutils</groupId>
      <artifactId>commons-dbutils</artifactId>
      <version>1.7</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.62</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.13</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.17</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.28</version>
    </dependency>
    

b.改java版本
一个是pom.xml ,一个是setting里面的,另一个是project strcture里面的。

  • 在intellij iead pom.xml.
    在这里插入图片描述
  • 注意:按f4时候要鼠标光标在代码文件夹上面,否则不会出现下图:

在这里插入图片描述
- 在File setting 下面:
在这里插入图片描述

配置MySQL文件属性

1.创建目录resoures:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2.然后在里面导入相关配置信息
数据库名称:db_resume

在这里插入图片描述

mysql.properties:
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_resume?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&failOverReadOnly=false
username=root
password=123456

initialSize=10
maxActive=20
maxWait=6000
``    这里的密码和用户是自己的而定

里面有几个单词的意义如下:

//定义初始连接数  
    initialSize=0  
    //定义最大连接数  
    maxActive=20  
    //定义最大空闲  
    maxIdle=20  
    //定义最小空闲  
    minIdle=1  
    //定义最长等待时间  
    maxWait=60000 

log4j.properities:

### 设置###
log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

实现连接java代码

DBUtil.java

package com.hc;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.dbutils.QueryRunner;

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

public class DBUtil {
    private static final ThreadLocal<Connection> threadLocal = new ThreadLocal<>();
    private static DataSource dataSource = null;

    static {    //配置文件加载,只执行一次
        try (InputStream is = DBUtil.class.getResourceAsStream("/mysql.properties");) {
            Properties properties = new Properties();
            properties.load(is);
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e1) {
            throw new RuntimeException("读取配置文件异常", e1);
        }
    }
    public static Connection getConnection() {    //获取连接
        Connection conn = null;
        try {
            conn = threadLocal.get();//从当前线程获得conn
            if (conn == null) {
                conn = dataSource.getConnection();
                threadLocal.set(conn);
            }
        } catch (Exception e) {
            throw new RuntimeException("连接数据库异常", e);
        }
        return conn;
    }
    public  static QueryRunner getQueryRunner(){
        return  new QueryRunner(dataSource);
    }
	public static void release(ResultSet rs, Statement stmt, Connection conn) {
		try { // 建议采用这种形式来释放资源,因为finally里面的一定会被释放
			if (rs != null) {
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (stmt != null) {
					stmt.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				if (conn != null) {
					try {
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
		}
	}

}

测试代码:

import org.junit.Test;

import java.sql.Connection;

import static com.hc.DBUtil.getConnection;

public class cc {
    public static void main(String[] args) {
        Connection conn = getConnection();
        System.out.println(conn);
    }
}

整个连接的总目录:
在这里插入图片描述
在这里插入图片描述
成功就点个赞吧!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐