JDBC

Posted lxx-1843693653

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC相关的知识,希望对你有一定的参考价值。

*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的主要内容,如果未能解决你的问题,请参考以下文章

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool

JDBC操作数据库之查询数据

如何在片段中填充列表视图?

在 myeclipse中进行连接sql server的测试

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段