初学Java关于数据库的操作,当时是一脸懵逼,不知道在eclipse里写的SQL语句如何跟数据库打上交道,然后看了大牛们的经典操作之后,自己的理解和体会跟大家分享一下,有什么需要改正的,欢迎提出
在与数据库相连接的时候,首先用到了Connection对象,该对象主要是与数据库建立联系,关于数据库的连接可以参考该博客
连接完数据库,紧接着就开始了如何向数据库中传语句了
首先是prepareStatement()方法,该方法的执行是一个预编译SQL语句,也叫JDBC存储过程,
executeQuery()用于产生单个结果集的语句,返回ResultSet对象,这个方法用来执行select语句
executeUpdate()用于执行insert,delete,update等SQL语句,返回值是一个整数,表示被更新的个数
ResultSet对象有个方法是next()返回类型为loolean,意思是将光标从当前位置向前移一行
具体可以看下代码
/*
* 登录账户
*/
public boolean login(Connection con, User user) throws Exception {
String sql = "select * from user where userId = ? and password = ?";
PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1, user.getUserId());
pstmt.setString(2, user.getPassword());
ResultSet resultSet = pstmt.executeQuery();
return resultSet.next();
}
/*
* 添加用户
*/
public int insert(Connection con, User user) throws Exception {
/*
* 首先需要对数据库进行查询操作,如果数据库中已经存在该用户,则该用户无法被添加到数据库中
* 这里是查询操作,故需要用executeQuery(),对于怎删改的操作可以用executeUpdate()
*/
String sql1 = "select * from user where userId = ?";//sql语句
PreparedStatement pstmt1 = (PreparedStatement) con.prepareStatement(sql1);
pstmt1.setString(1, user.getUserId());//这里的1即为第一个问号
ResultSet rs = pstmt1.executeQuery();
if (rs.next()) {
return 0;
}
String sql = "insert into user values(?,?,?)";
PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1, user.getUserId());
pstmt.setString(2, user.getUsername());
pstmt.setString(3, user.getPassword());
return pstmt.executeUpdate();
}