关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

高效掌握JDBC技术(一)(下)

发布时间:2023-06-28 01:00:11
四、数据绑定 将用户输入的数据,绑定到SQL中 1、字符串拼接 1.在需要使用用户数据的位置,通过对应变量替换 2.如果为非字符串类型:"+变量名+" 3.如果为字符串类型(包含日期及枚举):' "+变量名+" ' package com.bz.test; public class JDBCTest { public static void main(String[] args) throws Exception{ //1. 加载驱动 //2. 获取连接 //3. 准备发送SQL的工具,前三步省略 //往学生表中添加一条学生信息 //接收用户信息 Scanner sc = new Scanner(System.in); System.out.println("请输入你的姓名:"); String name=sc.next(); System.out.println("请输入你的年龄:"); int age=sc.nextInt(); System.out.println("请输入你的性别(男/女):"); String sex=sc.next(); System.out.println("请输入你的年级:"); String clazz=sc.next(); System.out.println("请输入你的地区:"); String place=sc.next(); //根据用户填写的信息,书写SQL String sql = "insert into t_student(stu_name,stu_age,stu_sex,stu_class,stu_place) VALUES('"+name+"',"+age+",'"+sex+"','"+clazz+"','"+place+"')"; //输出sql System.out.println(sql); PreparedStatement ps = conn.prepareStatement(sql); //4. 发送执行SQL int n = ps.executeUpdate();//执行SQL,增删改返回受影响条数 if(n>0){ System.out.println("添加成功"); }else{ System.out.println("添加失败"); } //5. 结果集 略 //6. 释放资源 略 } } 2、 ?占位符 是JDBC中的一种特殊语法,作用为进行数据绑定 使用方法: 1.在需要使用用户数据的位置,通过?代替(占位) 2.在发送SQL之前,给占位符依次赋值 3.setXxx(占位符的序号(从1开始),占位符对应的值) package com.bz.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.Scanner; public class JDBCTest { public static void main(String[] args) throws Exception{ //1. 加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //2. 获取连接 //用户名 String username = "root"; //密码 String pwd = "root"; //连接的url String url = "jdbc:mysql://localhost:3306/2109?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai"; Connection conn = DriverManager.getConnection(url, username, pwd); //3. 准备发送SQL的工具 //往学生表中添加一条学生信息 //接收用户信息 Scanner sc = new Scanner(System.in); System.out.println("请输入你的姓名:"); String name=sc.next(); System.out.println("请输入你的年龄:"); int age=sc.nextInt(); System.out.println("请输入你的性别(男/女):"); String sex=sc.next(); System.out.println("请输入你的年级:"); String clazz=sc.next(); System.out.println("请输入你的地区:"); String place=sc.next(); //根据用户填写的信息,书写SQL String sql = "insert into t_student(stu_name,stu_age,stu_sex,stu_class,stu_place) VALUES(?,?,?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); //给占位符赋值 ps.setString(1,name); ps.setInt(2,age); ps.setString(3,sex); ps.setString(4,clazz); ps.setString(5,place); //4. 发送执行SQL int n = ps.executeUpdate();//执行SQL,增删改返回受影响条数 if(n>0){ System.out.println("添加成功"); }else{ System.out.println("添加失败"); } //5. 结果集 略 //6. 释放资源 ps.close(); conn.close(); } } 两种数据绑定的区别 SQL注入攻击:利用填写数据巧妙使SQL语句中的某些判断条件失效 五、面对异常 可能出现的异常: 1.类加载问题:Driver的路径不对 2.数据库、用户名、密码不对 3.sql语法错误:在sql下方打印该语句,查看语法问题 4.数据绑定不对:字符串拼接错误、?占位符赋值有误 5.获取结果集字段值时有误:检查字段顺序、字段名、数据类型 解决方案1: 6.先查看控制台的异常日志,锁定实际抛出异常的代码位置 7.结合报错的详细信息,分析出错原因 8.复杂问题,尝试百度 解决方案2: 1.通过输出语句的位置,锁定实际抛出异常的代码位置 2.分析出错原因 实战建议: 方案1+方案2 1.观察异常日志,锁定出错位置 2.结合报错的详细信息+输出语句,确定出错的原因 3.复杂问题,尝试百度

/template/Home/leiyu/PC/Static