7.21实习培训日志-JDBC JSP Servlet

it2026-02-09  1

JDBC JSP Servlet

总结

今天早上的考试主要考Java的网络,HttpClient的get,post方法,Socket的文件传输和Xml和Json文件的解析,对于HttpCLient很简单,只需要用HttpCLient去读取文件就行了,而对于Socket需要注意用换行符,因为有时候没有换行符代码会阻塞在readline处,使代码不往下执行,但是又很难找到原因。而对于Xml和Json文件的解析,需要注意编码格式,用utf-8编码,不然编码会有问题。如果有第三方库的话,mvn package打包的jar中只会含有自己的代码,直接用java -jar *.jar会报一个类找不到的错误,对于这种情况,我们需要在maven打包时把第三方依赖打包进去,有多种方式可以选择,最简单的选择maven-assembly-plugin插件,设置descriptorRefs运行即可。

maven打包

maven打包打上第三方依赖包

Maven生成可以直接运行的jar包的多种方式

maven-dependency-plugin插件的使用

Copying project dependencies

IDEA错误

Error:java: Compilation failed: internal java compiler error

解决

1、查看项目的jdk(Ctrl+Alt+shift+S) File ->Project Structure->Project Settings ->ProjectFile ->Project Structure->Project Settings -> Modules -> (需要修改的工程名称) -> Sources ->查看idea中Java配置(Compiler->Java Compiler)

JDBC

ODBC:Open DataBase Connetivity

JDBC:Java DataBase Connectivity

JDBC API

DriverManagerConnectionStatementPreparedStatementResultSet

JDBC Driver API

JDBC-ODBC bridge部分java技术的本地API驱动程序全部基于java技术的本地API驱动程序全部基于java技术的本地协议驱动程序

JDBC编程流程

加载驱动打开连接执行查询处理结果清理环境

JDBC为什么使用反射加载驱动

驱动jar包不存在时,我们有其他方法解耦(避免或减少未来切换数据源时对代码的变更。)

JDBC java mysql

使用mysql-connector-java(maven)mysql-connector-java 8用Class.forName("com.mysql.cj.jdbc.Driver");,不要用Class.forName("com.mysql.jdbc.Driver");

JDBC 连接 MySQL 时碰到的小坑

为什么不需要Class.ForName("com.mysql.cj.jdbc.Driver")也可以执行

query

private static void query(){ String sql = "select * from t_user where id = ?"; try(Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD); PreparedStatement statement = connection.prepareStatement(sql);){ statement.setInt(1,2); ResultSet rs = statement.executeQuery(); while (rs.next()){ System.out.print(rs.getInt("id")+" "); System.out.print(rs.getString("username")+" "); System.out.print(rs.getString("pwd")+" "); System.out.print(rs.getString("email")+" "); System.out.println(); } rs.close(); } catch (SQLException e) { e.printStackTrace(); } }

insert

private static void insert(){ String sql = "insert into t_user(id,username,pwd,email) values (?,?,?,?)"; try (Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD); PreparedStatement statement = connection.prepareStatement(sql);){ statement.setInt(1,3); statement.setString(2,"dey"); statement.setString(3,"123"); statement.setString(4,"123@qq.com"); //返回值是更新的记录数量 int resultNum = statement.executeUpdate(); System.out.println("插入的记录数量:"+resultNum); } catch (SQLException e) { e.printStackTrace(); } }

update

private static void update(){ String sql = "update t_user set username=?,pwd=?,email=? where id =?"; try (Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD); PreparedStatement statement = connection.prepareStatement(sql);){ statement.setString(1,"lcu"); statement.setString(2,"123u"); statement.setString(3,"123u@qq.com"); statement.setInt(4,3); //返回值是更新的记录数量 int resultNum = statement.executeUpdate(); System.out.println("更新的记录数量:"+resultNum); } catch (SQLException e) { e.printStackTrace(); } }

delete

private static void delete(){ String sql = "delete from t_user where id=?"; try (Connection connection = DriverManager.getConnection(MYSQL_URL,MYSQL_NAME,MYSQL_PWD); PreparedStatement statement = connection.prepareStatement(sql);){ statement.setInt(1,3); //返回值是更新的记录数量 int resultNum = statement.executeUpdate(); System.out.println("删除的记录数量:"+resultNum); } catch (SQLException e) { e.printStackTrace(); } }

JDBC 事务

原子性一致性隔离性持久性

转载于:https://www.cnblogs.com/sufferingStriver/p/9403437.html

相关资源:数据结构—成绩单生成器
最新回复(0)