1.新建一个文件,以properties结尾(配置文件)
2.在配置文件中写下程序要用到的变量的值,程序可以导入配置文件。修改程序变量的值时,只需修改配置文件即可
例如:(注意:配置文件中不得有空格,变量值不得用“”引起来,语句最后不得用分号;)
driver 指示 mysql驱动的位置
url 指示连接的数据库
username 指示用户名
password 指登录的密码
配置文件示例如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/zje
username=root
password=zhujunwen
java程序变量赋值如下:
driver = prop.getProperty("driver"); // getProperty(“driver”)用于获取配置文件 driver= 后的值
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
3.写一个类DBUtil类。专门用于管理数据库的打开与关闭与初始化
DBUtil类
import java.io.FileNotFoundException;
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(); //第一步:新建一个配置文件对象
try {
Reader in = new FileReader("src\\config.properties"); //第二步:指定输入流为文件输入流
prop.load(in);
} catch (Exception e) {
e.printStackTrace();
}
driver = prop.getProperty("driver"); // getProperty(“driver”)用于获取配置文件 driver= 后的值
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
}//static
//打开(连接)数据库
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) {
e.printStackTrace();
}
}
}
src\\config.properties:为配置文件config.properties的位置,src为源码包,config.properties在src目录下
主函数main调用:(并提供对数据库的增删查找操作)
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
//CreateTable();
Insert();
//Delete();
Query();
}
//创建表
static void CreateTable()
{
Connection conn = DBUtil.open(); //连接数据库
String sql = "create table userTbl(id int primary key auto_increment,name varchar(20))";
try {
Statement stmt = conn.createStatement(); // 步骤一
stmt.execute(sql); //步骤二 执行sql语句
} catch (SQLException e) {
e.printStackTrace();
}finally
{
DBUtil.close(conn); //关闭数据库
}
}
//插入
static void Insert()
{
Connection conn = DBUtil.open();
String sql = "insert userTbl(name) values('xiaoming')";
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql); //增删查改要用 executeUpdate()
} catch (SQLException e) {
e.printStackTrace();
}finally
{
DBUtil.close(conn);
}
}
//删除
static void Delete()
{
Connection conn = DBUtil.open();
String sql = "delete from userTbl where name='xiaoming'";
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql); //增删查改要用 executeUpdate()
} catch (SQLException e) {
e.printStackTrace();
}finally
{
DBUtil.close(conn);
}
}
//遍历1
static void Query()
{
Connection conn = DBUtil.open();
String sql = "select * from userTbl";
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql); //遍历有结果返回,要用 executeQuery()
while(rs.next())
{
int id = rs.getInt(1);
String name = rs.getString(2);
System.out.println("id:"+id+" name:"+name);
}
} catch (SQLException e) {
e.printStackTrace();
}finally
{
DBUtil.close(conn);
}
}