精华内容
下载资源
问答
  • 废话不多说,接下来就说明怎么用JDBC实现最简单的增删改查 我用的数据库是Mysql 1.创建一个MAVEN项目,需要导入两个jar包 分别为lombok 和 mysql 的jar包,在MAVEN的仓库网站可以轻松找得到 2.导入jar包之后 ...

    好久没写博客了,今天刚进入一家公司实习,在实习这段期间想把自己所学的东西通过博客记录下来

    今天上午简单回顾了一下用JDBC实现最简单的增删改查

    废话不多说,接下来就说明怎么用JDBC实现最简单的增删改查

    我用的数据库是Mysql

    1.创建一个MAVEN项目,需要导入两个jar包

    分别为lombok 和 mysql 的jar包,在MAVEN的仓库网站可以轻松找得到

    2.导入jar包之后 我们来进行数据库的连接操作

    其步骤为

    第一步:加载数据库驱动

    Class.forName("com.mysql.jdbc.Driver")

    第二步:

    通过驱动创建连接(主机名,端口号,用户名,密码)

    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/order","root","123456");

    参数分别为"url" "user" "password"

    第三步:

    执行SQL语句,增删改调用executeUpdate返回受影响的行数,查询调用executeQuery返回ResultSet的结果集

    RreparedStatement pstmt = conn.prepareStatement("你所要执行的SQL语句");

    pstmt.executeUpdate();-------增删改操作

    pstmt.executeQuery();-------查询操作

    第四步:

    关闭连接

    然后我把我的代码截了个图,很简单的做了一个增加和查询操作,删除和更改和增加是一个意思,只是SQL语句不一样

    首先是增加操作

    然后运行就能看到控制台输出1,然后数据库里增加了一条id为4,name为Java4班的数据

    查询:

    增加和查询操作基本上就是这样~

    大家工作一起加油吧~

    转载于:https://www.cnblogs.com/xiaoxiaoSMILE/p/7284282.html

    展开全文
  • 当做爬虫项目的时候,有时需要爬取大量的图片到本地,既然是保存到本地了,就得给图片一个名字对吧,有的网站没有给图片命名,所以我们需要在保存到本地时自己给图片命名,但是图片的数量非常多,怎么操作才能给每张...

    当做爬虫项目的时候,有时需要爬取大量的图片到本地,既然是保存到本地了,就得给图片一个名字对吧,有的网站没有给图片命名,所以我们需要在保存到本地时自己给图片命名,但是图片的数量非常多,怎么操作才能给每张图片命名不同的名字呢?

    答案揭晓,我们只需要一个python的第三方库和一行代码即可搞定!!!

    这个库的名字为uuid,命令行安装方式为

    pip install uuid

    大家看这三行代码

    import uuid
    
    for i in range(10):
    
    print(uuid.uuid4())

     每次运行都会输出一个不同的字符串

    abb49108-88d9-4bf3-87e9-c42ec060a2fa
    f362824c-5be0-42a7-9133-4bd8f9fd22c3
    aaa2fb97-f0d5-42bd-9c29-17053677ccfb
    adc0cc7b-3887-450f-9157-b29499ae6e2b
    08c8f482-75b2-464a-8172-73f226bcb298
    a0f87511-994f-4b7f-b49f-0e8e2908ba29
    0fbfb414-fd7b-4e85-9a14-c2e5ce453464
    dc021cb4-f327-4c52-b33a-0f232f2b34ac
    2cf5a541-423b-4fa2-95e7-b8bc695e8f1b
    83fd16a7-e9c6-4331-b7d8-cace2d787ea6

    因此,我们是不是可以使用这个字符串来给图片命名呢?使用方法如下

    with open('{}.jpg'.format(uuid.uuid4()),'wb') as f:
    
    f.write()

     hhhhhh,很简单对不对


    在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

    展开全文
  • 终于到了我们要操作数据库的时候了,接下来的学习将会让你更有成就感,学完了基础的枯燥的语法,现在就到了我们去做一些功能的时候了,我们在网上看到的形形色色的网站从技术上来说其实可以包括两大块:代码实现业务...

    从黑窗口操作数据库到网页操作数据库

    终于到了我们要操作数据库的时候了,接下来的学习将会让你更有成就感,学完了基础的枯燥的语法,现在就到了我们去做一些功能的时候了,我们在网上看到的形形色色的网站从技术上来说其实可以包括两大块:代码实现业务逻辑,数据库保存真实的数据。两者有机的配合才得以形成了我们看到的各种网站。具体数据该怎么展示,这就是代码要做的事情了,这就是我们经常会用到的查询数据。另外,当然还有访问者与网站的交互,可能会添加新数据到网站,修改完整的信息,或者删除一些网站的内容。这些其实都是通过代码来调用数据库来实现最终的增删改查,而已经不是我们之前在黑窗口敲命令来实现增删改查了。网站的增删改查都是由各个请求激发的。那么代码如何操作数据库呢?当然有些同学可能用过由pymysql提供的操作数据库的方法,当然那只是由pymysql包在了我们原生mysql语句的外面,实际上你写的还是原生的sql语句,只是换到了代码里面。那么今天我们讲的操作数据库的方法就要颠覆之前原生语句的实现方式,而是采用我们Python中的类实例化对象,调用对象中的各种方法来操作数据库。

    ORM对象关系映射

    试想一下,如果我们可以这样定义一个类,比如我们定义一个user类,接着再给user类定义一些属性,比如id、name。然后我们还可以像定义数据库字段一样的来定义id为整型,主键,且可以自动增长。name为字符串,默认不能为空。然后我们可以通过某个指令直接在某个数据库test1中新建一张数据表user。这样我们就通过代码的类新建了数据库的一张表。表建好了,那么随之而来的自然就是要操作表了。当然我们也不会像以前那样写原生的sql语句,我们还可以实例化一下user类,然后用实例化后的user对象,调用类下面的方法比如:user.save(),user.find(),user.edit(),user.delete()来直接操作数据库。做我们的增删改查。是不是特别方便呢?当然上面是伪代码,不是真实的语法。答案是肯定的,这就是我们下面要讲的orm技术,全称为object relation mapping:对象关系映射。通俗来讲就是我们要用对象的形式来解决数据的关联关系问题,也就是把由数据库做的事情挪到了代码层。

    flask_sqlalchemy扩展的安装和配置

    而在我们的flask框架中,是通过一个扩展来实现的:flask_sqlalchemy。
    要使用这个扩展首先需要安装一下:pip install flask_sqlalchemy ,另外要调用mysql我们还需要安装一个mysql的驱动:pip install pymysql。安装了这两个包之后我们就可以首先进行一些链接数据库的配置了。链接数据库的配置项我们可以写在配置文件当中。配置项如下:

    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/test1?charset=utf8'
    

    等号前面的配置项名称是固定的,必须这样写才能被框架正确识别,等号后面的含义:链接的数据库类型+使用的驱动://用户名:密码@数据库地址:端口/数据库名称?数据库编码。接着我们还可以再配置一项内容:SQLALCHEMY_ECHO=True。这个配置项的含义是要把我们操作数据库的语句打印到控制台。
    配置完之后,接下来我们就需要用flask_sqlalchemy来实例化出来我们的db对象了,并且要绑定到我们的app上面,代码如下:

    from flask_sqlalchemy import SQLAlchemy  # 导入扩展包
    
    app = Flask(__name__)
    
    app.config.from_object('setting')  # 引入数据库配置项
    
    db = SQLAlchemy(app=app)  # 实例化SQLAlchemy类,并绑定到app上
    

    经过上面之后,我们才能在flask框架中使用由flask_sqlalchemy扩展提供的各种操作。

    创建表

    下面我们用flask_sqlalchemy提供的建表语句来通过类的形式创建表。

    class Author(db.Model):
        id = db.Column(db.Integer, primary_key=True, comment='作者主键ID')
        name = db.Column(db.String(30), nullable=False, comment='作者姓名')
    

    下面说一下上面的建表语句的注意点。首先要想使得我们创建的这个类能跟数据库的表产生映射关系,首先很重要的一点就在于要让我们这个类继承自db.Model类,然后表中的每个字段都是通过db.Column来创建的,里面的参数既是这个字段的约束。

    db.Integer:定义此字段为整型
    primary_key:定义此字段为主键且自动递增
    comment:定义此字段注释
    db.String(30):定义此字段为字符串,括号内定义字符串长度
    nullable:定义此字段是否为空,False即不为空
    

    上面就是关于类定义数据库表的具体解释。那么我们怎么来创建表呢?

    创建表

    可以通过在在main的判断条件的地方加建表语句db.create(),一般为了避免数据冗余会在创建之前先清空一下数据库,会加上db.drop(),来删除之前存在的所有数据。具体如下:

    if __name__ == '__main__':
        db.drop_all()
        db.create_all()
        app.run(port=9000)
    

    然后重启服务,如果你配置正确,这个时候你会在控制台看到打印出来的建表语句,能打印出来就是我们刚才配置的SQLALCHEMY_ECHO=True在起作用。然后我们可以用可视化工具navicat查看一下我们是否成功创建了表呢。创建之后就可以把db.drop_all()和db.create_all()给注释掉,不然等下我们写入数据的话,会把我们的数据给清除掉。需要使用的时候再打开。

    模板

    <!--base.html文件-->
    {% block top %}
        <a href="{{ url_for('index') }}">首页</a>
        <a href="{{ url_for('all_authors') }}">所有作者</a>
        <a href="{{ url_for('add_author') }}">添加作者</a>
        <hr>
    {% endblock top %}
    {% block content %}
        内容
    {% endblock content %}
    {% block bottom %}
        <hr>
        底部
    {% endblock bottom %}
    
    <!--index.html文件-->
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>首页</title>
    </head>
    <body>
        {% extends 'base.html' %}
        {% block content %}
            首页
        {% endblock content %}
    </body>
    </html>
    

    添加作者

    @app.route('/')
    def index():
        return render_template('index.html')
        
    @app.route('/add_author', methods=['GET', 'POST'])
    def add_author():
        if request.method == 'POST':  # 接收数据和提交到数据库都是用的post请求
            name = request.form.get('name')  # 接收要添加的数据,通过参数名获取传递的内容
            new_author = Author(name=name)  # 实例化Author类生成一个新对象,对应数据库里面的一条新的记录
            # 有错误立即显示出来。
            # db.session.add(new_author1)  # 做添加的准备
            # db.session.commit()  # 真正的提交
            # try except可以将错误捕获隐藏,自己自定义错误提醒。
            try:
                db.session.add(new_author1)  # 做添加的准备
                db.session.commit()  # 真正的提交
                flash('添加成功!')
            except Exception as e:
                flash('添加不成功!')
        return render_template('add_author.html')  # 展示模板页面是用的get请求
    
    <!--add_author.html文件-->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>添加作者</title>
    </head>
    <body>
        {% extends 'base.html' %}
        {% block content %}
            <form action="" method="post">
                作者名称:<input type="text" name="name" value="" > <br>
                <input type="submit" value="确认添加">
            </form>
            {% for message in get_flashed_messages() %}
                <span style="color:red">{{ message }}</span>
            {% endfor %}
        {% endblock content %}
    </body>
    </html>
    

    所有作者

    @app.route('/all_authors')
    def all_authors():
        authors = Author.query.all()  # 通过此方法可以获取作者表所有作者记录
        print(authors)
        return render_template('all_authors.html', authors=authors)  # 传递给模板,来遍历所有作者记录
    
    <!--all_authors.html-->
    
    <!DOCTYPE html>
    <html lang="en">
    <head><!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>所有作者</title>
    </head>
    <body>
        {% extends 'base.html' %}
        {% block content %}
            {% for author in authors %}
                <p>{{ author.id }}、{{ author.name }} |
                    <a href="{{ url_for('edit_author', author_id=author.id) }}">编辑</a> |
                    <a href="{{ url_for('delete_author', author_id=author.id) }}">删除</a> |
                </p>
            {% endfor %}
            {% for message in get_flashed_messages() %}
                <span style="color:red">{{ message }}</span>
            {% endfor %}
        {% endblock content %}
    </body>
    </html>
    

    编辑作者

    # 和添加不同的是需要传递修改数据的id,才知道你要修改哪条数据
    @app.route('/edit_author', methods=['GET', 'POST'])
    def edit_author():
        author_id = request.args.get('author_id')  # 确定拿到要修改哪条记录的id
        one_author = Author.query.get(author_id)  # 根据当前数据的id,通过主键到数据库拿到当前id的记录(对象)
        if request.method == 'POST':
            name = request.form.get('name')  # 需要修改的数据
            one_author.name = name  # 将传递过来的name的值赋值到现有对象(记录)的相应字段name上
            try:
                db.session.add(one_author)
                db.session.commit()
                flash('修改成功!')
            except Exception as e:
                flash('修改不成功!')
            return redirect(url_for('all_authors'))
        return render_template('edit_author.html', one_author=one_author)  # 传递作者现有数据到模板,以备显示出来
    
    <!--edit_author.html-->
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>编辑作者</title>
    </head>
    <body>
        <form action="" method="post">
            <input type="text" value="{{ one_author.name }}" name="name">
            <input type="submit" value="确定编辑">
        </form>
    </body>
    </html>
    

    删除作者

    @app.route('/delete_author')
    def delete_author():
        author_id = request.args.get('author_id')  # 跟编辑一样需要获取当前用户的id
        one_author = Author.query.get(author_id)  # 通过id获取当前记录(对象)
        try:
            db.session.delete(one_author)  # 删除整条记录(对象)
            db.session.commit()
            flash('删除成功!')
        except Exception as e:
            flash('删除不成功!')
        return redirect(url_for('all_authors'))  # 删除之后跳转到所有作者页面
    
    展开全文
  • 学习计划安排如下:索引库本质上和数据库类似,也是存储数据的,既然如此自然也会有增删改查。那么这个索引库到底有何特别应用呢?索引库的特别之处在于它的查询,用户搜索一个词语,响应哪些对应的数据给用户?重点...

    今天是刘小爱自学Java的第159天。

    感谢你的观看,谢谢你。

    dc71c3155414984f49d9da4a44fd8836.png

    学习计划安排如下:

    • 索引库本质上和数据库类似,也是存储数据的,既然如此自然也会有增删改查。
    • 那么这个索引库到底有何特别应用呢?
    • 索引库的特别之处在于它的查询,用户搜索一个词语,响应哪些对应的数据给用户?
    • 重点是match匹配查询和词条查询。

    一、索引库的增删改查

    1新增数据

    80b5ea295e8bb66794a531e2af08a102.png

    ①通过POST请求添加数据。

    昨天我们给索引库设定了几个字段,以上述例子中的title字段为例,给其添加一条数据“小爱手机”,这样后面可以通过索引库来快速定位这条数据了。

    通过响应结果可以看到result显示的是“created”,也就是新建了一个数据。

    注意:这里的请求方式是POST,昨天关于索引库的创建时POST对应的是修改,PUT是新增,至于这儿为何是POST,暂时不清楚。

    ②随机生成id

    系统会随机生成一个id来记录这条新增的数据,但是这个id太复杂了,不好记住。

    所以在新增数据时自定义id。

    2自定义id

    3538c26f253fa8ea9c8a0277934c733c.png

    在请求路径中指定id即可。

    关于请求路径:索引库是liuxiaoai01,索引类型goods,id为1,添加了一条数据。

    有了id之后我们就可以去进行修改和删除数据的操作了,如果不是系统随机的id不容易记住,使用起来不方便。

    3修改数据

    250c507af4bec8c9b95986c5a4728083.png

    PUT请求就是修改了,但是要注意使用PUT必须要指定id,如果没有会报错。

    其中关于id的作用:

    • 如果id在文档中不存在,则新增该数据,就相当于通过POST添加了一条数据。
    • 如果id在文档中存在,则修改对应id数据。

    也通过PUT请求既能完成新增操作又能完成修改操作,一般都会直接使用PUT。

    但也要知道使用POST新增数据这回事。

    3删除数据

    aa8e2339a27dd9f56566116750445238.png

    根据id即可删除对应的数据。

    PS:观察响应结果result的值就能看出来进行了什么操作。

    • created对应新增数据。
    • update对应修改数据。
    • delete对应删除数据。

    4查询数据

    ed4c3beb38a5f006c41b4f03bef5e39f.png

    同样的方式,GET请求即对应的查询操作,根据id即可查询出对应的数据。

    但是这种方法基本不会用。

    要知道用户在搜索的时候,他怎么可能知道商品对应的id是多少?

    所以用户查询的时候是使用不到id查询的,就需要全文检索技术了,

    二、基本的搜索

    1匹配所有(match_all)

    47bc01600d82ac018963fd7923cdd73c.png

    这里query代表的就是一个查询对象,里面编写具体的查询条件是怎样的:

    • match_all即代表了匹配所有,也就对应了上图中的例子。
    • match即匹配查询,怎么匹配可以自行说明。
    • term即词条查询,查询的时候不考虑分词。
    • ……除此之外,还有很多种查询类型。

    其中查询条件根据查询类型的不同会有多种不同的写法,后续遇到了就说明。

    现在主要讲解下match匹配查询和词条查询。

    2匹配查询(match)

    为了方便测试,我向索引库中添加了两条数据,现在索引库中一共有4条数据:

    “小爱手机”,“大爱手机”,“超爱手机”以及“小爱电视”这4条。

    1c6e31e10fc1e75bbd147bead70348e3.png

    match本身也就是匹配的意思,现在匹配和“小爱电视”相关的数据。

    运行会发现“手机”相关的数据都被搜索出来了,这是为什么呢?

    因为“小爱电视”先会被分词成“小”“爱”以及“电视”,和分词相关的数据都会被搜索出来。

    其中响应的结果有个score属性,也就是得分的意思:score越高表示结果越匹配,

    在电商网站上搜索某品牌手机,会发现:

    • 该品牌其它产品也会被搜索出来。
    • 手机壳啊什么的也会被搜索出来。

    就是这么一个道理。

    and关系

    23bec0065546f3012c42c4e0b6ebafb3.png

    operator翻译过来是运算,意思就是将分词结果通过and连接起来。

    查询条件是“小爱电视”,但是其被分词为了“小”,“爱”和“电视”,当然具体是不是这样分词我不太清楚,但思路是一样的:

    • 如果不做说明默认or连接,那么查询到的数据的分词只要满足任意一个就可以。
    • 如果说明是and连接,那么查询到的数据分词必须要包含“小”,“爱”和“电视”。

    3词条匹配(term)

    d9df2c19f02a9c4eac11df639519267e.png

    我们在通过词条匹配查询“小爱电视”会发现结果竟然一条数据都没有。

    老实说这个结果让我很是懵逼,想了好久才明白,还不确定对不对,我大致说下:

    我们在创建索引库的时候,title这个字段名类型是text,它是会分词的,并且分词器是IK,这个昨天就详细说明过。

    所以今天往索引库中添加数据“小爱电视”,它会被分词成“小”、“爱”和“电视”。

    索引库中title这个字段是没有“小爱电视”这个词的,它被分词了。

    • 用match查询时本身也会将查询条件分词,所以会被查询到。
    • 而用term查询时不会将查询条件分词,所以查询不到。

    最后

    行有不得反求诸己,我是@刘小爱

    一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

    展开全文
  • 估计很多人会好奇下方这个检索系统怎么实现的,这里要说下,Django的orm跟数据库交互是挺方便的,增删改查,功能非常全面,如果你对orm精通,检索系统完全可以通过orm...
  • 基本的增删改查 ... 技术栈 React react-redux React路由器 Redux-Saga 巴别塔 网络包 表达 Mongodb 猫鼬 去做 文章评论 项目运行效果 首页 非管理员登录 管理员登录 标签管理 查看文章详情 发表文章 修改...
  • 我做的网站可以连接数据库,实现增删改查,但我想加一个网站后台管理系统。一点思路都没有,数据库表要怎么建、是不是要多个表等等,请大家说说思路 给点建议 或者给个例子。谢谢!
  • 公司有几个网站,都是asp.net编写的,现在需要他们的cookie信息共享,互相可以访问,并且增删改查,请问该怎么实现
  • 例如,关于数据库中表的增删改查应该写在哪一层中)... 问题补充: 各位高手,,,可能是我没有把问题说清楚...正如一楼说的...这三层是怎么分出来的? 比如说,哪种代码是属于逻辑代码的,哪种属于业务代码?能不能...
  • 其独有的实时配置增删改查的功能,是其区别于同类cms的最大特点,也是最大优势,极大减少了重复劳动。懂jsp即可实现快速建站、静态化等,学习成本极低。文档齐全,支持有力,快来试试吧! tjpcms有什么用? 这是...
  • 顾名思义,监听器可以监听许多信息和一些重要事件的发生,servlet监听器在web应用中也可以监听某些对象及信息进行增删改查等等 2.它有什么用? 当你访问浏览器时,它可以统计在线的人数和网站访问量,实现访问的...
  • 简单的监听器统计在线人数

    千次阅读 2018-08-02 10:02:13
    顾名思义,监听器可以监听许多信息和一些重要事件的发生,servlet监听器在web应用中也可以监听某些对象及信息进行增删改查等等 二、它有什么用? 当你访问浏览器时,它可以统计在线的人数和网站访问量,实现访问的...
  • 今天做的事情

    2013-03-25 19:47:23
    今天上午验收网站项目。。。...后台的功能就是对前台所有数据的增删改查(在我的理解之中) 从你怎么做的,用什么代码实现什么功能。都要提一遍。这样自己也可以复习一下知识,对自己知识的掌握。
  • │ │ └─支持大屏 │ │ └─支持复制大屏数据和样式 │ │ └─支持大屏预览、分享 │ │ └─支持系统自动保存数据,同时支持手动恢复数据 │ │ └─支持设置大屏密码 │ │ └─支持对组件图层...
  • System.out.println("实现增删改查"); PreparedStatement sql; sql = con.prepareStatement("insert into sudent values(?,?,?,?)"); sql.setString(1, id); sql.setString(2, ...
  •  建立一个用户可以自由交易的平台,通过ajax实现局部刷新,实现网站更具人性化,具有更良好的互动。以下是总体需求 1.1 通过手机号码注册账号并且登陆  每个手机号码只可以注册一个账号,并且通过账号完善个人...
  • springmybatis

    2015-09-05 06:54:28
    mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之...
  • Mock.js模拟登录和表格的增删改查 Vue2.0-基于elementui换肤[自定义主题] Vue国际化处理 vue-i18n 以及项目自动切换中英文 搭建 Vue2 单元测试环境(karma+mocha+webpack3) Vue实现首屏加载等待动画 Vue项目中添加...
  • Mock.js模拟登录和表格的增删改查 Vue2.0-基于elementui换肤[自定义主题] Vue国际化处理 vue-i18n 以及项目自动切换中英文 搭建 Vue2 单元测试环境(karma+mocha+webpack3) Vue实现首屏加载等待动画 Vue项目中添加...
  • 纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】 纳税服务系统二(用户模块)【POI、用户唯一性校验】 纳税服务系统三(优化处理)【异常处理、抽取BaseAction】 纳税服务系统四(角色模块)...
  • 【pandas】[1] Series 入门(创建和增删改查) Pandas中兼并数组和字典功能的Series Series也就是Numpy的一维数组,很多方法是通用的。以上两篇足以掌握。 关键是DateFrame使用 pandas分块处理大文件 drop...
  • 也推荐大家看一些装修的书和装修案例,看看不同的户型如何来设计和改造可以更好满足自己的居住需求,目前我了解下来,很多同学都面临12,23的需求,所以选房前了解一下改造可行性和如何做也是有好处的。...
  • 网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
  • 相信大家都有类似这样的体会:“哇,这家伙怎么能想到这样做?怎么敢这样做?”。其实这些高手的所谓“特技”都不是偶然,也不是贸然下手,只是他对产品有比你更深刻的认识,知道问题的前因,知道行动的后果,所以看...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

网站怎么实现增删改查