码迷,mamicode.com
首页 > 数据库 > 详细

JDBC

时间:2019-05-28 16:51:20      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:提高   shang   date   system   red   技术   dex   drive   数据库   

*JDBC
全称 java data Base Connectivity//翻译 java 数据库链接
JDBC是一组以java编写的类和接口

       好处:
        1.java开发人员完全不需要关心数据库的连接方式和实现手段
        2.提高代码的可维护性,是一种组件化私想
        3.代码的执行效率很高,速度很快
       缺点
        1.代码繁琐
        2.维护代价高

*怎么操作

1.获取连接

获取信息
    下面的四个信息,当开发者在跟换数据库时候
         需要改动,其他所有代码都不需要更改
         定义字符串类型变量代表后面一串//包名 //本机地址  /端口     /数据库
         String url="         jdbc:mysql://localhost:3306/j0304";
         用户名
         String username="root";
         密码
         String password="123456";
         驱动程序
         String driver="com.mysql.jdbc.Driver";//驱动程序

*这是增删改使用的:

  //创建一个对象
        Student student=new Student();
        student.setName("wangwu");
        student.setAddress("shanghai");


        Connection conn=null;
        PreparedStatement stmt =null;
        try {
           2.加载驱动
            //java的反射技术
            Class.forName(driver);

            3.创建数据库连接
            conn = DriverManager.getConnection(url,username,password);

            4.执行sql语句

            //字符串拼接实现sql
            //缺点:
            //麻烦,难以维护
            //不安全,完全无法避免sql注入

            stmt = conn.prepareStatement("insert into student(name ,address)values (?,?)");
             //把student 加入数据库                          //z占位符  (?,?)


            //给上述sql语句de占位符赋值
             stmt.setString(1,student.getName());
             stmt.setString(2,student.getAddress());

            //赠删改使用这个方法
            int i=stmt.executeUpdate();

            System.out.println(i);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //3 关闭资源
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

查询使用


       String url= "jdbc:mysql://localhost:3306/j0304";

        String username="root";

        String password="123456";

        String driver="com.mysql.jdbc.Driver";



        Connection conn=null;
        PreparedStatement stmt=null;
        ResultSet rs=null;

        try {
            Class.forName(driver);

            conn = DriverManager.getConnection(url,username,password);
            stmt = conn.prepareStatement("select *from Student");
            rs = stmt.executeQuery();

            while (rs.next()){
               int sid=rs.getInt("sid");
                System.out.println(sid);
                String name =rs.getString("name");
                System.out.println(name);
                String address=rs.getString("address");
                System.out.println(address);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }


JDBC

标签:提高   shang   date   system   red   技术   dex   drive   数据库   

原文地址:https://www.cnblogs.com/lxx-1843693653/p/10938304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!