java连接mysql

简单说明:

jdbc(Java Data Base Connectivity, java数据库连接)是一种用于执行sql语句的java API

mysql按照java提供的jdbc接口开发了相关的连接驱动(mysql-connector-java.jar,  一大堆java类), 通过使用这个jar包中的类,

可以通过java来操作mysql数据库;


注:需要导入mysql-connector-java.jar  (资源在网上下载)


基本的连接操作:

import java.sql.Connection;
import java.sql.DriverManager;


public class Conn {
	public static Connection getConnection() throws Exception{
		//	1.定义驱动程序名
		String driver = "com.mysql.jdbc.Driver";
		//	2.定义连接串数据库名
		String url = "jdbc:mysql://localhost/databaseName?characterEncoding=GBK";  //注:databaseName是连接的数据库名称;
		//	3.加载驱动
		Class.forName(driver);  // Class.forName(driver)为加载驱动 可以理解为 new driver();
		//	4.创建连接	
		Connection conn = DriverManager.getConnection(url, "?", "?"); 
				//第一个?填入需要连接的mysql用户名,一般默认为root, 第二个?填入连接mysql用户的密码;
		return conn;
	}
}


上面的连接mysql的方法不够高效:  原因在于 每次获取connection 都需要创建String driver, String url, 加载驱动; 通过改成静态成员只用创建一次即可:

drivermanager.getconnection();  获取连接结果之后与当前线程进行绑定,防止重复获取数据库连接;


代码如下:

import java.sql.*;

public final class dbUtils {
	
	private dbUtils(){};  // 私有构造成员;
	
	private static String url = "jdbc:mysql://localhost/databaseName?characterEncoding=GBK";  // databaseName数据库名称;
	private static String driver = "com.mysql.jdbc.Driver";
	
	//线程副本
	private static ThreadLocal<Connection> threadLocal = new ThreadLocal<>();
	
	static {
		try{
			Class.forName(driver);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public static Connection getConn() throws Exception{
		Connection conn = threadLocal.get();
		if(conn == null){
			conn = DriverManager.getConnection(url, "root", "*****");   // ****** 输入对应密码
			//将链接与当前线程通过线程副本建立绑定
			threadLocal.set(conn);
		}
		return conn;
	}
	
	public static PreparedStatement getPstm(String sql) throws Exception{
		return getConn().prepareStatement(sql);
	}
	// 在程序结束时需要解除线程副本的绑定;
	public static void close(){  
		Connection conn = threadLocal.get();
		if(conn != null){
			try{
				threadLocal.set(null);
				conn.close();
			//	System.out.println("连接关闭");
			}catch(Exception e){
				e.printStackTrace();
			}
		}
	}
	
}


增删改查操作 可以参考:

点击打开链接


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值