JDBC学习手记
注:
1、JDBC很多数据的索引值(下标)都是从1开始,而不是数据那样的从0开始。
*******************************************************************************************************************
15:20 2012/3/16
JDBC小程序:
public static void main(String[] args) throws SQLException {
//注册sql server驱动
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
String url = "jdbc:sqlserver://localhost:2644;DatabaseName=scl3";
String user = "sa";
String password = "123456";
//链接数据库
Connection conn = DriverManager.getConnection(url, user, password);
//创建语句
Statement statement = conn.createStatement();
String sqlstr = "SELECT * FROM dbo.a_article WHERE id='15891'";
//执行语句
ResultSet rs = statement.executeQuery(sqlstr);
//处理结果
if(rs.next()){
System.out.println(rs.getObject(1));
}
rs.close();
statement.close();
conn.close();
}
*******************************************************************************************************************
15:26 2012/3/16
JDBC详解:
1、注册驱动
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
System.setProperty("jdbc:drivers", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2、连接数据库
URL格式:JDBC:子协议:子名称//主机名称:端口/数据库名?属性名=属性值&……
String url = "jdbc:sqlserver://localhost:2644;DatabaseName=scl3";
3、创建语句
把sql语句发给数据库并把数据库查询结果返回的作用。
4、处理数据
5、关闭连接
数据库的连接是soket连接,所以处理完数据后要释放资源。
*******************************************************************************************************************
16:30 2012/3/16
数据库增删改查
1、查
ResultSet rs = statement.executeQuery(sqlstr);
2、增
int i =statement.executeUpdate(sqlstr);返回影响行数
3、改
int i =statement.executeUpdate(sqlstr);返回影响行数
4、删
int i =statement.executeUpdate(sqlstr);返回影响行数
*******************************************************************************************************************
17:25 2012/3/16
防参数注入
String sqlstr = "SELECT * FROM dbo.a_article WHERE id=?";
PreparedStatement ps = conn.prepareStatement(sqlstr);
ps.setString(1, "15891");
ResultSet rs = ps.executeQuery();
1、作用:可以防网站输入参数注入式攻击
2、代码执行效率高,耗时低
3、耗时高的是在与数据库连接时耗时高。
4、Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出
*******************************************************************************************************************
1:37 2012/3/17
java.sql.Date是继承java.util.Date的子类,只显示日期不显示时间,故在把java.util.Date存入数据库时,需要用new java.sql.Date()的方式把其转换为java.sql.Date类型。
在输出时不需要转换
*******************************************************************************************************************
1:40 2012/3/17
大段文本数据类型
*******************************************************************************************************************
0:10 2012/3/18
事物(ACID)
1、原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。
2、一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)。
3、隔离性(isolcation):一个事务处理对另一个事务处理的影响。
4、持续性(durability):事物处理的效果能够被永久保存下来。
connection.setAutoCommit(false);//打开事物。
connection.commit();//提交事物。
connection.rollback();//回滚事物。
example:
//创建事物
cnnection.setAutoCommit(false);
sql处理语句处理……
//提交事物
connection.commit();
//出异常时回滚事物
connection.rollback();
*******************************************************************************************************************
1:04 2012/3/18
事物的保存点处理
当事物出错了,但是我们不需要把所有程序都回滚&#
注:
1、JDBC很多数据的索引值(下标)都是从1开始,而不是数据那样的从0开始。
*******************************************************************************************************************
15:20 2012/3/16
JDBC小程序:
public static void main(String[] args) throws SQLException {
//注册sql server驱动
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
String url = "jdbc:sqlserver://localhost:2644;DatabaseName=scl3";
String user = "sa";
String password = "123456";
//链接数据库
Connection conn = DriverManager.getConnection(url, user, password);
//创建语句
Statement statement = conn.createStatement();
String sqlstr = "SELECT * FROM dbo.a_article WHERE id='15891'";
//执行语句
ResultSet rs = statement.executeQuery(sqlstr);
//处理结果
if(rs.next()){
System.out.println(rs.getObject(1));
}
rs.close();
statement.close();
conn.close();
}
*******************************************************************************************************************
15:26 2012/3/16
JDBC详解:
1、注册驱动
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
System.setProperty("jdbc:drivers", "com.microsoft.sqlserver.jdbc.SQLServerDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2、连接数据库
URL格式:JDBC:子协议:子名称//主机名称:端口/数据库名?属性名=属性值&……
String url = "jdbc:sqlserver://localhost:2644;DatabaseName=scl3";
3、创建语句
把sql语句发给数据库并把数据库查询结果返回的作用。
4、处理数据
5、关闭连接
数据库的连接是soket连接,所以处理完数据后要释放资源。
*******************************************************************************************************************
16:30 2012/3/16
数据库增删改查
1、查
ResultSet rs = statement.executeQuery(sqlstr);
2、增
int i =statement.executeUpdate(sqlstr);返回影响行数
3、改
int i =statement.executeUpdate(sqlstr);返回影响行数
4、删
int i =statement.executeUpdate(sqlstr);返回影响行数
*******************************************************************************************************************
17:25 2012/3/16
防参数注入
String sqlstr = "SELECT * FROM dbo.a_article WHERE id=?";
PreparedStatement ps = conn.prepareStatement(sqlstr);
ps.setString(1, "15891");
ResultSet rs = ps.executeQuery();
1、作用:可以防网站输入参数注入式攻击
2、代码执行效率高,耗时低
3、耗时高的是在与数据库连接时耗时高。
4、Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出
*******************************************************************************************************************
1:37 2012/3/17
java.sql.Date是继承java.util.Date的子类,只显示日期不显示时间,故在把java.util.Date存入数据库时,需要用new java.sql.Date()的方式把其转换为java.sql.Date类型。
在输出时不需要转换
*******************************************************************************************************************
1:40 2012/3/17
大段文本数据类型
*******************************************************************************************************************
0:10 2012/3/18
事物(ACID)
1、原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。
2、一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)。
3、隔离性(isolcation):一个事务处理对另一个事务处理的影响。
4、持续性(durability):事物处理的效果能够被永久保存下来。
connection.setAutoCommit(false);//打开事物。
connection.commit();//提交事物。
connection.rollback();//回滚事物。
example:
//创建事物
cnnection.setAutoCommit(false);
sql处理语句处理……
//提交事物
connection.commit();
//出异常时回滚事物
connection.rollback();
*******************************************************************************************************************
1:04 2012/3/18
事物的保存点处理
当事物出错了,但是我们不需要把所有程序都回滚&#