首页
关于
Search
1
sql的注入原因和解决办法
145 阅读
2
SpringBoot整合腾讯云存储COS及基本使用,增删改查......
129 阅读
3
深究contains方法
100 阅读
4
多线程概述
74 阅读
5
学习的第一个注解@WebServlet - JavaWeb
73 阅读
默认分类
Java
C/C++
Mysql
JavaWeb
SpringBoot
算法
前端
Linux
Search
标签搜索
Spring
HTTP
Java
JavaWeb
IOC
mybatis
腾讯云
COS
云存储
CDN
redis
分布式
id
全局唯一id
Typecho
累计撰写
26
篇文章
累计收到
3
条评论
首页
栏目
默认分类
Java
C/C++
Mysql
JavaWeb
SpringBoot
算法
前端
Linux
页面
关于
搜索到
12
篇与
JavaWeb
的结果
2022-04-30
Servlet JDBC两种注册驱动的方法
第一种用java.sql.DriverManager下的registerDriver( ) 方法注册驱动。传入一个Driver()对象即可。// 1. 注册驱动 Driver driver = new Driver(); DriverManager.registerDriver(driver); //合写成一句 DriverManager.registerDriver(new Driver());第二种Class.forName("com.mysql.jdbc.Driver");第二种是较为常用的,因为比较简单。原理:先看一下Driver()方法的源码。在第五行有一个静态方法,静态方法里执行了注册驱动的语句。所以第二种方法的原理是:反射这个类com.mysql.jdbcDriver,使这个类的静态代码块执行,驱动就注册成功了public class Driver extends NonRegisteringDriver implements java.sql.Driver { public Driver() throws SQLException { } static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } } }用第二种方式注册驱动的完整JDBC代码 - 查public class Query { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { //注册驱动 Class.forName("com.mysql.jdbc.Driver"); //获取数据库连接 String url = "jdbc:mysql://127.0.0.1:3306/userdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); //获取数据库操作对象 stmt = conn.createStatement(); //执行sql语句 String sql = "select * from userinfo"; rs = stmt.executeQuery(sql); //处理结果集 while (rs.next()){ String value = rs.getString("userId")+", "+rs.getString("userName"); System.out.println(value); } } catch (SQLException throwables) { throwables.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally { //关闭连接 if (rs != null) { try { rs.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }
2022年04月30日
48 阅读
0 评论
0 点赞
2022-04-30
Servlet JDBC六步
网上有把步骤分为七步的,其实就是把准备数据库账号密码地址又分为了一个步骤六步注册驱动告诉数据库,即将来凝结哪个品牌的数据库获取连接表示jvm的进程和数据库进程之间的通道打开了。获取数据库操作对象、专门执行sql语句的对象执行sql语句DQL和DML处理查询结果集只有当第四步执行的时select语句的时候,才有第五步查询结果集。释放资源java和数据库之间属于进程间的通信,开启后一定要关闭。注意:只有查询操作才有第五步。因为查询外的操作只是返回"影响的行数",只需要用int类型变量接收就可以了。而查询操作返回的是一个ResultSet结果集,需要额外处理。查先提前获取所需对象Connection conn = null; Statement stmt = null; ResultSet rs = null;注册驱动// 1. 注册驱动 Driver driver = new Driver(); DriverManager.registerDriver(driver); //合写成一句 DriverManager.registerDriver(new Driver());获取数据库连接//先获取数据库url和账号密码 String url = "jdbc:mysql://127.0.0.1:3306/userdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true"; String user = "root"; String password = "123456"; //注册驱动 conn = DriverManager.getConnection(url,user,password);获取数据库操作对象Statement stmt = conn.createStatement();执行sql语句。该语句为查询操作,执行完后需接收结果String sql = "select * from userinfo"; ResultSet rs = stmt.executeQuery(sql);处理结果集while (rs.next()){ String value = rs.getString("userId")+", "+rs.getString("userName"); System.out.println(value); }释放数据库连接。查询操作有三个对象,需要分开关闭,并且处理异常。if (rs != null){ try { rs.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if(stmt != null){ try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } }增删改第四步:执行sql增删改语句的返回值是”影响的行数“,int类型变量接收即可。if接收到的变量是否为一就可以知道是否执行成功。int count = statement.executeUpdate(sql); System.out.println(count==1?"成功":"失败");六步完整代码public class Query { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { //注册驱动 DriverManager.registerDriver(new Driver()); //获取数据库连接 String url = "jdbc:mysql://127.0.0.1:3306/userdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); //获取数据库操作对象 stmt = conn.createStatement(); //执行sql语句 String sql = "select * from userinfo"; rs = stmt.executeQuery(sql); //处理结果集 while (rs.next()){ String value = rs.getString("userId")+", "+rs.getString("userName"); System.out.println(value); } } catch (SQLException throwables) { throwables.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally { //关闭连接 if (rs != null) { try { rs.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }五步完整代码public class Insert { public static void main(String[] args) { Connection conn = null; Statement statement = null; try { // 1. 注册驱动 DriverManager.registerDriver(new Driver()); // 2. 获取连接 String url = "jdbc:mysql://127.0.0.1:3306/userdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url,user,password); // 3. 获取数据库操作对象 statement = conn.createStatement(); // 4. 执行sql语句 String sql = "insert into userinfo(userId, userName, gender, roleId, userPassword) values('user10', 'achong', 1,1,'123123')"; int count = statement.executeUpdate(sql); System.out.println(count); System.out.println(count==1?"成功":"失败"); } catch (SQLException throwables) { throwables.printStackTrace(); }finally { // 6. 释放资源 if (statement != null){ try { statement.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (conn != null){ try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }
2022年04月30日
44 阅读
0 评论
0 点赞
1
2
3