1.获得数据库连接是操作数据库的第一步,是应用程序和数据库的一个“握手”过程
2数据库打开的连接数是有限的,所以连接使用完成需要关闭
3.获得数据库连接的步骤
1)Class.forName("com.mysql.jdbc.Driver");
2)DriverManager获得连接
-DriverManager是获得数据库连接的一个工厂(实例化的作用)
DriveManager.getConnection("jdbc:mysql://localhost:3306/my_db","root","123456");
4.实例
为了在以后修改用户名和密码,而不修改程序,可以将数据库配置信息写到配置文件中
配置文件名称为:config.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/Geek99DB
username=root
password=123456
数据库连接的java类名称为DBUtil.java
package com.po;
import java.io.FileReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil {
private static String driver;
private static String url;
private static String username;
private static String password;
static
{
Properties prop=new Properties();
Reader in;
try {
in = new FileReader("src\\config.properties");
prop.load(in);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver=prop.getProperty("driver");
url=prop.getProperty("url");
username=prop.getProperty("username");
password=prop.getProperty("password");
}
public static Connection open()
{
try {
Class.forName(driver);
return DriverManager.getConnection(url,username,password);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void close(Connection conn)
{
if(conn!=null)
{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
遍历数据库的内容的类名称为test,java
package com.po;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection conn =DBUtil.open();
String sql="select * from customertbl;";
try {
Statement stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
int id=rs.getInt(1);
String name=rs.getString(2);
String email=rs.getString(3);
System.out.println(id+","+name+","+email);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if(conn!=null)
{
DBUtil.close(conn);
}
}
}
}