zoukankan      html  css  js  c++  java
  • 数据库SQL Server2012笔记(八)——Statement与PreparedStatement的区别,JDBC方式操作数据库

    1、Statement与PreparedStatement的区别
    1)都可用于  把sql语句从java程序中发送到制定数据库,并执行sql语句。
    2)区别
    • 直接使用Statement,驱动程序一般不会对sql语句做处理,而直接交给数据库。
    • 使用PreparedStatement,形成预编译的过程,并且会对语句做字符集的转换(至少在sql  server中如此)。好处:对于多次重复执行的语句,PreparedStatement效率更高,适合批量(batch),且解决系统的本地化问题。
    • PreparedStatement可有效防止危险字符的注入,即sql注入问题。但要求用“?”赋值方式才可以。"?"可解决注入漏洞问题
      • ps=ct.PreparedStatement("select  *  from  dept  where  deptno=?  and  loc=?");
      • ps.setInt(1,20);
      • ps.setString(2,"dallas");

    2、JDBC方式操作数据
    1)定义对象
    • PreparedStatement  ps=null;
    • Connection  ct=null;
    • ResultSet  rs=null;
    2)初始化
    • 加载驱动
      • Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
    • 得到连接
      • ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;database=数据库名","用户名","密码")
      • 127.0.0.1表示要连接的数据库的IP,此处表示本地
      • 1433表示sqlserver的默认端口(一共65535个端口)
      • oracle:1521,mysql:3306
    • 创建火箭车
      • ps=ct.PreparedStatement("Select  *  from  emp");
    • 执行
      • rs=ps.executeQuery();
      • rs=ps.executeUpdate();
    • 循环读取
      • while(rs.next()){  }
      • rs指向结果集的第一条的前一条,一定要rs.next()一下。
      • 如果取值按编号取,则需要一一对应。
      • 如果取值按猎命去,则顺序灵活。

    3、作业相关问题
    1)job<>'manager':不等于
    2)oracle中有一个可以获得每个月的最后一天的方法
    3)sql  server:DATEDIFF(datapart,startpart,endpart)
    4)upper len substring
         以首字母大写的方式显示员工姓名
         select  upper(substring(ename,1,1))+lower(substring(ename,2,len(ename)))  from  emp
    5)len(字段名):字段长度
    6)显示所有员工姓名的前三个字符
         select  substring(ename,1,3)  from  emp
    7)replace(字段,‘被替代’,‘替换’)
    8)datepart(年/月/日...,字段名)
  • 相关阅读:
    Windows下快速搭建安卓开发环境android-studio
    使用Android Studio搭建Android集成开发环境
    手动安装配置Android Studio
    android studio 各种问题 应该能帮助到你们
    如何清除XP的网络共享密码
    一个语言的“入流”,而是和这种语言进入某一子行业的契机有关
    必须冷静、必须听话,赶紧走
    QWidget继承自QPaintDevice,这样就可以直接把QWidget传入QPainter的构造函数,比如QPainter(mylabel),然后设置QWidget的长宽后直接进行作画了
    ActiveMQ
    开源word操作组件DocX的记录
  • 原文地址:https://www.cnblogs.com/huhewei/p/6750027.html
Copyright © 2011-2022 走看看