JAVA连接数据库的高级方法

tech2022-07-04  161

JAVA连接数据库

一、连接数据库1.连接池连接2.简单连接3.数据源连接3.Jar包差什么导什么


一、连接数据库

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包差什么导什么

这里好像放不了文件

最新回复(0)