7.21实习培训日志-JDBC JSP Servlet
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打包打上第三方依赖包
IDEA错误
Error:java: Compilation failed: internal java compiler error
- 1、查看项目的jdk(Ctrl+Alt+shift+S) File ->Project Structure->Project Settings ->Project
- File ->Project Structure->Project Settings -> Modules -> (需要修改的工程名称) -> Sources ->
- 查看idea中Java配置(Compiler->Java Compiler)
JDBC
ODBC:Open DataBase Connetivity
JDBC:Java DataBase Connectivity
JDBC API
- DriverManager
- Connection
- Statement
- PreparedStatement
- ResultSet
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");
为什么不需要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 事务
- 原子性
- 一致性
- 隔离性
- 持久性
7.21实习培训日志-JDBC JSP Servlet的更多相关文章
- 7.23实习培训日志-JDBC
总结 今天下午考试,JDBC,这个本身很简单,但是需要我们Dockerfile+Docker Compose运行,这个东西就很复杂.原来学习时没有怎么看,这一次就很懵,完全不知道怎么弄,反正环境都没有 ...
- 7.22实习培训日志-JSP Servlet
周末总结 今天下午在学习servlet,想自己做一个简单的例子,于是用idea新建一个maven项目,为了后文叙述方便,我们取名为项目1,点击create from archetype,我先选择org ...
- 7.30实习培训日志-SQL优化
总结 今天早上考试,下午主要是老师引导我们学习SQL优化,晚上主要是同学的技术分享,杨松柏同学主要给我们分享了java的io的一些东西,c10k问题,bio(同步阻塞IO),NIO(同步非阻塞IO), ...
- 7.27实习培训日志-Oracle SQL(三)
Oracle SQL(三) 视图 特性 简单视图 复杂视图 关联的表数量 1个 1个或多个 查询中包含函数 否 是 查询中包含分组数据 否 是 允许对视图进行DML操作 是 否 CREATE [OR ...
- 7.24实习培训日志-Docker-Compose
Docker-Compose 对于昨天的考试,需要 项目根目录下需要docker/mysql/Dockerfile 文件用于构建mysql镜像 项目根目录下需要docker/java/Dockerfi ...
- 7.19实习培训日志- java进阶
java进阶 java集合 Collection List ArrayList jdk1.2,异步处理,性能高,线程不安全 Vector jdk1.0,同步处理,性能低,线程安全 Set HashSe ...
- 7.10实习培训日志-markdown Git
父模块github地址 一. markdown 1. markdown列表 html是一种发布的格式,markdown是一种书写的格式 区块引用 列表 图片 表格 html 标题 记笔记 写博客 2. ...
- 7.11实习培训日志-Git Linux
Git git子模块 先在GitHub创建两个空的respository,一个super_project和一个sub_project. 然后在git bash中向库中写入一些文件. 在super_pr ...
- 7.31实习培训日志-docker sql
docker mysql docker问题 今天问了老师有关docker的问题,entrypoint和cmd的区别,两者同时存在cmd的执行结果会被当做参数传入entrypoint. dockerfi ...
随机推荐
- 【Java】-BigInteger大数类的使用【超强Java大数模板 总结】
Scanner cin = new Scanner(new BufferedInputStream(System.in)); 这样定义Scanner类的对象读入数据可能会快一些! 参考这个博客继续补充 ...
- HDU2612 -暑假集训-搜索进阶N
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...
- Codeforces 455B A Lot of Games:博弈dp【多局游戏】
题目链接:http://codeforces.com/problemset/problem/455/B 题意: 给你n个字符串,然后进行k局游戏. 每局游戏开始有一个空串,然后双方轮流给这个串的末尾添 ...
- 用一句SQL取出第 m 条到第 n 条记录的方法
1 --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)2 3 SELECT TOP n-m+1 * 4 FROM Table 5 WHERE (id NOT IN (SEL ...
- 【python】关于函数递归使用 return 后,收到数据为 None。
在写一个辗转相除求最小公因数的程序的时候,突然发现自己不管怎么写(除了两数恰巧可以整除),return 返回的值恒为 none. 代码为此: def gcd(a,b): if a%b==0: retu ...
- 从信用卡欺诈模型看不平衡数据分类(1)数据层面:使用过采样是主流,过采样通常使用smote,或者少数使用数据复制。过采样后模型选择RF、xgboost、神经网络能够取得非常不错的效果。(2)模型层面:使用模型集成,样本不做处理,将各个模型进行特征选择、参数调优后进行集成,通常也能够取得不错的结果。(3)其他方法:偶尔可以使用异常检测技术,IF为主
总结:不平衡数据的分类,(1)数据层面:使用过采样是主流,过采样通常使用smote,或者少数使用数据复制.过采样后模型选择RF.xgboost.神经网络能够取得非常不错的效果.(2)模型层面:使用模型 ...
- csv+jenkins+ant测试接口
1.文件目录 jmeter_test case 用于存放case,csv或者txt格式,jmeter能读取的 result_log 用于存放报告 html 存放html报告 jtl 存放jtl文件 s ...
- Python基础-列表推导式
python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...
- codeforces 637B B. Chat Order(map,水题)
题目链接: B. Chat Order time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- linux命令学习笔记(61):tree 命令
shendu@shenlan:~$ tree 程序“tree”尚未安装. 您可以使用以下命令安装: sudo apt-get install tree shendu@shenlan:~$ sudo a ...