`
张麟熠焰
  • 浏览: 15759 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JDBC

阅读更多

                        JDBC分析

一、四步连接数据库:

           1、数据创建

                private static String url="jdbc:mysql://localhost:3306/DBname"
                private String username="root";
                private String password="123456";

           2、加载驱动:

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

           3、创建连接对象:

                Connection con=DriverManager.getConnection(url, username,password);

           4、创建StateMent对象

                 Statement stmt=con.createStatement();

 

二、数据库语句的拼接使用

           1、String sql="select * from user where username=' "+username+" ' and

                 password=' "+password+" ' ";

                 ResultSet rs=stmt.executeQuery(sql);

三、预编译数据库语句

           1、采用PrepareStatement来申明stmt;

                 PreparedStatement ps=con.prepareStatement

                        (sql,Statement.RETURN_GENERATED_KEYS);

           2、不采用拼接的SQL语句

     String sql="insert into user(username,password,nick_name,qq)"+"values            

     (?,?,?,?)";

   3、为?传值

                  ps.setString(1, "zhangwei");
                  ps.setString(2, "123");
                  ps.setString(3, "焰");
                  ps.setString(4, "12345678");
                  ps.addBatch();

            4、执行SQL语句

                  ps.executeBatch();或者ps.executeQuery();//不能带有参数

            5、获取getGeneratedKeys的值(主键值)

                  ResultSet key=ps2.getGeneratedKeys();

                  取得ResultSet结果集中的值

                  while(key.next()){

                          String id=key.getInt(1);//我的主键为表的ID

                  }

四、事物的使用,一般来说数据库语句有一句就执行一句,但是有的情况下,当一个

        SQL语句出现异常的时候,其他的SQL语句就都要撤销操作,这时候我们就

        以使用事物来处理这种情况,这里面包含对SavePoint的使用。

           1、两段正确的数据库语句

            String sql="insert into user(username,password,nick_name,qq)"+"values

            (?,?,?,?)";
            PreparedStatement ps=con.prepareStatement

                   (sql,Statement.RETURN_GENERATED_KEYS);
            ps.setString(1, "zhangwei");
            ps.setString(2, "123");
            ps.setString(3, "焰");
            ps.setString(4, "12345678");
            ps.addBatch();
            ps.executeBatch();
   
           String SQL="insert into user(username,password,nick_name,qq)"+"values

                 (?,?,?,?)";
           PreparedStatement ps1=con.prepareStatement(SQL,

                Statement.RETURN_GENERATED_KEYS);
           ps1.setString(1, "zhang");
           ps1.setString(2, "123");
           ps1.setString(3, "xuan");
           ps1.setString(4, "12345678");
           ps1.addBatch();
           ps1.executeBatch();

        

          Savepoint aaa=con.setSavepoint("aaa");//设置保存节点

 

         2、一条错误的SQL语句

           String SQL2="insert into users(username,password,nick_name,qq)"+"values

                  (?,?,?,?)";
           PreparedStatement ps2=con.prepareStatement(SQL,   

                   Statement.RETURN_GENERATED_KEYS);
           ps2.setString(1, "zhang");
           ps2.setString(2, "123");
           ps2.setString(3, "xuan");
           ps2.setString(4, "12345678");
           ps2.addBatch();

           try{
                     ps2.executeQuery();
                     ResultSet key=ps2.getGeneratedKeys();
                     if(key.next())
                          System.out.println("key="+key.getInt(1));
               }catch(SQLException f){
                         System.out.println("bbbb");
                         con.rollback(aaa);//回滚
              }

             3、con.commit();//全局提交

          4、采用这种方法在创建连接的时候得设置

               con.setAutoCommit(false);

               不然一旦执行SQL语句就会自动提交

                 

4
6
分享到:
评论
2 楼 pangpang514 2014-01-08  
最后一个例子里,在con.commit()之后和catch中记得写上 con.setAutoCommit(true);不然在之前设置了setAutoCommit(false)就一直是手动提交了!
1 楼 3.14hgh 2014-01-07  
居然没人,消灭零回复!
内容嘛,呵呵,呵呵呵......

相关推荐

    JDBC简单写法JDBC简单写法JDBC简单写法

    JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单写法JDBC简单...

    Spring Data JDBC与JDBC的区别

    JDBC规范   java.sql和javax.sql两个包中的类与接口(天龙八部):  DataSource:数据源  DriverManager:驱动管理  Driver:JDBC驱动  Connection:数据库连接  Statement:语句,执行SQL  PrepareStatement:...

    sqlite-jdbc-3.15.1-API文档-中文版.zip

    赠送jar包:sqlite-jdbc-3.15.1.jar; 赠送原API文档:sqlite-jdbc-3.15.1-javadoc.jar; 赠送源代码:sqlite-jdbc-3.15.1-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.15.1.pom; 包含翻译后的API文档:...

    Java连接达梦数据库驱动dm_jdbc

    Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm7Dictionary.jar dm_jdbc\Dm7JdbcDriver14.jar dm_jdbc\Dm7JdbcDriver15.jar dm_jdbc\Dm7JdbcDriver16....

    sqlite-jdbc-3.34.0-API文档-中文版.zip

    赠送jar包:sqlite-jdbc-3.34.0.jar; 赠送原API文档:sqlite-jdbc-3.34.0-javadoc.jar; 赠送源代码:sqlite-jdbc-3.34.0-sources.jar; 赠送Maven依赖信息文件:sqlite-jdbc-3.34.0.pom; 包含翻译后的API文档:...

    log4jdbc监控sql及执行时间

    1、在应用中jdbc url最前面添加jdbc:log4;比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@x.x.x.x:1521:dbname; 2、在日志系统中设置jdbc.sqlonly、jdbc.sqltiming等日志级别,可直接将log4jdbc doc中的日志...

    jdbc jdbc jdbc

    jdbc jdbc jdbc jdbc jdbc jdbc jdbc jdbc

    适用于 SQL Server 2014、2012、2008R2的JDBC Drivers 4.1

    它属于 Type 4 JDBC 驱动程序,通过 Java 平台(企业版 5、6 和 7)中可用的标准 JDBC 应用程序接口 (API) 提供数据连接。 适用于 SQL Server 的 Microsoft JDBC Driver 4.1(预览版)与 JDBC 4.0 兼容,并且可以在...

    sqljdbc4.jar和sqljdbc.jar下载

    sqljdbc.jar 类库提供对 JDBC 3.0 的支持。 sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。 注意: JDBC Driver 2.0 不支持 JRE 1.4。...

    JDBC-ODBC BRIDGE PATCH for JDK 1.6/1.7 64bit

    SUN JDK 1.6/1.7 64bit的JDBC-ODBC Bridge有个缺陷:会随机抛出异常如下,在所有的ODBC Driver上。 java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid string or buffer length at sun.jdbc.odbc....

    hive-jdbc hive jdbc驱动

    hive-jdbc

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    sqlserver驱动包 jdbc驱动 sqljdbc.jar sqljdbc4.jar jdbc连接sqlserver数据库驱动, sqljdbc.jar和sqljdbc4.jar均有

    Microsoft SQL Server 2008 JDBC 3.0(微软官网下载)

    SQL Server JDBC Driver 3.0,这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform, Enterprise Edition 5 及更高版本中可用的标准 JDBC 应用程序编程接口 (API) 提供数据库连接。 系统要求: •支持的操作系统:...

    JDBCDriver3.0.rar_jdbc driver 3.0_sql jdbc 3.0_sql server jdbc_s

    Microsoft SQL Server JDBC Driver 3.0.JSP驱动。

    SpringBoot中封装jdbc工具类

    现在的数据层的开发,大多会使用...但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活,性能更高。由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。 文章地址: ...

    JDBC 解析JDBC中文API

    JDBC 解析JDBC中文API各种数据库之间的链接问题,网络编程

    logstash-output-jdbc.zip

    ./logstash-plugin prepare-offline-pack --overwrite --output logstash-input-jdbc.zip logstash-input-jdbc 最后成功会出现以下信息 You can install it with this command `bin/logstash-plugin install file...

    JDBC代码JDBC代码JDBC代码

    JDBC代码 JDBC代码JDBC代码 JDBC代码

    JavaEE源代码 jdbc2_0-stdext

    JavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源...

    数据库实验8 java连接数据库(JDBC代码+报告)

    《数据库系统概论》课程之实验八,通过JDBC访问数据库。本文件中包含实验报告一份,可运行代码一份与JDBC的驱动jar包。 程序实现了使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,...

Global site tag (gtag.js) - Google Analytics