JDBC简介html
3.应用程序使用JDBC联机数据库:java
·Connection conn = DriverManager.getConnection(...); ·Statement st = conn.createStatement(); ·ResultSet rs = st.executeQuesry(...);
链接数据库mysql
DriverManager
的getConnection():Connection conn = DriverManager.getConnection(jdbcUrl, username, passwd);
使用PreparedStatement
、CallableStatement
git
PrepareStatement stmt = conn.prepareStatement("INSERT INTO t_message VALUES(?, ?, ?, ?)");
2.须要真正指定参数执行时,再使用相对应的setInt()、setString()等方法指定“?”处真正应该有的参数。正则表达式
·stmt.setInt(1,2); ·stmt.setString(2,"momor"); ·stmt.executeUpdate();
3.结果集类型3种设定:sql
·ResultSet.TYPE_FORWARD_ONLY(默认)(只能前进数据光标) ·ResultSet.TYPE_SCROLL_INSENSITIVE(先后移动数据光标) ·ResultSet.TYPE_SCROLL_SENSITIVE(先后移动数据光标,反映数据库中的数据修改)
4.更新设定的2种设定:数据库
·ResultSet.CONCUR_READ_ONLY(默认)(进行数据读取) ·ResultSet.CONCUR_UPDATABLE(进行数据读取、更新)
absolute()
、afterLast()
、beforeFirst()
、first()
、last()
。relative()
、previous()
、next()
。isAfterLast()
、isBeforeFirst()
、isFirst()
、isLast()
。updatexxx()
方法,而后调用updateRow()
方法。取消更新:调用cancelRowUpdates()
。moveToInsertRow()
,以后调用updatexxx()
设定要新增的数据各个字段,而后调用insertRow()
新增数据。deleteRow()
。excuteUpdate()
,都会向数据库发送一次SQL。批次更新时可使用addBatch()
方法来收集SQL,并使用executeBatch()
方法将所收集的SQL传送出去。java.sql.Blob
与java.sql.Clob
两个类分别表明BLOB与CLOB数据。getMetaD()
方法取得DatabaseMetadata对象,经过这个对象提供的各类方法能够取得数据库总体信息,而ResultSet表示查询到的数据,而数据自己的字段、类型等信息,能够经过ResulSet
的getMetaData
对象,经过这个对象提供的相关方法就能够取得域名、字段类型等信息。3.CachedRowSet为脱机式的RowSet,在查询并填充完数据后就会断开与数据源的联机。学习
教材学习有问题先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是别人没有提出相同问题,能够编辑文档添加,而后把本身提出的问题复制到下面:测试
问题:对于教材509页的代码不是很理解,代码以下:.net
import java.sql.*; import static java.lang.System.out; public class ConnectionDemo { public static void main(String[] args) throws ClassNotFoundException,SQLException{ Class.forName("com.mysql.jdbc.Driver"); String jdbcUrl = "jdbc:mysql://localhost:3306/demo"; String user = "root"; String passwd = "openhome"; try(Connection conn = DriverManager.getConnection(jdbcUrl,user,passwd)){ out.printf("已%s数据库连机%n",conn.isClosed()?"关闭":"开启"); } } }
解决:Connection使用尝试自动关闭资源语法,因此执行完try区块后,Connection的close()就会被调用...
教材中代码调试有问题先去https://shimo.im/doc/1i1gldfsojIFH8Ip/看看,若是别人没有提出相同问题,能够编辑文档添加,而后把本身提出的问题复制到下面:
教材学习中的问题和解决过程, 一个问题加1分
代码调试中的问题和解决过程, 一个问题加1分
基于评分标准,我给本博客打分:XX分。得分状况以下:xxx
上周博客互评状况(只要连接,具体点评放相应博客下)
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 20篇 | 400小时 | |
第一周 | 200/200 | 1/1 | 18/18 | |
第二周 | 153/353 | 1/2 | 18/36 | |
第三周 | 356/709 | 1/3 | 24/60 | |
第四周 | 450/1259 | 1/4 | 28/85 | |
第五周 | 479/1738 | 1/5 | 30/115 | |
第六周 | 700/2438 | 1/6 | 30/145 | |
第七周 | 450/2888 | 2/8 | 31/176 | |
第八周 | 332/3220 | 1/9 | 32/208 | |
第九周 | 662/3882 | 2/11 | 38/246 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进本身的计划能力。这个工做学习中很重要,也颇有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:40小时
实际学习时间:38小时
改进状况:本周由于有实验二,计划比上周学习时间提升,学习时间有所提升。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)