第6章 JDBC 课后作业:

1.在MySQL中创建一个student表,向其中添加一条或多条记录,然后在控制台输出目前表中记录的总数。

package homework;

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

public class Dome {
    public static void main(String[] args) {
        Connection con = null;
        PreparedStatement pre = null;
        Statement stmt=null;
        ResultSet rs=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");//1.加载驱动
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/inquire?characterEncoding=utf-8","root","123");//2.建立连接
            String sql = "insert into student(id,name) values(?,?)";//3.插入数据  values值为默认值
            pre=con.prepareStatement(sql);
            pre.setInt(1, 1);
            pre.setString(2, "郭振");
            pre.executeUpdate();
            pre.setInt(1, 2);
            pre.setString(2, "小黄");
            pre.executeUpdate();
            pre.setInt(1, 3);
            pre.setString(2, "小涛");
            pre.executeUpdate();
            pre.setInt(1, 4);
            pre.setString(2, "小军");
            pre.executeUpdate();
            pre.setInt(1, 5);
            pre.setString(2, "小锋");
            pre.executeUpdate();
            System.out.println("更新数据成功!");
            stmt=con.createStatement();
            rs= stmt.executeQuery("select count(*) from student");//查询sql语句
            rs.next();                                            //下一个节点位置
            int row= rs.getInt(1);                                //获得整形的指定序号的值,并统计。
            System.out.println("总共有"+row+"条记录");
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                rs.close();  //关闭流
                stmt.close();
                pre.close();
                con.close();
            }catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    }
}

2.查询第3题中创建的student表中的所有记录,并在控制台输出每行数据,包括id值,name值。

package homework;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Dome1 {
    public static void main(String[] args) {
       Connection conn=null;
       Statement stmt=null;
       ResultSet rs=null;
       try { 
           //1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.建立连接
        conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/inquire","root","123");
        //查询并输出学生信息
        stmt=conn.createStatement();
        rs=stmt.executeQuery("select*from student");
        System.out.println("\t\t\t               学生表信息:");
        System.out.println("\t\t\t编号\t\t姓名");
        while(rs.next()) {
            System.out.print("\t\t\t"+rs.getInt("id")+"\t");
            System.out.print("\t"+rs.getString("name")+"\n");
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        try {
            rs.close(); //关闭结果集,Statement和数据库连接
            stmt.close();
            conn.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    }
}
 

3.宠物主人根据控制台提示输入用户名和密码,如果输入正确,输出"用户登录成功edS否则输出"用户登录失败!"使用PreparedStatement接口实现该操作,避免SQL注入攻击。

package homework;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

public class Doem3 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection conn=null;
        ResultSet rs=null;
        PreparedStatement pre=null;
        Scanner input =new Scanner(System.in);//键盘输入
        System.out.print("请输入学生编号:");
        int id=input.nextInt();
        System.out.print("请输入密码:");
        String password=input.next();
        //1.加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2.建立连接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/inquire","root","123");
            //3.判断宠物主人登录是否成功
//            stmt=conn.createStatement();
            String sql="select*from student where id=? and password=?";
             pre=conn.prepareStatement(sql);
             pre.setInt(1, id);
             pre.setString(2, password);
            rs=pre.executeQuery();
            if(rs.next()) {
                System.out.println("登录成功,欢迎您!");
            }else {
                System.out.println("登录失败,请重新输入!");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            try {
                pre.cancel();
                rs.close();
                conn.close();
            }catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    }
}
 

第二种方式:

package homework;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

public class Doem3 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs=null;
        PreparedStatement pre=null;
        Scanner input =new Scanner(System.in);//键盘输入
        System.out.print("请输入学生编号:");
        int id=input.nextInt();
        System.out.print("请输入密码:");
        String password=input.next();
        //1.加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //2.建立连接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/inquire","root","123");
            //3.判断宠物主人登录是否成功
            stmt=conn.createStatement();
            String sql="select*from student where id='"+id+"'and password='"+password+"'";
            rs=stmt.executeQuery(sql);
            if(rs.next()) {
                System.out.println("登录成功,欢迎您!");
            }else {
                System.out.println("登录失败,请重新输入!");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            try {
                rs.close();
                stmt.close();
                conn.close();
            }catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    }
}
 

猜你喜欢

转载自blog.csdn.net/gz98411/article/details/81704897