栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDBC使用

JDBC是什么? JDBC就是使用JAVA语言操作关系数据库的一套API,接口由各数据库厂商实现,即数据库的驱动jar包,我们使用JDBC编程时候,执行代码的是驱动jar包中的具体实现类。
使用步骤
       // 1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");     //将Driver类加载进内存
        //2.获取链接
        String url="jdbc:mysql://127.0.0.1:3306/dbtest1";
        String username="root";
        String password="abc123";
        Connection conn= DriverManager.getConnection(url,username,password);

        //3.定义sql对象
        String sql="update employees set name='hgf' where id=1001 ";

        //4.获取执行sql对象
         Statement stmt = conn.createStatement();

         //5.执行sql
         int count=stmt.executeUpdate(sql);//受影响行数

        //6.处理结果
        System.out.println(count);

        //7.释放资源
        stmt.close();
        conn.close();

部分类解释

Drivermanager类

 1. 注册驱动
 	Class.forName() 将Driver类加载进内存,Driver类中静态代码块调用Drivermanager.registerDriver(new Driver()) 注册驱动. 现在已经可以省略这步操作。
 	
 2. 获取数据库链接
 	 DriverManager.getConnection(url,username,password)返回一个Connection对象

Connection类

 1.获取执行sql对象
 	Statement createStatement()		//普通执行sql对象
 	PreoaredStatement prepareStatement(sql)		//预编译sql的执行sql对象:防止sql注入
 2.管理事务
 	开启事务:setAutocommit(boolean autoCommit) //true为自动提交事务,false为手动提交事务,即开启事务。
 	提交事务:commit()
 	回滚事务:rollback()
  try{
            //开启事务
            conn.setAutoCommit(false);
            //两条sql语句同时执行
            int count1= stmt.executeUpdate(sql1);
            System.out.println(count1);
            int count1= stmt.executeUpdate(sql1);
            System.out.println(count1);
            
            //提交事务
            conn.commit();
        }catch (Exception throwables){
            //回滚事务
            conn.rollback();
            throwables.printStackTrace();
        }

Statement类

 执行SQL语句
 	int executeupdate(sql) :执行DML(对数据的增删改操作)、DDL(对表、库的增删改操作)语句
 	ResultSet executeQuery(sql) : 执行DQL(对数据的查询操作)语句。返回值为ResultSet结果集对象

Result类

 获取查询结果
 	boolean next() : 将光标向前移动一行,有效行返回true,无效行返回false
 	xxx getXxx(参数):获取数据。
 		xxx:数据类型;如 int getInt(参数);String getString(参数)
 		参数:int--列的编号(从1开始)。 String--列的名称
        ResultSet  re = stmt.executeQuery(sql);
        ArrayList array=new ArrayList<>();
         while(re.next()){
             employees emp=new employees();

             int id=re.getInt("id");
             String name=re.getString("name");

             emp.setId(id);
             emp.setName(name);
             array.add(emp);
         }
         System.out.println(array);

PreparedStatement类

 预编译SQL并执行SQL语句(防止SQL注入问题)
 	//sql注入:连接字符串时候使得条件恒为true
 	//PreparedStatement传入字符串的时候将敏感字符转义,使之成为一个纯字符串;例如转义单引号使之不会成为语法中的单引号。
  1)获取PreparedStatement对象
 	String sql = "SELECT * FROM WHERe username = ? AND password = ?";
 		//SQL语句中的参数值用占位符?替代
 	PreparedStatement pstmt = conn.prepareStatement(sql);
  2)设置参数值
  	pstmt.setXxx(参数1,参数2)  //给?赋值;
 	 	Xxx:数据类型
 	 	参数1:?的位置编号,从1开始
 	 	参数2:具体值
  3)执行SQL
  	executeUpdate();
  	executrQuery();
  
  ps:PreparedStatement的预编译功能(性能高)需要手动开启:seServerPrepStmts=true
  		在定义url的时候传入参数 url="jdbc:mysql://127.0.0.1:3306/dbtest1?useServerPrepStmts=true"
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716525.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号