1. jdbc介绍
JDBC是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2.jdbc代码实现
首先要下载并导入jar包,https://dev.mysql.com/downloads/connector/j/
public static void main(String[] args) throws ClassNotFoundException {
//注册驱动:告诉程序该使用哪一个数据库驱动jar
/*在com.mysql.jdbc.Driver类中存在静态代码块
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
*/
Class.forName("com.mysql.jdbc.Driver"); //mysql5之后的驱动jar包可以省略注册驱动的步骤。
Connection conn = null;
Statement statement=null;
try {
//获取数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql:/IP地址:端口号/数据库名称", "mysql账号", "mysql密码");
//定义sql语句
String sql="update account set balance=500 where id=1";
//获取执行sql语句的对象 Statement
statement = conn.createStatement();
//执行sql
statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally{
//释放资源
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3.JdbcUtil
3.1 编写配置文件
在src下创建jdbc.properties文件
url=jdbc:mysql://IP地址:端口号/数据库名称
username=root
password=123456
driver=com.mysql.jdbc.Driver
3.2 编写工具类
public class JDBCUtils {
private static String url;
private static String username;
private static String password;
private static String driver;
//文件的读取,只需要读取一次即可拿到这些值.使用静态代码块
static {
try {
//创建Properties集合类
Properties pro = new Properties();
//获取src路径下的文件的方式 -> ClassLoader 类加载器
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
URL resource = classLoader.getResource("jdbc.properties");
String path=resource.getPath();
//加载文件
pro.load(new FileReader(path));
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
//注册驱动
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
//释放资源
public static void close(Statement statement, Connection conn) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//释放资源方法重载
public static void close(ResultSet rs, Statement statement, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}