一、JDBC完成DDL操作
创建表t_student
@Test
public void testName() throws Exception {
String url = "jdbc:mysql://localhost:3306/abc";
// 1、加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2、获取连接
Connection conn = DriverManager.getConnection(url, "root", "admin");
// 3、创建语句对象(用于执行静态SQL语句)
Statement st = conn.createStatement();
// 4、执行sql语句
// 执行DDL和DML语句用 executeUpdate(String sql)方法
// 执行DQL用 executeQuery(String sql)方法
String sql = "CREATE TABLE t_student (id BIGINT PRIMARY KEY AUTO_INCREMENT ,`name` VARCHAR(20) , age INT)";
st.executeUpdate(sql);
//5、释放资源(遵循先开后关原则)
st.close();
conn.close();
}
其中第二步格式为:
connection conn = DriverManager.getConnection(“url” , “user” ,”password”);
url:表示访问数据库的地址 。 jdbc:mysql://localhost:3306/数据库名
如果url在本机,可以简写为 jdbc:mysql:///数据库名
user:表示访问数据库的账号
passwoord:表示访问数据库的密码
代码需要加入异常处理,可以优化为:
@Test
public void testCreateTable() throws Exception {
String url = "jdbc:mysql:///abc";
String sql = "CREATE TABLE t_student(id BIGINT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(20),age INT)";
Class.forName("com.mysql.jdbc.Driver");
try (
Connection conn = DriverManager.getConnection(url,"root","admin");
Statement st = conn.createStatement();
){
st.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
二、JDBC完成DML操作
向t_student表中插入一条数据:
@Test
public void testInsert() throws Exception {
String url = "jdbc:mysql:///abc";
String sql = "INSERT INTO t_student(name,age)VALUES('东方姑娘',18)";
//1、加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
Connection conn = DriverManager.getConnection(url,"root","admin");
//3、创建语句对象
Statement tr = conn.createStatement();
//4、执行sql语句
tr.executeUpdate(sql);
//5、释放资源
tr.close();
conn.close();
三、JDBC完成DQL查询操作
查询id为2的学生的信息:
@Test
public void testSelectID() throws Exception {
String url = "jdbc:mysql:///abc";
String sql = "SELECT * FROM t_student WHERE id = 2";
// 加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
Connection conn = DriverManager.getConnection(url, "root", "admin");
// 创建语句对象
Statement st = conn.createStatement();
// 执行sql语句
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
long id = rs.getLong("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id + "," + name + "," + age);
}
//释放资源
rs.close();
st.close();
conn.close();
}
查询所有人信息:
@Test
public void testAll() throws Exception {
String url = "jdbc:mysql:///abc";
String sql = "SELECT * FROM t_student";
// 加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取连接
Connection conn = DriverManager.getConnection(url, "root", "admin");
// 创建语句对象
Statement st = conn.createStatement();
// 执行sql语句
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
long id = rs.getLong("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id + "," + name + "," + age);
}
// 关闭资源
rs.close();
st.close();
conn.close();
}