Jdbc

来源:互联网 发布:java新手入门教程视频 编辑:程序博客网 时间:2024/06/08 07:54

JDBC

连接数据库步骤

  1. 加载驱动:Class.forName(driverClassName)
  2. 获取连接:DriverManager.getConnection(url,username,password)
String driverClassName="com.mysql.jdbc.Driver";String url="jdbc:mysql://localhost:3306/mydb";String username="root";String password="root";try {    Class.forName(driverClassName);//加载驱动    Connection connection=DriverManager.getConnection(url, username, password);//获取连接    } catch (ClassNotFoundException e) {        e.printStackTrace();    } catch (SQLException e) {        e.printStackTrace();    }

Statement接口

Statement主要用于执行不带参数的简单sql
1. 创建Statement:con.createStatement()
2. 调用executeUpdate(String sql),进行增、删、改
3. 调用executeQuery(String sql),进行查询

PreparedStatement接口(常用)

PreparedStatement继承自Statement,主要用于执行动态sql,强大之处在于可以防止sql攻击、提高代码可读性和可维护性、提高效率。
1. 创建PreparedStatement:con.prepareStatement(sql模板)
2. 给参数赋值: prepareStatement.setXxx(x,x)
3. 调用executeUpdate()或者executeQuery(),他们都无参数

ResultSet接口

用于存放查询结果集,具有指向当前数据行的指针,开始位置在第一条记录前,next()方法可以使指针向下移,使用get(int)获取当前行指定列值。

ResultSet rs=statement.executeQuery(sql);while (rs.next()) {     String id=rs.getInt(1);//获取第一列值    String username=rs.getString(2);    String password=rs.getString(3);    System.out.println(id+","+username+","+password);}

批处理

  1. 打开批处理
    MySql的批处理,需要通过参数打开:rewriteBatchedStatements=true
  2. 添加批:addBatch()
  3. 执行批:executeBatch()

事务

  1. 事务有四大特性:原子性、一致性、隔离性、持久性
  2. 在jdbc中,通过Connection完成,同一个事务属于同一个Connection对象
  3. 事务一般格式:
try{    con.setAutoCommit(false);//开启事务    ...    ...    con.commit();//提交事务}catch(Exeception e){    con.rollback();//出现异常,事务回滚}

数据库连接池

Connection创建工作交给连接池,需要时向连接池取,不需要时close()归还,常用c3p0连接池。
1. 池类是:ComboPooledDataSource:ComboPooledDataSource dataSource =new ComboPooledDataSource();
2. 导入c3p0的两个jar包:c3p0-0.9.5-pre10.jar和mchange-commons-java-0.2.8.jar
3. src下创建c3p0-config.xml:

<?xml version="1.0" encoding="UTF-8"?><c3p0-config>    <default-config>        <property name="user">root</property>        <property name="password">root</property>        <property name="driverClass">com.mysql.jdbc.Driver</property>        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>        <property name="initialPoolSize">10</property>        <property name="maxIdleTime">30</property>        <property name="maxPoolSize">100</property>        <property name="minPoolSize">10</property>    </default-config>    <named-config name="mysql">        <property name="user">root</property>        <property name="password">root</property>        <property name="driverClass">com.mysql.jdbc.Driver</property>        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>        <property name="initialPoolSize">10</property>        <property name="maxIdleTime">30</property>        <property name="maxPoolSize">100</property>        <property name="minPoolSize">10</property>    </named-config></c3p0-config>
0 0
原创粉丝点击