JDBC比ODBC好配太多了….
1、安装jdbc驱动
2、新建工程
新建Java项目JDBC,添加jdbc驱动作为外部库。
3、连接数据库,并对数据库进行操作
连接时遇到了比较多问题,主要是数据库的url问题,顺便了解了一下JDBC的url格式:
jdbc:mysql://[host][,failoverhost…][:port]/[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]…
在连接mysql5.7时需要考虑时区问题,同时需要将ssl设为false,因此应该将url写成如下:
public static final String url = "jdbc:mysql://localhost:3306/manage?
characterEncoding=utf-8&severTimezone=UTC&useSSL=false";
同样附上代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
import com.mysql.cj.jdbc.result.ResultSetMetaData;
public class DBUtil {
public static final String URL = "jdbc:mysql://localhost:3306/manage?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false";
public static final String USER = "root";
public static final String PASSWORD = "password";
public static void main(String[] args) throws Exception {
//1.加载驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获得数据库连接
System.out.println("connecting database...");
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("connecting database successfully!");
//3.操作数据库,实现增删改查
Scanner sc = new Scanner(System.in); //sc用于获取输入
ResultSetMetaData resultMetaData;
while(true)
{
System.out.println("查询功能输入1,插入删除功能输入2:");
String command = sc.nextLine();
Statement stmt = conn.createStatement();
if(command.equals("1"))
{
command = sc.nextLine();
ResultSet rs = stmt.executeQuery(command);
//如果有数据,rs.next()返回true
while(rs.next()){
resultMetaData=(ResultSetMetaData) rs.getMetaData();
int cols = resultMetaData.getColumnCount(); //get the count of all the coulums
for (int i=1; i<= cols; i++)
{
System.out.print(rs.getString(i) + " ");
}
System.out.println();
}
System.out.println("query complete!");
}
else{
command = sc.nextLine();
stmt.executeUpdate(command); //插入
}
}
}
}