纯css打造立体时钟
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
By_jie

dljd_016_jdbc中使用PreparedStatement执行DQL(查询)语句

一、jdbc使用preparedStatement执行dql(查询)语句示例

  

package edu.aeon.jdbc.crud;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import edu.aeon.aeonutils.AeonJdbcUtils;
/**
 * [说明]:使用jdbc进行数据操作
 * @author aeon
 */
public class JDBC_insert {
    /**
     * 使用jdbc进行增加操作(DML)
     */
    public static void jdbc_insert(){
        Connection connection=null;
        PreparedStatement preparedStatement = null;
        try {
            connection = AeonJdbcUtils.getMySqlConnection();
            String sql="insert into user(userid,username,userpw) values (?,?,?)";
            //将sql语句进行预编译然后保存到preparedStatement对象中
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1, 10006);
            preparedStatement.setString(2, "aeon");
            preparedStatement.setString(3, "aeon");
            int rowCount = preparedStatement.executeUpdate();
            System.out.println(rowCount+"条数据被插入!");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            AeonJdbcUtils.closeDB(null, preparedStatement, connection);
        }
    }
    /**
     * 查询操作(DQL)
     * @param args
     */
    public static void jdbc_select(){
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet  resultSet = null;
        try {
            connection=AeonJdbcUtils.getMySqlConnection();
            String sql="select userid,username,userpw from user where userid > ?";
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setInt(1, 10002);
            resultSet = preparedStatement.executeQuery();
            System.out.println("用户id\t用户名\t用户密码");
            while(resultSet.next()){
            int userid=resultSet.getInt("userid");
            String username=resultSet.getString("username");
            String userpw=resultSet.getString("userpw");
            System.out.println(userid+"\t"+username+"\t"+userpw);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            AeonJdbcUtils.closeDB(resultSet, preparedStatement, connection);
        }
    }
    public static void main(String[] args) {
        //jdbc_insert();
        jdbc_select();
    }
}

数据库截图:

  

 

执行结果截图:

  

 

必须使用主键作为查询条件,启动的才是行级锁,否则依旧是表级锁,启动行级锁的目的是只有当前事务可以修改主键为x的某一条或几条记录,然后是结束事务,释放行级锁。
如何在JDBC中使用行级锁,其步骤如下:
1.关闭自动提交
2.通过执行语句select * from table_name where id in(x,y) for update;引起事务,启动行级锁,锁住x,y这两条记录
3.启动行级锁的目的就是只有当前事务才能修改x,y这两条记录。
4.结束事务,释放行级锁。

posted @ 2018-12-06 03:50  1024军团  阅读(302)  评论(0编辑  收藏  举报