您的位置:首页 > 数据库 > Oracle

jdbc和Hibernate (oracle和mySql)连接数据库 代码步骤

2017-05-07 14:53 741 查看
jdbc  连接数据库 :

           1 连接数据库


         第一步 先获得数据库驱动


                    Class.forName("oracle.jdbc.OracleDrive");  //oracle的连接驱动


                    Class.forName("com.mysql.jdbc.Driver");   //mySql 的连接驱动


       第二步:  获得数据库连接对象


                    String  url = "jdbc:oracle:thin:@localhost:1521:xe";   //oracle



                    String   url = "jdbc:mysql://localhost:3306/库名      //mySql


                    String userName="root";

                    String  passWord = "root";

                    Connection conn = DriverManager.getConnnection(url,userName,passWord);

       第三步   获得 Statement对象 并且执行Sql 语句


                  Statement sts = conn.createStatement();

                      ResultSet rs = sts.executeQuery("select  date,id from stu");

                      //迭代查询


                       while(rs.next()){

                                 System.out.ptintln(rs.getDate(1));

[b]                         System.out.ptintln(rs.getInt(2));
[/b]

                                  ..........................................................;


                            }

                     conn.setAutoCommit(false);//默认是自动提交 

                第四步   关闭数据库连接


                 关闭结果集


               if(rs!=null){

[b]
      try
{

[/b]

                            rs.close();



                    }

                关闭声明


              if([b]sts!=null){[/b]

                        try{


                           sts.close();

                         } cath([b]
SQLException e
){[/b]

                                 
[b]
e.printStackTrace();

[/b]

                         }


                 }


              if(conn!=null){

                try{


                  conn.close();

                }cath{[/b]

                       
[b]    [b]
e.printStackTrace();
[/b]
[/b]

                } 


            }

    [b]Statement 
和PreparedStatement 区别两个接口的区别
[/b]

     [b][b]Statement  
[/b]是PreparedStatement的父类

[/b]

[b]      SQL 语句被预编译并存储在
PreparedStatement
对象中
[/b]

[b]    
[b][b][b]Statement
[/b][/b] 不支持预编译  而[b]PreparedStatement[/b]
支持这就导致了[b]PreparedStatement[/b]的效率比前者高,可读性也好[/b][/b]

[b]例如:[b][b][b][b]PreparedStatement[/b] 
[/b][/b]可以使用占位符?  [/b]
[/b]

      PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?");             



                  pstmt.setBigDecimal(1, 153833.00) pstmt.setInt(2, 110592);

[b][b]           ResultSet rs =
[b]pstmt
.executeUpdate();[/b][/b][/b]

     如果 [b][b]Statement 
[/b]中sql 条件过会导致语句长并且不便于读写,严重影响开发效率,也容易将sql语句写错从而造成严重影响
[/b]

        [b]Statement sts = conn.createStatement();   sql  主要是靠拼接  容易出问题
[/b]

        ResultSet rs = sts.executeQuery("select  date,id from stu");

    两者总结:
                如果单纯的只有一个简单的查询可以选择用[b][b]Statement
[/b],前提是你对sql熟练不易写错,因为PreparedStatement
[b]Statement
[/b]的开销大小。但是如果你需要进行复杂而且重复量极高的sql语句,那最好是选择[b]PreparedStatement[/b],因为它的预编译能力是 前者所没有的,这样大大提高了执行的效率,尤其是在批量删除,更新,插入时,效果越加明显,并且也不会因为sql拼接的原因出问题
  批量处理 addBath().[/b]

    强力推荐使用 
[b][b]PreparedStatement
[/b]!!!
[/b]

  Hibernate 连接数据库


       1 读取配置文件
[b]hibernate.cfg.xml文件  设置Hibernate 配置信息

[/b]

       Configuration config = new Configuration().getConfig();

      2 读取映射文件 具体类的xml   注意文件路径


         config.addFile("xxx/xxx.xml");


      3. 获得Session工厂


          SessionFactory factory = config.buildSessionFactory();

       4. 获得session


            Session  
[b]session
=factory.openSession();
[/b]

        5. 开启事务


           
Transaction tran=session.beginTransaction();

                tran.begin();//这里开启了事务


[b][b]                 session.save(stu);[/b][/b]

[b][b]      6. 提交事务
[/b][/b]

[b][b]            tran.commit();[/b]
[/b]

       7.   关闭 会话

            session.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: