JDBC能够完成下列三件事:
与一个数据库建立连接(connection)。
向数据库发送SQL语句(statement)。
与一个数据库建立连接(connection)。
向数据库发送SQL语句(statement)。
处理数据库返回的结果(resultset)。
/**
* 数据库连接
* @author lixiyu
*/
public class ConnectDB {
/**
* 获取数据库连接
* @return Connection对象
*/
public static Connection getConnection(){
Connection conn = null;
try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接url
String url = "jdbc:mysql://127.0.0.1:3306/test";
// 获取数据库连接
conn = DriverManager.getConnection(url, "root", "123456");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库连接
* @param conn Connection对象
*/
public static void closeConnection(Connection conn){
// 判断conn是否为空
if(conn != null){
try {
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/**
* 添加用户
* @param user 用户对象
*/
public void saveUser(User user){
// 获取数据库连接Connection对象
Connection conn = ConnectDB.getConnection();
// 插入用户注册信息的SQL语句
String sql = "insert into tb_user(username,password,sex,tel,photo,email) values(?,?,?,?,?,?)";
try {
// 获取PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 对SQL语句的占位符参数进行动态赋值
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ps.setString(3, user.getSex());
ps.setString(4, user.getTel());
ps.setString(5, user.getPhoto());
ps.setString(6, user.getEmail());
// 执行更新操作
ps.executeUpdate();
// 释放此 PreparedStatement 对象的数据库和 JDBC 资源
ps.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
// 关闭数据库连接
ConnectDB.closeConnection(conn);
}
}