idea导入jar包和源码
ctrl+shift+alt+S打开Project Structure
基础操作
import com.mysql.jdbc.Driver;
import java.sql.*;
import java.util.Date;
import java.util.Properties;
public class JDBCTest01 {
public static void main(String[] args) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
//1.注册驱动,使用mysql驱动(注册驱动,创建连接)
//DriverManager.registerDriver(new Driver());不建议使用,原因:注册两次驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接
//方法一:
/*String url = "jdbc:mysql://localhost:3306/mydb1";
String user = "root";
String password = "123456";
Connection con = DriverManager.getConnection(url, user, password);*/
//方法二:
/*String url = "jdbc:mysql://localhost:3306/mydb1?user=root&password=123456";
Connection con = DriverManager.getConnection(url);*/
//方法三:
String url = "jdbc:mysql://localhost:3306/mydb1";
Properties pro = new Properties();
pro.put("user", "root");
pro.put("password", "123456");
//路径简写:默认本机mysql
//String url = "jdbc:mysql:///mydb1";
con = DriverManager.getConnection(url, pro);
//3.得到执行sql语句的Statement对象
st = con.createStatement();
//4.执行sql语句,并返回结果
rs = st.executeQuery("select * from user ;");
//5.处理结果
while (rs.next()) {
/*//根据列的索引获取每一列的数据
System.out.print(rs.getObject(1));
System.out.print(rs.getObject(2));
System.out.print(rs.getObject(3));
System.out.print(rs.getObject(4));
System.out.print(rs.getObject(5));
System.out.println();*/
//根据列明来获取每一列的数据
/* System.out.print(rs.getObject("id"));
System.out.print(rs.getObject("name"));
System.out.print(rs.getObject("password"));
System.out.print(rs.getObject("email"));
System.out.print(rs.getObject("birthday"));
System.out.println();*/
//getObject将数据类型转换为Object类型,通过对应的方法可以获取相应类型的数据
System.out.print(rs.getInt("id"));//mysql:int -> java:int
System.out.print(rs.getString("name"));//mysql:varchar -> java:String
System.out.print(rs.getString("password"));//mysql:varchar -> java:String
System.out.print(rs.getString("email"));//mysql:varchar -> java:String
System.out.print(rs.getDate("birthday"));
//getDate方法属于java.sql.Date(继承自java.util.Date)
System.out.println();
}
/*boolean next() 将光标从当前位置向前移一行
boolean previous() 将光标移动到此 ResultSet 对象的上一行
boolean absolute(int row) 参数是当前行的索引,从1开始 根据行的索引定位移动的指定索引行
void afterLast() 将光标移动到末尾,正好位于最后一行之后
void beforeFirst() 将光标移动到开头,正好位于第一行之前*/
} catch (Exception e) {
} finally {
//6.关闭资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}