レベル 1: JDBC 接続データベース
package jdbc;
import java.sql.*;
public class jdbcConn {
public static void getConn() {
try {
// 1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
/********** End **********/
/********** Begin **********/
Connection conn = null;
Statement statement = null;
try {
// 2.建立连接并创建数据库和表
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "root", "123123");
String sql1 = "drop database if exists mysql_db;";
String sql2 = "create database mysql_db;";
statement = conn.createStatement();
statement.execute(sql1);
statement.execute(sql2);
statement.execute("use mysql_db");
String sql3 = "create table student(id int not null,name varchar(20),sex varchar(4),age int)";
statement.execute(sql3);
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} finally {
try {
if (statement != null)
statement.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
レベル 2: テーブル内のデータに対する JDBC 操作
package jdbc;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class jdbcInsert {
public static void insert() {
/********** Begin **********/
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
/********** End **********/
Connection conn = null;
PreparedStatement statement = null;
/********** Begin **********/
// 连接并插入数据
try {
String url = "jdbc:mysql://localhost:3306/mysql_db?useUnicode=true&characterEncoding=utf8";
String user = "root";
String password = "123123";
conn = DriverManager.getConnection(url, user, password);
String sql1 = "insert into student(id,name,sex,age) values (1,'张三','男',19),(2,'李四','女',18),(3,'王五','男',20)";
statement = conn.prepareStatement(sql1);
statement.executeUpdate();
String sql2 = "select * from student";
ResultSet rs = statement.executeQuery(sql2);
Student student = null;
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
String sex = rs.getString(3);
int age = rs.getInt(4);
student = new Student(id, name, sex, age);
System.out.println(
student.getId() + " " + student.getName() + " " + student.getSex() + " " + student.getAge());
}
} catch (SQLException e) {
e.printStackTrace();
}
/********** End **********/
finally {
try {
if (statement != null)
statement.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
レベル 3: JDBC トランザクション
package jdbc;
import java.sql.*;
public class jdbcTransaction {
public static void transaction(){
try {
Class.forName("com.mysql.jdbc.Driver" );
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection conn = null;
PreparedStatement ps = null;
/********** Begin **********/
//连接数据库并开启事务
try {
String url="jdbc:mysql://localhost:3306/mysql_db?useUnicode=true&characterEncoding=utf8";
conn =DriverManager.getConnection(url,"root","123123");
conn.setAutoCommit(false);
String sql1="insert into student(id,name,sex,age) values(4,'赵六','女',21)";
ps=conn.prepareStatement(sql1);
ps.executeUpdate();
conn.commit();
String sql2="daj;ljd";
ps=conn.prepareStatement(sql2);
ps.executeUpdate();
conn.commit();
String sql3="select * from student";
ResultSet rs=ps.executeQuery(sql3);
Student student = null;
while(rs.next())
{
int id=rs.getInt(1);
String name=rs.getString(2);
String sex =rs.getString(3);
int age=rs.getInt(4);
student =new Student(id,name,sex,age);
System.out.println(student.getId() + " " + student.getName() + " " + student.getSex() + " " + student.getAge());
}
} catch (SQLException e) {
try {
//事务回滚
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
/********** End **********/
finally {
try {
if(ps!=null)
ps.close();
if (conn != null)
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
}