JDBC基础Statement

#JDBC是sun公司推出,整合了所有数据库的一种接口(JAVA语言),各个数据库接口的具体实现由数据库厂商提供
#所以,我们使用JDBC时,需要下载各个厂商提供的jar包,例如mysql_jar包,并将包导入

···使用JDBC

1.与数据库建立链接

  #与数据库建立链接需要四大参数
    1.类名 2.数据库url 3.username 4.password

    # 第一步称之为加载驱动//例如mysql为Class.Forname(com.mysql.jdbc.Driver),其中类名是JDBC规定的

  # 第二步是建立连接对象
  #例如 Connection con = DriverManager.getConnection("url", "username", "password")
    # 数据库的url是指告诉驱动,你所要链接的数据库是哪一个
    # 例如:"jdbc:mysql://localhost:3306/sql_name"
    # 这样的url是必须背会,通用公式为"驱动接口:数据库厂商://地址:端口:数据库名称"
    # 其后的usernam和password是用户定义的用户名和密码
    **注最新版的sql8.0的类名格式是jdbc.jc.mysql.Driver
    **因为mysql8.0默认时区是美国,使用我们需要调整时区才能正常链接,否则会出现报错

2.对数据库进行增、删、改(Statement)

  #通过Connection创建Statement
    #例如: Statement statement = con.creatStatement();

  #Statement可以调用int executeUpdate(String sql)来实现DDl、DML语句
  # String sql = "INSERT INTO STU VALUES('ITCAST_0003', 'wangwu', 83, 'male')";
  # String sql = "UPDATE STU SET name = 'zhaoliu' age = 82 SEX = 'malel' WHERE NUMBER = 'ITCAST0003'";
  # String sql = "DELETE * FROM STU";
  # statement.executeUpdate(sql); //增删改都可以以这样的方式进行

3.对数据库进行查询操作(Statement)

  #对数据库的查询大体分为四步
    #1. 建立链接,获取Connection对象
    #2. 获取Statement对象
    #3. 获取ResultSet对象,解析ResultSet对象,得到值
      **获取ResultSet对象
      **ResultSet res = statement.executeQuery();
    #4. 关闭资源,connection,statement,resultset三个对象都得关闭
      **解析ResultSet对象的方法
        **对于我们要找的内容,在数据库中以表格的形式存在,我们只要确定他的行与列就可以找到
        **我们使用ResultSet.next()方法来确定行,使用ResulSet.getxxxx()方法来确定列
        **关于ResultSet.getxxxx()是ResuSet对象提供的一个方法集合有以下方法:
          ** >ResultSet.getint(int i) //i是列数,也可以使用字符串
          ** >ResultSet.getString("列名")
          ** >ResultSet.getDouble()
          ** >ResultSet.getDate()
          ** >ResultSet.gettime()
          ** >ResultSet.getObject()

4.preparedStatement的使用

  ..使用preparedStatementd的必要性及好处

           1.防止SQl注入
                   2.可维护性、可读性性好
                   3.效率高
        
        #preparedStament,称为预编译语句,故名思意,在运行时preparedStatement对象是已经编译过的语句不需要DBMS编译,所以他比普通的Statement效率高
        #preparedStatement的使用方法见下述代码
            

 1             static public boolean funl(String username, String user_password) throws SQLException , ClassNotFoundException{
 2             //定义四大参数
 3             String url = "jdbc:mysql://localhost:3306/mysql3?serverTimezone=GMT%2B8";
 4             String user = "root";
 5             String password = "123456";
 6     
 7               //加载类名
 8             Class.forName("com.mysql.cj.jdbc.Driver");
 9     
10               //获取链接
11             Connection connection = DriverManager.getConnection(url, user, password);
12     
13               //创建一个sqk语句,其中‘?’为占位符
14             String sql = "SELECT * FROM STU WHERE number = ? AND name = ?";
15     
16               //创建PreparedStatement对象,这里可以看到PreparedStatement对象自创建就与一个sql语句对应!
17             PreparedStatement preparedStatement = connection.prepareStatement(sql);
18     
19               //定义其中的参数,数量要与sql语句中的占位符‘?’相同,否贼会报错
20             preparedStatement.setString(1,username);
21             preparedStatement.setString(1,user_password);
22       
23               //获得结果集
24             ResultSet resultSet = preparedStatement.executeQuery();
25             return resultSet.next();
26         }

 

posted @ 2019-08-19 14:47  zhtttty  阅读(266)  评论(0编辑  收藏  举报