JDBC学习笔记

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
事物的保存点处理
当事物出错了,但是我们不需要把所有程序都回滚&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值