package shiwu;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class test {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps1 = null;
PreparedStatement ps2 = null;
try {
//加载驱动类
/* Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","bjpowernode"); */
String myDriver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://127.0.0.1:3306/test";
Class.forName(myDriver);
conn= DriverManager.getConnection(url,"root","bjpowernode");
// 将自动提交设置为 false,
//若设置为 true 则数据库将会把每一次数据更新认定为一个事务并自动提交
conn.setAutoCommit(false);
ps1 = conn.prepareStatement("insert into t_user (username,pwd) values (?,?)");//?是占位符
ps1.setObject(1, "张三");
ps1.setObject(2, "666666");
ps1.execute();
System.out.println("插入一个用户张三");
try {
// 发生异常,回滚在本事务中的操做
conn.rollback();
// 事务回滚:转账的两步操作完全撤销
conn.close();
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
ps2 = conn.prepareStatement("insert into t_user (username,pwd) values (?)");
ps2.setObject(1, "李四");
ps2.setObject(2, "123456");
ps2.execute();
System.out.println("插入一个用户李四");
// conn.commit();//提交事务
} catch (ClassNotFoundException e) {
e.printStackTrace();
try {
} catch (Exception e1) {
e1.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(ps1!=null){
ps1.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
注意:需要引入mysql-connector-java-5.6-bin.jar