jdbc连接MySQL以前用的真心感觉好牛啊,终于可以用java操作数据库了,想当年我写jdbc的连接可6了,但今天一想,竟然都有一点忘了,特意在写一下,赶紧记下来,以后要是又忘了好能找着;
下面的是获取jdbc连接首先要加载静态代码块,然后在获取Connection连接,详见下面的注释
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcUtils {
//加载静态代码块
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static Connection conn;
public static Connection getConnection() throws SQLException {
//获取连接数据库对象
String url = "jdbc:mysql://localhost:3306/minioj";
String user = "root";
String password = "root";
if (conn == null || conn.isClosed())
conn=DriverManager.getConnection(url, user, password);
return conn;
}
//关闭资源
public static void close(Connection conn, PreparedStatement ps, ResultSet rs) throws SQLException {
if (conn != null ) {
conn.close();
}
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
}
}
插入数据
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.chen.MiniOj.Utils.JdbcUtils;
public class SubmitPro {
private Connection conn;
private PreparedStatement ps;
private ResultSet rs;
public void insertInformation(String SubmitTime,String JudgeStatus,
String ProID,String ExeTime,String Length,String Language,String Author) {
try {
conn = JdbcUtils.getConnection();
String sql = "insert into Problem(SubmitTime,JudgeStatus,"
+ "ProID,ExeTime,Length,Language,Author) "
+ "values (?,?,?,?,?,?,?)";
ps = conn.prepareStatement(sql);
//给?赋值
ps.setString(1, SubmitTime);
ps.setString(2, JudgeStatus);
ps.setString(3, ProID);
ps.setString(4, ExeTime);
ps.setString(5, Length);
ps.setString(6, Language);
ps.setString(7, Author);
int c = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭资源
try {
JdbcUtils.close(conn, ps, rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
下面的是查询数据,经常使用在登录上
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.chen.MiniOj.Utils.JdbcUtils;
public class UserServiceImpl {
private Connection conn;
private PreparedStatement ps;
private ResultSet rs;
public boolean CheckLogin(String username, String password) {
boolean flag = false;
try {
conn = JdbcUtils.getConnection();
String sql = "select username,password from user where username=? and password=?";
ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
if (rs.next()) {
flag = true;
}
return flag;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return flag;
} finally {
try {
JdbcUtils.close(conn, ps, rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
其实应该有增删改查的,先来这两个吧