博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC 增删改查代码 过滤查询语句
阅读量:6934 次
发布时间:2019-06-27

本文共 2421 字,大约阅读时间需要 8 分钟。

package test;

import java.sql.Connection;

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

public class CRUD {

    /**

     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            create();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    static void create() throws SQLException {

        Connection conn = null;
        Statement st = null;

        PreparedStatement ps =null;//这种statement可以用来过滤数据库查询语句,防止SQL注入

        ResultSet rs = null;
        try {
            conn = JdbcUtils.getConnection();
            //3,Statement用于“运送”sql语句和sql语句执行结果
            String paraSql = “select * from user hwere name=?”;

            //对于上面这种带?的sql可以用下面这个办法来获取statement     

 

            ps=conn.prepareStatement(sql);//这种创建连接的办法虽然安全但是创建的时候比较耗时

            String paraName = “’’ or 1 or ‘”;

            ps.setString(1,paraName);

            rs=ps.executeQuery();//这样是查询不到结果的,因为没有一个用户名叫做’’ or 1 or ‘

 

 

 

 

            st = conn.createStatement();

        
            String sql = "insert into user(name,birthday,money) values ('name1','1987-01-01','400')";
           
            String sql1 = "update user set money=money+10";
           
            String sql2 = "delete from user where id>5";
            //4,执行sql
            int count = st.executeUpdate(sql1);//增删改全用这个,返回值是受影响的行数
            rs = st.executeQuery("select * from user");
            
            while(rs.next()) {
                //也可以使用列名,使用列号要从1开始
                //for(int i = 1)
                int i = rs.getMetaData().getColumnCount(); //获取列数
                for(int j=1;j<=i;j++)
                System.out.print(rs.getObject(j)+"\t");
                System.out.println();
            }
            System.out.println(count);
        } finally {
            JdbcUtils.free(rs, st, conn);
        }
    }
}

 

package test;

import java.sql.Connection;

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

/* 简陋工具类  */

public final class JdbcUtils {
    private static String url="jdbc:mysql://localhost:3306/world";
    private static String user = "root";
    private static String password="mysql";

    static {

        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new ExceptionInInitializerError(e);
        }

    }

   
    private JdbcUtils() {}
   
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url,user,password);
    }
   
    public static void free(ResultSet rs,Statement st,Connection conn) {
        try {
            if (rs != null) {
                rs.close();
            }
        }catch(SQLException e) {
            e.printStackTrace();
        }
        finally {
            try {
                if (st != null) {
                    st.close();
                }
            } catch(SQLException e){
                e.printStackTrace();
            } finally {
                if (conn != null)
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
            }
        }
    }
}

转载地址:http://rggjl.baihongyu.com/

你可能感兴趣的文章
OAF中下载附件之后页面失效,报过时的数据异常,浏览器后退异常
查看>>
解决 Error:No suitable device found: no device found for connection &quot;System eth0&quot;
查看>>
HttpClient(联网)
查看>>
js url参数的获取和设置以及删除
查看>>
struts2 标签问题----escape="false" 这个属性
查看>>
android79 Fragment生命周期
查看>>
【转】JDBC为什么要使用PreparedStatement而不是Statement
查看>>
设置TextView下划线并响应点击事件(SpannableString)
查看>>
查看ADOP会话
查看>>
IIS 之 添加绑定域名 或 设置输入IP直接访问网站
查看>>
机器学习常见的几个误区--逻辑回归的变量之间如果线性相关
查看>>
批处理文件的@echo off是什么意思?
查看>>
Git 分布式版本管理
查看>>
[转]Display PDF within web browser using MVC3
查看>>
Angular - - ngHref、ngSrc、ngCopy/ngCut/ngPaste
查看>>
内存对齐的规则以及作用
查看>>
【c语言】模拟库函数strstr
查看>>
iOS开发-观察者模式
查看>>
JQuery实现一个简单的鼠标跟随提示效果
查看>>
jenkins 入门教程(下)
查看>>