Mysql的基本操作

来源:互联网 发布:mac beta 转 正式版 编辑:程序博客网 时间:2024/06/15 21:42
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import org.junit.Test;/** *  * @author Administrator * */public class MysqlConnection {    @Test    public void testMysqlConnection() {        Connection con = null;        try {            Class.forName("com.mysql.jdbc.Driver");            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");            // 先进行插入数据            for (int i = 1; i <= 10; i++) {                // 下面的这个只是准备sql语句                PreparedStatement pps = con.prepareStatement("insert into student(name,age) value('bbbb',45)");                // 进行执行sql的语句                int result = pps.executeUpdate();                System.out.println("查询的结果如下:" + result);            }            con.close();            // con.prepareStatement("select * from student");//这个可以防止注入的操作        } catch (Exception e) {            e.printStackTrace();        }    }    @Test    public void Testlogin() {        try {            login1("bbb", "123456");// createStatement存在sql语句注入的问题        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * 下面的这个方法存在sql的注入的问题,因为我们使用的是perastatement的对像     *      * @param username     * @param password     * @throws Exception     */    public void login1(String username, String password) throws Exception {        // 注册我一个mysql的驱动        Class.forName("com.mysql.jdbc.Driver");        // 进行获取连接对象        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");        // 准备sql的语句        String sql = "select * from user where name=? and password=?";        // 得到预编译对像        PreparedStatement ppst = con.prepareStatement(sql);        // 进行给这个sql语句绑定绑定具体的值        ppst.setString(1, username);// 从1开始        ppst.setString(2, password);        // 进行执行具体的sql语句        ResultSet set = ppst.executeQuery();        if (set.next()) {            // 说明登录成功了            System.out.println("登录成功了!!");            System.out.println(sql);        } else {            System.out.println("登录失败了!!");            System.out.println(sql);        }        if (con != null) {            con.close();        }    }    /**     * 下面的这个案例存在sql的注入的问题     *      * @param username     * @param password     * @throws Exception     */    public void login(String username, String password) throws Exception {        // 注册我一个mysql的驱动        Class.forName("com.mysql.jdbc.Driver");        // 进行获取连接对象        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");        // 进行获取执行sql语句的对象        Statement stat = con.createStatement();        // 准备sql语句        String sql = "select * from user where name='" + username + "' and password='" + password + "'";        // 进行执行sql语句        ResultSet result = stat.executeQuery(sql);// select        if (result.next()) {            // 说明登录成功了            System.out.println("登录成功了!!");            System.out.println(sql);        } else {            System.out.println("登录失败了!!");            System.out.println(sql);        }        if (con != null) {            con.close();        }    }    //下面开始操作分页的操作    @Test    public void testDividePage(){        //页面的长度        int pagesize=4;        //注册连接        try {            Class.forName("com.mysql.jdbc.Driver");            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");            // 得到预编译对像            PreparedStatement ppst = con.prepareStatement("select count(1) from user");            //开始执行            ResultSet result=ppst.executeQuery();            //得到总的行数            int count=0;            while(result.next()){                count=Integer.parseInt(result.getString(1));            }            System.out.println(count);            String sql="";            //现在开始进行具体的分页的操作            for(int i=0;i<Math.ceil((double)count/4);i++){                //准备分页的sql语句                sql="select * from user limit ?,4";                ppst = con.prepareStatement(sql);                ppst.setInt(1,i*pagesize);                //进行执行                ResultSet re=ppst.executeQuery();                System.out.println("当前是第"+i+"页");                while(re.next()){                    System.out.println("用户名:"+re.getString("name")+": 密码:"+re.getString("password"));                }            }        } catch (Exception e) {            e.printStackTrace();        }        //先确定每个页的长度为4;        //那么则每个页的开始位置为(n-1)*4    }    //下面开始操作分页的操作    @Test    public void insertData(){        //先确定每个页的长度为4;        //那么则每个页的开始位置为(n-1)*4        //注册连接        try {            Class.forName("com.mysql.jdbc.Driver");            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");            for(int i=0;i<100;i++){                //创建sql语句                String sql="insert into user(name,password) value(?,?)";                // 得到预编译对像                PreparedStatement ppst = con.prepareStatement(sql);                //进行绑定数据                ppst.setString(1,"bbb"+i);                ppst.setString(2,"00"+i);                //开始执行                ppst.executeUpdate();            }            //最后关流            if(con!=null){                con.close();            }        } catch (Exception e) {            e.printStackTrace();        }    }}
原创粉丝点击