1.JDBC连接数据库
1).加载驱动
String driver = "com.mysql.jdbc.Driver";
oracle.jdbc.driver.OracleDriver
Class.forName(driver);
2).获得数据库连接
String url = jdbc:mysql://localhost:port/db_name;
jdbc:oracle:thin:@localhost:port/db_name;
String user = user_name;
String passwd = user_passwd;
Connection conn = DriverManager.getConnection(url,user,passwd);
3).创建一个Statement
String sql = "";
Statement stmt = conn.createStatement();
4).
A.执行查找,返回结果集合
ResultSet rs = stmt.executeQuery(sql);
while(rs.next) {
rs.getString();
rs.getInt();
}
B.执行更新,删除,插入,无返回结果
stmt.executeUpdate();
2.数据库表对应po包中的类
3.po中的类对于的数据操作在dao包中
**Statement与PreparedStatement
Statement:
是将整条SQL语句提交给数据库
PreparedStatement:
是将带参的SQL语句提交给数据库进行编译,多次重复对数据库进行操作,仅提交参数给数据库,SQL语句仅提交一次
4.批量插入
for() {
stmt.addBatch(sql);
//pstmt.addBatch();
}
stmt.executeBatch();
//pstmt.executeBatch();
5.Properties:
通过该类,可以将数据库的相关信息写成外部文件,以便于重复使用及修改
**通过运行的线程来获得当前的路径
Thread:
ClassLoader getContextClassLoader() --返回该线程的上下文 ClassLoader。
ClassLoader:
URL getResource(String name) --查找具有给定名称的资源。
URL:
String getPath() --获取此 URL 的路径部分
1).获得dbinfo.properties文件的地址
Thread.currentThread().getContextClassLoader().getResource("dbinfo.properties").getPath();
2).构造成文件,导入输入流
InputStream instream = new FileInputStream(new File(path));
3).加载到Properties
Properties p = new Properties().load(instream);
4).通过key读取dbinfo.properties中对于字段的属性
p.getProperty(key);
6.元素据 Meta Data
可以获得数据库的相关相关详细信息,例如:数据库名,版本号等等
//获取数据库的元数据
DataBaseMetaData dmd = conn.getMetaData();
//获取返回的结果集合
ResultSetMeatData rsmd = rs.getMetaData();
****类类型是存储在栈中,引用类型是存储在堆内存中,
例如:integer --> Null 精度不会损失
Null --> integer 精度损失
7.事务
1).四大特性:原子性,一致性,隔离性,持续性
2).增,删,改会产生事务
3).JAVA设置:
try{
conn.setAutoCommit(false);//将自动提交改为手动提交·
conn.commit();//提交
} catch (Exception e) {
conn.rollback();//回滚
}