JDBC步骤:
1.加载驱动
2.获取连接
3.创建执行sql语句对象
4.执行sql
5.处理结果集
6.释放资源
public Admin login(String name, String pwd) {
Admin admin = null;
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 获取连接
Class.forName("com.mysql.jdbc.Driver");
// 加载驱动
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/eleme", "root", "123456");
//eleme:数据库名;root:用户名;123456:密码
// 创建执行sql语句对象
String sql = "select * from admin where adminName = ? and password = ?";
ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pwd);
// 执行sql语句
rs = ps.executeQuery();
// 处理结果集
while (rs.next()) {
admin = new Admin();
admin.setAdminName(rs.getString("adminName"));
admin.setPassword(rs.getString("password"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
// 先打开后释放
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return admin;
}
事务的处理
@Override
public int delBusiness(int bid) {
Connection con = JDBCUtils.getConnection();
PreparedStatement ps = null;
int row = 0;
String sql1 = "delete from food where businessId = ?";
String sql2 = "delete from business where businessId = ?";
try {
// 关闭mysql自动commit
con.setAutoCommit(false);
ps = con.prepareStatement(sql1);
ps.setInt(1, bid);
ps.executeUpdate();
ps = con.prepareStatement(sql2);
ps.setInt(1, bid);
row = ps.executeUpdate();
// 手动commit
con.commit();
} catch (SQLException e) {
row = 0;
try {
con.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
JDBCUtils.close(con, ps, null);
}
return row;
}