JAVA连接数据库
一、连接数据库
1.连接池连接
JdbcMysql的代码如下(示例):
import org.apache.commons.dbcp.BasicDataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class JdbcMysql {
private static Properties p = null;
private static InputStream in = null;
//1.私有化构造函数
private JdbcMysql(){
}
//2.因为现在使用饿汉单例模式,所以立马声明一个JdbcMysql对象,注意修饰符为 private final static
private final static JdbcMysql jdbcMysqlObject = new JdbcMysql();
//3.声明一个方法来获取jdbcMysqlObject对象
public static JdbcMysql returnOnlyObject(){
return jdbcMysqlObject;
}
//加载配置文件的信息(将代码写在静态代码块里面)
static {
in = JdbcMysql.class.getClassLoader().getResourceAsStream("jdbc.properties");
p = new Properties();
try {
p.load(in);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(in!=null){
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//使用连接池的方式连接数据库,并返回连接
public static Connection getCon(){
Connection con = null;
//1.得到连接池的数据源
BasicDataSource dataSource = new BasicDataSource();
//2.配置四大参数在数据库里面
dataSource.setDriverClassName(p.getProperty("driverclass"));
dataSource.setUrl(p.getProperty("url"));
dataSource.setUsername(p.getProperty("user"));
dataSource.setPassword(p.getProperty("password"));
//还可以配置一些连接池的信息
//设置连接池里面的最大活跃连接数
dataSource.setMaxActive(20);
//设置最大的等待时间
dataSource.setMaxWait(20);
//3.返回连接
try {
con = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}finally {
return con;
}
//在连接池里面的close:将连接归还给池
//con.close();;
}
//测试一下
public static void main(String[] args) {
Connection c = JdbcMysql.getCon();
System.out.println(c);
}
//关闭各种资源
public static void close(Statement st, PreparedStatement ps, ResultSet rs){
try {
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(ps!=null){
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
jdbc.properties的代码如下(示例):
driverclass = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/login
user = root
password = 1234
//这里的代码需要自己修改
2.简单连接
JdbcMysql的代码如下(示例):
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JdbcUtil {
private static Properties properties = new Properties();
static {
try(InputStream inputStream = JdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties")){
properties.load(inputStream);
Class.forName(properties.getProperty("driver"));
}catch (IOException | ClassNotFoundException e){
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(properties.getProperty("url"),
properties.getProperty("username"), properties.getProperty("password"));
}
}
jdbc.properties的代码如下(示例):
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/login
user = root
password = 1234
//这里的代码需要自己修改
3.数据源连接
JDBCUtils的代码如下(示例):
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 prop = new Properties();
prop.load(JDBCUtils.class.getClassLoader().getResourceAsStream("config.properties"));
ds = DruidDataSourceFactory.createDataSource(prop);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public static DataSource getDataSource() {
return ds;
}
public static void close(ResultSet rs, Statement stmt, Connection conn ) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close( Statement stmt,Connection conn ) {
close(null,stmt,conn);
}
}
config.properties的代码如下(示例):
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/login?characterEncoding=utf8
username=root
password=1234
//这里的代码需要自己修改
3.Jar包差什么导什么
这里好像放不了文件