发表于: 2018-04-06 22:07:07

1 698


今日完成:

1.jdbc数据库操作语句学习



* 对数据库进行操作
* 1.适应connection对象创建Statement对象
* 2.使用statement对象执行SQL命令
* 3.从上一步骤返回的ResultSet对象中提取执行结果
*connection接口有三个方法可以用来创建向数据库发送SQL语句的对象
* createStatement,用于简单SQL语句
* Statement stmt = con.createStatement();
* prepareStatement,用于带有一个或多个参数的SQL语句,在语句执行 前,这些参数将被赋值
* prepareCall 用于调用数据库中储存过程
* Statement提供了三种执行语句的方法
* executeQuery(不会修改数据库的内容)
* 用于产生单个结果集,例如:SELECT语句
* ResultSet rs = stmt.executeQuery("Select*From person");
* executeUpdate(用于修改修改数据库的内容)
* 用于执行INSERT/UPDATE或DELETE语句,以及CREATE TABLE stmt.executeUpdate("DELETE FROM Person WHERE Name='李四'");
* 返回值是一个整数,用来表示受影响的行数,CREATE TABLE 返回值为0
* Execute
* 用于执行多个结果的返回集
*------提取执行结果
* 1.查询结果作为结果集(ResultSet)对象返回后,我们可以从ResultSet对象中提取结果
*使用next方法
* ResultSet对象中含有检索出来的行,其中有一个指示器,指向当前可操作行
* 方法next的功能是将指示器下移一行
*

import java.sql.*;
public class JDBCtest1 {
public static void main(String[] args) throws Exception {
String driverName = "com.mysql.jdbc.Driver";//数据库引擎
       String dbURL = "jdbc:mysql://127.0.0.1:3306/db1";//数据源
       String Name = "root";
       String Pwd = "******";
       Connection con = null;    //连接connection和statement对象,准备好对象名,设置空值
       Statement stmt = null;
       ResultSet rs = null;          //设置结果输出对象,设置空值
       Class.forName(driverName);    //启用数据库引擎
       con = DriverManager.getConnection(dbURL, Name, Pwd);   //连接数据库
       stmt = con.createStatement();     //创建Statement对象
       rs = stmt.executeQuery("SELECT *FROM Person");       //不会修改数据库内容
       while (rs.next()) { //显示所有记录的ID和姓名
           System.out.print(rs.getInt(("id") + ""));
           System.out.print(rs.getString(("name") + ""));    //从字段取值
       }
stmt.executeUpdate("INSERT INTO Person VALUES(null,'周',13,2)");       //插入表格
       rs = stmt.executeQuery("SELECT *FROM Person");       //SQL语句应严格符合SQL语法
       while (rs.next()) { //显示所有记录的ID和姓名
           System.out.print(rs.getInt(("id") + ""));
           System.out.print(rs.getString(("name") + ""));    //从字段取值
       }
stmt.executeUpdate("DELETE FROM Person WHERE id=3");       //删除表格
       rs = stmt.executeQuery("SELECT *FROM Person");       //SQL语句应严格符合SQL语法
       while (rs.next()) { //显示所有记录的ID和姓名
           System.out.print(rs.getInt(("id") + ""));
           System.out.print(rs.getString(("name") + ""));    //从字段取值
       }
stmt.close();         //关闭语句
       con.close();          //关闭连接
   }
}

插入,查询,筛选操作成功修改表格

PrepareStatement参数化输入语句学习

preparestatement与statement最大区别就是与语法格式不同。

createstatement

  1. String sql = "select * from users where  username= '"+username+"' and userpwd='"+userpwd+"'";  
  2. stmt = conn.createStatement();  
  3. rs = stmt.executeQuery(sql);  

preparestatement

  1. String sql = "select * from users where  username=? and userpwd=?";  
  2. pstmt = conn.prepareStatement(sql);  
  3. pstmt.setString(1, username);  
  4. pstmt.setString(2, userpwd);  
  5. rs = pstmt.executeQuery();  

preparestatement把输入值从SQL语句中提取了出来,提高了数据录入的灵活性,同时避免直接修改数据库,保证安全性。

明日计划:

争取实现DAO连接jdbc

遇到困难:unll

收获:java语句对数据库操作



返回列表 返回列表
评论

    分享到