Java中SQL语句传向数据库

95 阅读1分钟

初学Java关于数据库的操作,当时是一脸懵逼,不知道在eclipse里写的SQL语句如何跟数据库打上交道,然后看了大牛们的经典操作之后,自己的理解和体会跟大家分享一下,有什么需要改正的,欢迎提出

在与数据库相连接的时候,首先用到了Connection对象,该对象主要是与数据库建立联系,关于数据库的连接可以参考该博客

blog.csdn.net/HeZhiYing_/…

连接完数据库,紧接着就开始了如何向数据库中传语句了

首先是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();
	}